Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 3766 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...