Moin Zamme! Bin gerade von der Probe zurück und mach mich jetzt hier mal an die Arbeit.
Mal vorab ein Statement von mir!
Ich hab bisher noch nicht angefangen, dafür aber die Idee näher angeschaut. Ihr müsst mich entschuldigen wenn, ich nochmal in die Basics abschweife, aber es gilt Löcher zu stopfen! Was ich überhaupt noch nicht so richtig nachvollziehen kann ist folgendes:
- Funktionen im allgemeinen (hier: write, read, etc.)
- return
- foreach-Schleife
- isset()^^
- serial-/unserialize
Funktion... tja, da weiß ich so gut wie gar nichts darüber. Darum versuche ich es mal selbst zu erklären:
PHP-Code:
function read($filename)
Ich nehme mal an die Funktion read() wird nur dann in Betracht gezogen, wenn $filename wahr ist, bzw. existiert. Und wenn die Bedingung wahr ist, werden die Aufgaben in den geschweiften Klammern ausgeführt. Im Nachhinein kann man dann immer auf die Funktion zurückgreifen, um nicht dauernd den Code auf's neue zu beginnen, ist das in etwa richtig? Was würde passieren wenn die Bedingung nicht ausführbar ist weil z.B. der Inhalt der Var nicht existiert oder in diesem Fall der Pfad zur Datei fehlerhaft ist. Gibt das eine Serverfehlermeldung zurück mit Hinweis zur Zeile?
Ist es auch richtig das Funktionen beliebig benannt werden können wie in etwa die Variablen? Also ist write und read ein Produkt der Eigenkreation?
Ein Sprachprodukt laut php.net.. übergibt den Parameter als Rückgabewert der Funktion. Verstehe ich jetzt nur halb und halb. Die Klammern können also weggelassen werden? Wie sieht so ein Fall aus? Ist das vielleicht in ähnlicher Weise mit exit; zu vergleichen? Nur das exit; nichts mehr zurückgibt? Ich hab das mal bei HTML/Javascript aufgeschnappt (return false). Hat aber damit nichts zu tun oder?
PHP-Code:
foreach ($links as $id => $link)
Die Schleifen-Funktion habe ich mir jetzt mal näher angeschaut. Die erste Variable ist - ich weiß nicht ob das stimmt - "immer?" der Container für die Inhalte und die zweite Var speichert, bzw. hat bereits schon den Inhalt - der evtl. schon vorher definiert wurde - enthalten. In unserem Fall sind es die IDs an den Löschlinks, die ja mit den Zahlen im Array verglichen werden, richtig?
Prüft, ob eine Variable existiert und ob sie nicht NULL ist...
Jo, das leuchtet mir ein. Ich stolpere allerdings ständig über den Vergleich von if($var == true) und if(isset($var))
Das scheinen aber beides verschiedene Welten zu sein. Bei dem ersten Vergleich ist es wie bei einer Session wenn man z.B. so etwas hat:
PHP-Code:
if ($user == $Benutzername and $Passwort == $pwd) { // hier hab ich das dumme Gefühl das da ein isset() reingehört!?
$_SESSION["login"] = true;
}
if ($_SESSION["login"] == true) // die ist gemeint!
und bei isset()
PHP-Code:
if (isset($var)) {
echo "Die Variable ist gesetzt, also wird etwas ausgegeben.";
}
Wann wird es entscheidend die richtige Wahl zu treffen? Ich habe bisher immer ohne die isset() Funktion gearbeitet. Kann man isst() am besten für die Passwort/Benutzerabfrage verwenden? Also z.B. so ausgedrückt isset wenn User falsch print rote Schrift else grüne Schrift und isset wenn Passwort falsch print rote Schrift else grüne Schrift.. klingt doof, aber so ist es schnell erklärt
Dient nur zur Erklärung! Aussehen soll das so hier - wäre hier isset() wichtig? (Beispiel Username):
PHP-Code:
<?php if ($_GET["check"] == "login") {
if ($user == $Benutzername and $pwd != $Passwort) {
echo '<font color="green">Benutzername korrekt!</font>';
}else{
echo '<font color="red">Benutzername: </font>'; }
}else{
echo "Benutzername";
}
?>
PHP-Code:
file_put_contents(serialize($container), $filename);
Hier habe ich schon ganz gute Erkenntnisse gesammelt. serialize() wandelt also ein oder mehrere Arrays in einen String, Zeichenkette um? Das was ich vorher in diesem Posting versucht habe zu verstehen.. also dieses b:0; was nach der Ausgabe in der Textdatei zu finden war. Das war aber völliger Unsinn, weil das ganze im Code stattfindet, bzw. wird das "virtuell gesehen" im Array abgelegt und kann bei einer Ausgabe mit unserialize(); wiederhergestellt werden, korrekt?
Im ganzen hab ich verstanden, dass man mit Hilfe der Funktionen Arbeitsschritte, bzw. den Code verkürzen / übersichtlicher machen kann. In unserem Fall muss dann nicht dauernd - na ja, 2x read und 1x write mit der Funktion serial-/unserialize für den Container geschrieben werden. Aber würde natürlich auch ohne die Funktionen: write und read funktionieren, richtig?
Was mir allerdings unklar ist: => $link)
Hmm.. bedeutet das vielleicht gleichgrößer oder ist das wieder so ein Zeichen wie aus einem Array (aus der print_r-Ansicht)?
grrrr.. jetzt ist mir schon zu spät, um mit dem proggen anzufangen

morgen gehts dann los... es ist mir ja auch wichtig das ganze zu kapieren und nicht nur copy&past anzuwenden. Sondern ich will ja auch mal selbst drauf losschreiben können. Bei vielen Sachen klappt das schon ganz gut, aber das ist untere Schublade
Wünsch was!
und danke für diese tolle Idee nochmal!