Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Schalter für HTML Seite

Frage Entwicklung PHP

Mitglied: Tamara87

Tamara87 (Level 1) - Jetzt verbinden

25.03.2013 um 11:29 Uhr, 4209 Aufrufe, 8 Kommentare

Hallo zusammen,

wie der Threadtitel schon vermuten lässt, suche ich Hilfe bei der Programmierung eines PHP Schalters.
Und zwar möchte ich gerne folgendes machen. Ich habe eine Homepage bestehend aus HTML und JS Elementen
und möchte gerne ohne immer ein spezielles Programm benutzen zu müssen, den Hintergrund der Webseite ändern.
Ich weiß bereits, dass man das mit JS machen kann, allerdings sind die Änderungen dann ja nicht dauerhaft,
da es ja soweit ich das verstanden habe nur Clientseitig funktioniert.
Korrigiert mich bitte wenn ich da was falsch verstanden habe.

Ich möchte mir also einen Schalter bauen oder am besten bauen lassen, mit dem ich mittels PHP
von der Startseite aus, den Hintergrund ändern kann. Also per Button oder Link soll in einer HTML Datei
aus Back1.jpg, Back2.jpg werden. Das Design spielt hier keine Rolle, also ob Link oder Button, ist egal.

Es wäre mir auch wichtig, dass mir jemand erklärt, wie das Ganze funktioniert,
also vom Prinip her. Ich habe leider keine Ahnung vom PHP programmieren
und möchte es eigentlich auch nicht extra für diese Sache erlernen,da ich mit HTML eigendlich schon
ganz gut zurecht komme,
sondern nur diesen einen PHP Schalter in meine Seite einbauen um über einen Link oder Butten auf der index.htm
diese Änderung durch zu führen

Ich hoffe jetzt einfach mal, dass mir jemand dabei helfen kann das ganze mit PHP zu realisieren, denn
angeblich soll es nur damit gehen. Und wie gesagt, ich habe von PHP leider keine Ahnung, also seid nicht
sauer wenn ich eventuell Rückfragen habe.

LG Tamara
Mitglied: nxclass
25.03.2013, aktualisiert um 13:04 Uhr
also seid nicht sauer wenn ich eventuell Rückfragen habe.
paar Rückfragen hätte ich:
  • wie ist die Information des Hintergrund Bildes abgelegt? (in einer html, oder css Datei ?)
  • wer soll alles berechtigt sein den Hintergrund zu ändern ?
  • wie erfolgt die Auswahl ? (upload o. selectbox ?)

Soweit ich das sehe brauchst du eine Art Admin Skript, mit Konfigurationsdatei (für die Bild Urls) um dann damit deine HTML Seite zu manipulieren.
Bitte warten ..
Mitglied: Tamara87
25.03.2013 um 21:13 Uhr
Ja klar
Hätte ich vielleicht direkt dazuschreiben sollen

Zu 1 )
Die Informationen sind in einer HTML Datei gespeichert

Zu 2 )
Nur Ich soll dazu berechtigt sein

ZU 3 )
Eigentlich liegt der neue Hintergrund bereits auf dem Server,
aber wenn auch eine Uploadmöglichkeit bestehen würde wäre das natürlich Perfekt,
aber ist jetzt kein unbedingtes muss

LG Tamara
Bitte warten ..
Mitglied: Guenni
26.03.2013 um 22:57 Uhr
Hi Tamara87,

nur ein Hintergrundbild mittels PHP zu setzen, ist mit Sicherheit nicht aufwändig.

Aufwändig wird hier (bei deinem Wunsch) das Ganze drum herum, nur um Hintergrundbilder zu setzen.

Wenn es nur darum geht, wäre es nicht einfacher, mittels JavaScript die Bilder via Zufall zu setzen?

Ich hab' hier mal ein Array mit Bildnamen gefüllt. Dann gibts eine Funktion, die eine Zufallszahl ausgibt.

Zum Schluß eine Funktion, die das Bild im Bodybereich setzt. Da die Bilder nicht existieren, wird im

Bodybereich nur zur Kontrolle nochmal der Bildpfad ausgegeben.

01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
02.
<html> 
03.
<head> 
04.
<title>Untitled</title> 
05.
<script type="text/javascript"> 
06.
<!-- 
07.
var Bild = new Array(); 
08.
Bild[0] = new Image(); 
09.
Bild[0].src = "nacht.jpg"; 
10.
Bild[1] = new Image(); 
11.
Bild[1].src = "morgen.jpg"; 
12.
Bild[2] = new Image(); 
13.
Bild[2].src = "vormittag.jpg"; 
14.
Bild[3] = new Image(); 
15.
Bild[3].src = "nachmittag.jpg"; 
16.
Bild[4] = new Image(); 
17.
Bild[4].src = "abend.jpg"; 
18.
 
19.
function zufallszahl(min,max){ 
20.
 if(min > max) { 
21.
  return -1; 
22.
23.
 if(min == max) { 
24.
  return min; 
25.
26.
 var r; 
27.
 do { 
28.
  r = Math.random(); 
29.
30.
 while(r == 1.0); 
31.
 return min + parseInt(r * (max-min+1)); 
32.
33.
 
34.
function setbild(){ 
35.
 return Bild[zufallszahl(0,Bild.length - 1)].src; 
36.
37.
 
38.
// --> 
39.
</script> 
40.
</head> 
41.
<body> 
42.
<script type="text/javascript"> 
43.
<!-- 
44.
document.getElementsByTagName('body')[0].background = setbild(); 
45.
/* 
46.
* Kontrollausgabe des Bildpfads  
47.
*/ 
48.
alert(document.getElementsByTagName('body')[0].background); 
49.
// --> 
50.
</script> 
51.
</body> 
52.
</html>

Gruß
Günni
Bitte warten ..
Mitglied: Tamara87
27.03.2013, aktualisiert um 08:26 Uhr
Hi Günni

Danke für deinen Lösungsvorschlag,
aber aus deinem Beitrag werde ich irgendwie nicht so richtig schlau. Du bietest mir
eine Javascript Lösung an bei der das Hintergrundbild per Zufall gewechselt wird.
Das brauch ich allerdings gar nicht bzw. hätte ich das wahrscheinlich sogar selbst hinbekommen,
da ich mit Javascript und HTML eigentlich ganz gut zurecht komme.

Was ich tatsächlich brauche ist eine einfache Funktion mit der ich zwischen zwei Bildern hin und her schalten kann. Also aus dem Wert Back1.jpg in der Index.html, möchte ich durch anklicken eines Links oder Buttons Back2.jpg machen. Die Bilder liegen beide bereits
in einem Ordner auf dem Server.

Leider verstehe ich nicht ganz, warum das so schwierig sein soll. Aber ich habe ja auch erwähnt, dass ich von PHP recht wenig Ahnung habe, insofern wäre ich über eine Erklärung sehr dankbar, damit ich verstehen kann warum das nicht so einfach ist.

LG Tamara
Bitte warten ..
Mitglied: nxclass
27.03.2013, aktualisiert um 10:54 Uhr
oder am besten bauen lassen,
wäre mir auch wichtig, dass mir jemand erklärt, wie das Ganze funktioniert,
es eigentlich auch nicht extra für diese Sache erlernen
... ich habe keine Lust mich eine Stunde hin zu hocken und das mit samt Dokumentation umzusetzen.

/admin/index.php
01.
<?php 
02.
 
03.
define('PATH_WWW_IMAGES', '/images'); 
04.
define('FILEPATH_CONFIG_CSS', '../css/config.css'); 
05.
 
06.
if (!isset($_REQUEST['action'])) { 
07.
    echo json_encode( array( 'result'=>'ERROR', 'message'=>'parameter "action" is missing' ) ); 
08.
    exit(0); 
09.
10.
 
11.
switch (strtolower($_REQUEST['action'])) 
12.
13.
    case 'setbgimage': 
14.
        if (!isset($_REQUEST['imagepath'])) { 
15.
            echo json_encode( array( 'result'=>'ERROR', 'message'=>'parameter "imagepath" is missing' ) ); 
16.
            exit(0); 
17.
18.
        $configFile = realpath( FILEPATH_CONFIG_CSS ); 
19.
        if (!$configFile || !is_writable($configFile)) { 
20.
            echo json_encode( array( 'result'=>'ERROR', 'message'=>'cant access config.css in "'.$configFile.'"' ) ); 
21.
            exit(0); 
22.
23.
        $content = file_get_contents($configFile); 
24.
        if ($content = preg_replace( 
25.
            '/^body\ \{\ background\-image\:url\(\'[^\']*\'\);\ \}/', 
26.
            'body { background-image:url(\''. PATH_WWW_IMAGES .'/'. $_REQUEST['imagepath'] .'\'); }', 
27.
            $content 
28.
        )) { 
29.
            file_put_contents($configFile, $content); 
30.
31.
        break; 
32.
         
33.
    default: 
34.
        return json_encode( array( 'result'=>'ERROR', 'message'=>'action "'.$_REQUEST['action'].'" not found' ) ); 
35.
        exit(0); 
36.
37.
 
38.
echo json_encode( array( 'result'=>'OK', 'message'=>'' ) ); 
39.
exit(0);
/css/config.css
01.
body { background-image:url('/images/someBg.jpg'); }
... naja

Rufst nun im Browser (oder per Ajax) die URL: http://whatever.com/admin/?action=setBgImage&imagepath=background.j ... auf, wird der Eintrag in der CSS Datei angepasst.
Du kannst nun überlegen wie Du am besten diese Schnittstelle nutzt.
Ggf. musst Du noch die Pfade anpassen in der index.php.
Bitte warten ..
Mitglied: Tamara87
28.03.2013 um 10:10 Uhr
Hi nxclass
Vielen Dank für deine Hilfe, dass es so viel Arbeit ist, habe ich nicht gewusst. Ich habe so etwas ähnliches schon mal mit Javascript gemacht, allerdings war das dann nur so eine Art Vorschau, aber es sollte ja dauerhaft geändert werden.
Da es bei der Javascript Variante nur ein paar Zeilen waren, dachte ich, dass
es bei PHP ähnlich sein würde. Da ich aber wie bereits erwähnt wenig Ahnung von PHP
habe, hab ich den Aufwand wohl etwas unterschätzt

Und eine Dokumentation, habe ich ja gar nicht verlangt, ich wollte nur in etwa die
Funktionsweise verstehen, was hier zum Glück nicht schwierig war, weil du ja alles
gut verständlich aufgeschrieben hast.
Ich hab allerdings noch eine Frage bezüglich der CSS Datei bzw. in meinem Fall,
der HTML Datei.
Kann es sein, dass der Dateiname nur geändert wird, wenn dieser Befehl
in der ersten Zeile steht ?

body { background-image:url('/images/someBg.jpg'); }

Was muss ich denn ändern wenn er z.B. in Zeile 20 stehen soll, denn zuerst kommen bei HTML ja die Zeilen

<html>
<head>
.usw

Wie bekomme ich denn diese "Variable" in eine tiefere Reihe ? Wenn ich sie einfach umpositioniere, dann schreibt er sie nicht mehr um. Als wenn er sie nicht mehr finden würde.

LG Tamara
Bitte warten ..
Mitglied: nxclass
28.03.2013, aktualisiert um 14:25 Uhr
Ich habe diese "Manipulation" mit Absicht in eine CSS Datei gepackt. Grund ist dass durchaus mal was nicht funktionieren könnte und dann u.U. deine HTML Seite kaputt ist.

Ich empfehle dir deinen CSS Code soweit es geht auch in eine CSS Datei auszulagern. (so wird der Code "sauber")
dann kannst Du zB. so :
01.
html> 
02.
    <head> 
03.
        <title></title> 
04.
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
05.
        <link rel="stylesheet" type="text/css" href="css/default.css"> 
06.
        <link rel="stylesheet" type="text/css" href="css/config.css"> 
07.
    </head> 
08.
    <body> 
09.
 
10.
    </body> 
11.
</html>
die Dateien einbinden.
... die default.css Datei enthält sie "Standard" Formatierung - diese wird mit dem Inhalt der config.css überschrieben. ('config.css' ist die Datei welche ich im obigen Beispiel manipuliere)
Bitte warten ..
Mitglied: Tamara87
30.03.2013, aktualisiert um 10:30 Uhr
Vielen Dank für deine Hilfe,

klappt jetzt alles.
Dass man CSS für solche Sachen verwenden kann,
wusste ich auch noch nicht. Wieder was dazu gelernt face-wink

LG Tamara
Bitte warten ..
Ähnliche Inhalte
PHP
Wie kann man eine 8-Fach Relaiskarte mit PHP schalten
Frage von helmuthelmut2000PHP3 Kommentare

Hallo. Ich möchte eine 8-Fach Relaiskarte von Conrad mit einer PHP Script schalten. Wie macht man das? Ich habe ...

PHP
HTML PHP MySQL Webanwendung
Frage von hahaxd3PHP12 Kommentare

Hallo Leute, Ich möchte gerne Meine Datenbank auf einer webseite darstellen. Dabei sollte diese Als normale Tabelle dargestellt sein. ...

Webentwicklung
Auswahlfenster auf HTML-Seite?
gelöst Frage von mabue88Webentwicklung4 Kommentare

Hallo, ich suche nach einer Möglichkeit ein Auswahlfenster in einer Webseite zu integrieren. Bis jetzt konnte ich im Netz ...

PHP
Anfängerfrage in HTML und PHP
gelöst Frage von Stefan007PHP4 Kommentare

Hallo Leute, es soll angeblich einen einzigen Echo-Befehl geben innerhalb eines PHP-Scripts, der ein komplettes HTML-Grundgerüst erstellen und ausgeben ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 14 StundenMicrosoft Office2 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 16 StundenDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 17 StundenSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 20 StundenMicrosoft Office1 Kommentar

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Server-Hardware
Veeam Backup Server stürzt alle paar Tage ab
Frage von Leo-leServer-Hardware12 Kommentare

Hallo Forum, ich habe momentan folgendes Problem. Veeam Backup and Replication 9.5 u2 auf voll gepatchten DL 380 G7 ...

Windows 10
Win10 Laptop findet keine Netzwerkgeräte und Freigaben mehr
Frage von CoolzeroWindows 1010 Kommentare

Hi, seit ein paar Tagen habe ich das Problem das mein Windows 10 Laptop keine Geräte mehr in der ...

Batch & Shell
Dateien verschieben mit batch
gelöst Frage von michi-ffmBatch & Shell10 Kommentare

Hallo Zusammen hat jemand evtl eine Idee? Zunächst hier das Skript: Leider werden keine UNC-Pfade unterstüzt, kann mir jemand ...