• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

[PHP] ON / OFF Schalter

Austria

Golden Delicious
Registriert
30.07.11
Beiträge
6
Hallo Jungs :)

Ich hätte eine kurze Frage bzw. Bitte.

Ich möchte auf einer einfachen PHP Seite angeben ob ich in der Arbeit bin oder nicht. Also es soll einfach ein Bild platziert sein mit z.B. "Grüner Knopf" und wenn ich nicht da bin ein z.B. "Roter Knopf".

Die Bilder werden dann einfach mithilfe eines Buttons gewechselt.


Habt ihr Lösungvorschläge bzw. einen Codeschnipsel :)


Lg Phlipp
 

drp

Jerseymac
Registriert
12.04.11
Beiträge
458
Hallo!
Erstmal musst du irgendwo speichern, ob du auf der Arbeit bist oder nicht. Das kannst du entweder mit einer Datenbank tun (wobei das bei einem Wert nicht unbedingt sinnvoll wäre) oder in einer Datei auf dem Server. Hier mal ein kleines Codebeispiel, welches den Knopf anzeigt. Der Status kann geändert werden wenn du die Datei mit den Get-Variablen ?status=1/0&pass=*passwort* aufrufst.
Code:
<?php
if(isset($_GET["status"]) && $_GET["pass"] == "dein passwort") {
$f = fopen("status.txt", "w+");
fwrite($f, $_GET["status"], 1];
}
else {
$f = fopen("status.txt", "r");
$status = fread($f, 1);
if($status == 1) {
echo "<img src='on.png'/>";
}
else {
echo "<img src='off.png'/>
}
}
?>

Habe ich zwar jetzt nicht getestet, aber sollte eig. funktionieren.
 

Austria

Golden Delicious
Registriert
30.07.11
Beiträge
6
Danke für die Antwort :) Mittlerweile habe ich mein Problem selbst gelöst und möchte jetzt den Lösungsweg posten für weitere Suchende :).

3 Dateien (ohne Bilder)

write.php
proof.php
proof.txt



Sicherheit wird hier nicht groß geschrieben und ist nur mit einem einfach Script geschützt, weil nicht mehr benötigt wird.

proof.php
Code:
<?php
$datei = fopen("proof.txt","r+");
$counterstand = fgets($datei, 2);


//if($counterstand == "")
// {
// $counterstand = 0;
//}


if($counterstand == "2")
{
?><center><img src="red.png"></img><br><br><b><font FACE="Lucida Sans">Bin weg</font></b></center><?php
}
else
{
?><center><img src="green.png"><br><br><b><font FACE="Lucida Sans">Bin da</font></b></center></img><?php
}




?><br><br><center><font FACE="Lucida Sans">&copy; by Philipp Geyer</font></center><?php




?>
<center><script language="JavaScript"> 
function loadpage(){document.location.href=document.passwort.pswd.value + ".php"} 
</script> 
<form name="passwort">
<input type=password name=pswd>
<input type=button value="Login" onClick="loadpage()"><br>
</form></center>
Das Script zeigt beim Aufrufen der Seite ein Passwortfeld an. Das Passwort ist gleich der Name der Datei. Bsp.: Soll auf die Datei "write.php" weitergeleitet werden, so ist das Passwort "write". Ich hoffe ich konnte das verständlich erklären. ;)




write.php
Code:
<center><table border="2"><tr><td><form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<center><select size="1" name="text">
<option value="" selected>Status auswählen</option>
<option value="1" name="1">Bin da</option>
<option value="2" name="2">Bin weg</option>
</select></center></td><tr><td>
    
   <center> <input type="submit" value="Aktualisieren"> </center>
</form> 




    </td></tr><tr><td>
<?php 




if($_POST['text']) { 
    
   $datei = fopen("proof.txt", "w");  


   if (!$datei) { 
      die("Fehler! Bitte erneut versuchen!"); 
   } else { 
     if(fwrite($datei, $_POST['text'])) { 
         echo "<center><font FACE='Lucida Sans' color='green'>Status aktualisiert!</font></center><BR />"; 
     } 
     if(!fclose($datei)) { 
         die("Fehler! Bitte erneut versuchen!"); 
     } 
   } 
} 
?>  
</td></tr></table></center><center><a href="proof.php"><b><u><<< Zurück</u></b></a></center>

Die Datei write.php schreibt den Status bzw. den Wert in eine Textdatei ("proof.txt"). Sollte erstellt werden!



Machstes Gut :D
 

drp

Jerseymac
Registriert
12.04.11
Beiträge
458
Sollte auch funktionieren, ist jedoch wesentlich aufwändiger.