|
T u t o r i a l
|
|
PHP Tutorial > Kapitel 6: PHP und eigene Funktionen
Antworten zu Fragen aus Kapitel 5:
1. Was sind Cookies?
Daten die dein Script an den Benutzer sendet, welche beim nächsten Aufruf
wieder verfügbar sind.
2. Als was werden Cookies bei Usern gespeichert?
Textdateien die durch den Browser gelöscht werden können.
3. Welches Array beinhaltet gesetzte Cookies?
Das $_COOKIE[] Array.
4. Welche Elemente beinhaltet ein gesamtes Formular?
Der <form>-Tag als Einleitung. Daraufhin folgen Formularoptionen erstellt
durch die Tags: <input> <select> <option> und <textarea>.
Man erstellt den Abschickknopf indem man <input type="submit"> zum Formular
hinzufügt. Das Formular muss mit </form> geschlossen werden.
5. Zähle die 4 wichtigen HTML Tags auf mit denen man Formulare erstellt.
<form>, <input>, <select>, <textarea>.
6. Was weißt du über $_POST, $_GET, $_COOKIE?
Dies sind "Superglobale" Arrays die von jedem Punkt im Script aufgerufen
werden können. Später wird in diesem Tutorial die genauere Erläuterung von
Superglobal beschrieben.
Know how: Funktionen von PHP nutzen
Einfügen von PHP Scripten in ein PHP Script
Größere Scripte sind meistens auf mehrere PHP Scripte aufgeteilt. Somit wird
entweder für jede Seite eine eigene PHP Datei erstellt oder eine einzige Datei
die über alle anderen Steuert.
Eine lebenswichtige Funktion dabei ist der "include"-Befehl.
Tutorial_Kapitel6_Beispiel_1.php:
<?php
$variable1 = "Hallo Welt!";
?>
|
Tutorial_Kapitel6_Beispiel_2.php:
<?php
include("Tutorial_Kapitel6_Beispiel_1.php");
echo $variable1;
?>
|
String Funktionen
Es gibt eine Reihe von "str" Funktionen in PHP. Eine einfache Demonstration:
strlen()
Tutorial_Kapitel6_Beispiel_3.php:
<?php
$einstring = "blaaaaaaaaaaaaaaah"; $einstring2 = "bluuuuuuuuuuuuuuuuuh";
if(strlen($einstring) == strlen($einstring2)) { $einstring3 = ""; for($i=0;$i<strlen($einstring);$i++) { $einstring3 .= $einstring{$i}.$einstring2{$i}; } echo $einstring3; } else { echo "Nicht gleichlang!"; }
?>
|
Am Anfang waren es zwei, nach Ausführung des Scripts sind es drei. Strings.
Zuerst schauen wir nach ob sie gleichlang sind. Ist dies der Fall, so vermischen
wir die beiden Strings in einen mit einer For-Schleife.
$einstring3 = $einstring3.""; entspricht
$einstring3 .= "";
Man kann einen String wie ein Array betrachten: $einstring{0} oder
$einstring[0] gibt die erste Position des Strings zurück, also ein "b".
explode()
Tutorial_Kapitel6_Beispiel_4.php:
<?php
$userdata = "Luky||passwort||email@lukydeluxe.org||17||Österreich";
$einzeldata = explode("||", $userdata);
for($i=0;$i<sizeof($einzeldata);$i++) { echo $einzeldata[$i].""; }
?>
|
Dieses Beispiel scheint überflüssig. Es hat nicht viel Sinn. Doch, wenn nun
solche "$userdata"s in Dateien gespeichert sind und Du verschiedene Daten von
Benutzern auslesen willst, nutzt dir hier
explode() sehr viel. Meistens werden
Daten in Dateien mit Trennern und einem Zeilenumbruch getrennt. Auf PHP +
Dateien wird später zurückgegriffen.
str_replace()
Tutorial_Kapitel6_Beispiel_5.php:
<?php
$str = "Die Katze jagt den Hund."; $str = str_replace("Die Katze", "Der Hund", $str); $str = str_replace("den Hund", "die Katze", $str);
echo $str;
// Ergibt "Der Hund jagt die Katze."
?>
|
Frag mich nicht wozu ich Die Katze und den Hund vertauscht habe.
Wenn Du so faul bist wie ich kannst du PHP die "Drecksarbeit" überlassen und mit
str_replace() Arbeiten. ;)
trim(), str_repeat(),
strip_tags()
Tutorial_Kapitel6_Beispiel_6.php:
<?php
$einhaesslicherstring = " ich bin mit Leerzeichen versaut. "; $einschoenerstring = trim($einhaesslicherstring); // Von Leerzeichen am Anfang / Ende gesäubert
$str1 = str_repeat("-~={}=~- ", 10); // Ergibt: "-~={}=~- -~={}=~- -~={}=~- -~={}=~- -~={}=~- -~={}=~- -~={}=~- -~={}=~- -~={}=~- -~={}=~-";
$str2 = strip_tags("Ich mache unerlaubte Werbung hahaha <a href=\"http://www.lukydeluxe.org\">LD8</a>"); // Ergibt: "Ich mache unerlaubte Werbung hahaha LD8"
?>
|
Texte verschlüsseln
MD5 Einwegverschlüsselung
MD5 wandelt einen String in einen 32 Zeichen langen Hex-Code um. Das
heißt, man könnte einen Gigabyte langen String in MD5 verschlüsseln und würde
doch einen anderen Wert herausbekommen. Somit kann man den Code nicht mehr
entschlüsseln. Man kann ihn jedoch knacken. Indem man jede
Zeichenkettenkombination überprüft. Dies dauert jedoch, abhängig von der Länge
des verschlüsselten Textes, Tage, Monate oder sogar Jahre.
Tutorial_Kapitel6_Beispiel_7.php:
<?php
echo md5("lol"); // 9cdfb439c7876e703e307864c9167a15
if(md5($_GET["a"]) == "9cdfb439c7876e703e307864c9167a15") { echo "richtig!"; } else { echo "falsch!"; }
?>
|
Wenn du dieses Beispiel mit Tutorial_Kapitel6_Beispiel_7.php?a=lol ausführst
erhältst Du "richtig!".
Passwörter können in MD5 gespeichert werden, jedoch kann man das Passwort später
nicht mehr reproduzieren, aber ein neues für den Benutzer anlegen.
Eigene Funktionen erstellen
Eine der wichtigsten Eigenschaften von PHP ist, dass man auch eigene
Funktionen erstellen kann. Dies scheint jetzt für Dich wahrscheinlich unnötig,
da es wie sinnlose Arbeit aussieht. Ist es aber nicht. Aus 4 Jahre PHP Erfahrung
kann ich sagen: Funktionen werden die Programmierung bei größeren Scripts
erleichtern. Über deine eigene Funktion entscheidest jetzt Du selbst. Welche
Parameter sollen angegeben werden? Was wird die Funktion zurückgeben?
Tutorial_Kapitel6_Beispiel_8.php:
<?php
function MeineErsteFunktion($apfel, $birne) // String MeineErsteFunktion(int $apfel, int $birne) { if($apfel == 1) { $string = "Ich esse einen Apfel"; } else { $string = "Ich esse ".$apfel." Äpfel"; } if($birne == 1) { $string .= " und eine Birne."; } else { $string .= " und ".$birne." Birnen."; } return $string; }
echo MeineErsteFunktion(3, 1);
// Dies gibt "Ich esse 3 Äpfel und eine Birne." zurück.
?>
|
Aufbau:
function name($param1, $param2, $param3 = "", ...) // type name(type
$param1, type $param2[, type $param3[, ...]])
{
...
return $ret;
}
Zuerst leitet man mit dem Wort "function" ein. Man wählt einen Namen für die
Funktion und überlegt, ob es sinnvoll wäre der Funktion Parameter zu verleihen.
Wenn keine Parameter benötigt sind, lässt man die Klammer frei.
Darauf folgen Klammern wie bei den IF, For, While Schleifen. Innerhalb der
Schleifen schreibt man meist sinnvollen Code der sich im Script öfter
wiederholt.
Um Wiederholungen desselben Codes zu vermeiden benutzt man Funktionen. Dies hält
deinen Code sauber und sehr übersichtlich. Ein professioneller Programmieren
würde bei größeren Projekten niemals auf eigene Funktionen oder sogar auf eigene
Funktionsbibliotheken verzichten. (Funktionsbibliothek = Sammlung eigener
wichtiger Funktionen)
Fragen zu diesem Kapitel:
1. Wie fügt man PHP Scripte ineinander ein?
2. Wozu benutzt man MD5?
3. Wozu benutzt man Funktionen?
Antworten in Kapitel 7
Alle Beispiele von Kapitel 6
|
|
|