kleiner PHP-Kurs

  • Naja wenn es nciht geht (PHPBB ist schon etwas ziemlich anderes.).
    Mach da am besten wirklich ein Request. Vielleicht schreibt dir ja jemand sogar sowas schnuckeliges mti Datenbankverbindung und Verwaltung im Admincenter... ja ich weiß ich erwarte schon wieder zu viel. LOL

    There are things... waiting in the darkness. Creatures of metal.. fire.. and blood.
    But he's out there, burning through time, facing a thousand dangers across the stars and never giving up. He looks like a man, but he's a legend. And his name... is The Doctor.
    He'll come back to save us and this time I'm gonna be ready.
    Then just like that - We'll be gone.
    Donna Noble (3rd Companion of the 10th Doctor)

  • Slowi genau das hatte ich iegentlichv or *grins* Mit Datenbankabfrage und ACP Zugang. Ich meine leicht wird es nicht aber probieren kann ich es mal. Und so unterschiedlich ist phpBB wirklich nicht.
    Nehmen wir den PHPBB2 Map Mod als Beispiel. Der konnte auch für WBB umgeschrieben werden und wurde so sogar noch verbessert.
    Also ganz unterschiedlich sind die Forensysteme nicht.
    Ich weiß zwar nicht ob es wirklich etwas wird, aber ich habe jetzt Lust mich da mal reinzuknien ^^
    Sollte es nicht klappen kann ich immer noch auch einen Request machen.

  • Tai lass mal lieber die Finger von der Datenbank. Ginome und ich proggen jetzt schon seit Jahren PHP und ham noch nicht wirklich Ahnung von Datenbankanbindung.
    Aber wenn dus doch machen willst mach vorher lieber nen Backup.

    There are things... waiting in the darkness. Creatures of metal.. fire.. and blood.
    But he's out there, burning through time, facing a thousand dangers across the stars and never giving up. He looks like a man, but he's a legend. And his name... is The Doctor.
    He'll come back to save us and this time I'm gonna be ready.
    Then just like that - We'll be gone.
    Donna Noble (3rd Companion of the 10th Doctor)

  • Nach fast 7 Jahren, endlich eine neue Lektion. Ich weiß ihr habt alle darauf gewartet! *Grillen zirpen* Damn!


    Variablen:


    In früheren Beispielen habe ich bereits Variablen benutzt. Jetzt kommt die Erklärung. :smiling_face:


    In PHP fangen Variablen immer mit einem $-Zeichen an, gefolgt von Buchstaben und Ziffern (manche Sonderzeichen funktionieren auch, aber viele nicht, daher sollte man lieber alle weg lassen).
    Aber wofür sind diese Dinger denn nun gut? Nun eine Variable kann Informationen halten, die später in scripten benutzt oder ausgegeben werden können.
    Das geschieht wie folgt:


    <?php
    $greet = 'Hallo Welt!';
    ?>


    Die Variable $greet enthält nun den Text "Hallo Welt". Wer in Mathe nicht seit der ersten Klasse eine Sechs hatte sollte hierin eine gewisse Logik erkennen. Ich sage praktisch "die Variable ist gleich der Text" in dieser Zeile.
    Zu beachten ist, dass der Text in ' ' gesetzt werden muss. " " ist auch möglich. Aber darin kann aller möglicher Kram notiert werden, wie andere Variablen, PHP Anweisungen wie \n, was einen Zeilenumbruch bewirkt, etc. Entsprechend ist bei einfachem Text ' ' einfach sauberer und auch schonender für den server, da hier drin auch nur reiner Text stehen kann.
    Am Ende wird die Zeile mit ; abgeschlossen. Aber das hat ja schon der Eich vor 8 Jahren erklärt. :D


    Nun geben wir die Variable aus. Erinnert ihr euch noch an die echo-Erklärung vom Eich? Das gleiche wenden wir hier jetzt auch an:


    <?php
    echo $greet;
    ?>


    Das wird nun wiederum folgendes auf der Webseite ausgeben:


    Hallo Welt!


    Denn $greet ist ja gleich "Hallo Welt!".


    Zu beachten ist, dass variablen nicht in " " geschrieben werden müssen und nicht in ' ' geschrieben werden dürfen. Es ist meist am Besten sie nackt stehen zu lassen.


    Auf den ersten Blick scheinen Variablen absolut nicht hilfreich. Aber sobald ihr Anfang Scripte zu schrieben, werden Variablen unverzichtbar. Ein Beispiel dafür ist mein include script auf der ersten Seite.

    There are things... waiting in the darkness. Creatures of metal.. fire.. and blood.
    But he's out there, burning through time, facing a thousand dangers across the stars and never giving up. He looks like a man, but he's a legend. And his name... is The Doctor.
    He'll come back to save us and this time I'm gonna be ready.
    Then just like that - We'll be gone.
    Donna Noble (3rd Companion of the 10th Doctor)

  • und noch eine:


    Mathe mit PHP:


    Etwas das später in scripten immermal wichtig wird ist Mathe. Bzw. wie man mit Variablen rechnen kann und wie nicht.
    Ich fange diesmal gleich mit einem Beispiel an und werde dann daran einige Dinge erklären.


    <?php
    $eins = 1;
    $zwei = 2;
    $drei = 3;
    $vier = '4';
    ?>


    Wenn ich nun folgenden code schreibe:


    <?php
    $ergebnis = $eins + $zwei;
    echo $ergebnis;
    ?>


    wird 3 auf der Webseite ausgegeben.
    PHP gerade eine einfache Matheaufgabe berechnet. :smiling_face:
    Das ist also genauso, als würde man es auf einem Taschenrechner eingeben. Alle Zeichen sind die gleichen:
    +, -, *, /, =, etc.
    Ich werde mich in den Beispielen auf + beschränken, da es sonst ausarten würde. Alles andere geht aber genau so.


    Wenn ich nun also folgendes schreibe,


    <?php
    $ergebnis = $drei + $vier;
    echo $ergebnis;
    ?>


    was wird dann wohl raus kommen? Wer 7 gesagt hat liegt falsch. :D Ich war hier etwas gemein und haben einen Fehler eingebaut.
    Denn ganz oben habe ich $vier als '4' definiert. Wer bei der letzten Lektion aufgepasst hat weiß, dass alles innerhalb von ' ' als Text behandelt wird und mit Text kann nicht gerechnet werden.
    Zahlen, genauso wie Variablen, sollten meist nackt stehen.




    Mathe geht im Prinzip auch einfacher.


    <?php
    echo 1 + 2;
    ?>


    wird auch 3 ausgeben, aber ich wollte euch zeigen, wie man mit Variablen rechnet, da das später wichtig wird.




    Eine kleine Besonderheit in PHPs Mathe ist ++.


    <?php
    $zwei++;
    echo $zwei;
    ?>


    ist das gleiche wie


    <?php
    $zwei = $zwei + 1;
    echo $zwei;
    ?>


    Beides wird als 3 ausgeben. Die Kurzform gibt es, da diese Rechenoperation (um 1 erhöhen) sehr oft gebraucht wird.




    Was aber tun wenn man zwei oder mehrere Variablen nicht berechnen, sondern nur zusammenfügen möchte?
    Dafür gibt es auch ein Zeichen. Dieses ist: .


    <?php
    $ergebnis = $eins.$vier.$drei.'zonk';
    echo $ergebnis;
    ?>


    gibt


    143zonk


    aus.

    There are things... waiting in the darkness. Creatures of metal.. fire.. and blood.
    But he's out there, burning through time, facing a thousand dangers across the stars and never giving up. He looks like a man, but he's a legend. And his name... is The Doctor.
    He'll come back to save us and this time I'm gonna be ready.
    Then just like that - We'll be gone.
    Donna Noble (3rd Companion of the 10th Doctor)

  • Arrays:


    So, einfache Variablen kennt ihr nun schon. Kommen wir zu komplizierteren: Arrays.
    Arrays sind praktisch Variablen in Variablen.


    Ab jetzt werde ich kein <?php ?> mehr benutzen, es sei denn ich mixe etwas mit HTML code. Ich denke ihr wisst mittlerweile, dass PHP code zwischen diese Zeichen gehört. :smiling_face:


    Arrays sind sehr vielseitig einzusetzen und garnicht mal so kompliziert, wenn man die Funktionsweise erst einmal raus hat.


    Wie erzeugt man ein Array? Nun da gibt es mehrere Varianten. Eine sehr häufig benutzte ist:


    $schlonz = array('Zeug', 'Kram', 'stuff');


    $schlonz ist nun ein array. Das bedeutet es stecken mehrere Untervariablen in ihm drinne. Diese kann man nun folgender maßen wieder abrufen:


    echo $schlonz[0];
    gibt aus:
    Zeug


    echo $schlonz[1];
    gibt aus:
    Kram


    echo $schlonz[2];
    gibt aus:
    stuff


    usw.


    Ihr seht, wenn ihr ein Array auf diese Weise erzeugt werden die "Untervariablen" von 0 an durchnummeriert und können so auch wieder abgerufen werden.




    Ein exakt gleiches array wie das oben beschriebene, könnt ihr auch folgendermaßen erzeugen:


    $schlonz[0] = 'Zeug';
    $schlonz[1] = 'Kram';
    $schlonz[2] = 'stuff';


    Da das aber mehr Schreibarbeit bedeutet und Programmierer faul sind, wird meist die obere Variante verwendet. :D




    Nun gibt es das array $schlonz schon. Du möchtest gerne noch weitere Einträge (Untervariablen) dran hängen, weißt aber nicht unbedingt wieviele Einträge das array schon hat (je nach script kann das vorkommen). Was tun?
    Hier kommt array_push(); ins Spiel.


    Mit array_push(); kann man Einträge an ein schon bestehendes array dran hängen. Die Syntax ist:


    array_push($array, 'Anhang 1', 'Anhang 2');


    In unsere speziellen Fall wäre das also:


    array_push($schlonz, 'Müll', 'Krempel');


    Entsprechend:


    echo $schlonz[3];
    gibt aus:
    Müll


    und


    echo $schlonz[4];
    gibt aus:
    Krempel


    Diese Ausgabe kann man natürlich nur erzeugen, wenn man weiß wie lang das array ist. Hat man blind Werte hinten dran gehangen, geht das natürlich nicht.
    Aber fürchtet euch nicht, denn es gibt auch eine automatische Ausgabe, bei der ihr nicht wissen müsst, wieviele Einträge das array hat. Aber das behandeln wir später, im Post über Schleifen.




    Nun müssen die Einträge in einem array nicht unbedingt mit Zahlen Beschriftet sein:


    $lala['po'] = 'tele';
    $lala['dipsy'] = 'tubby';


    $lala ist hier ein absolut legales und brauchbares array.
    Entsprechend:


    echo $lala['po'];
    gibt aus:
    tele


    und


    echo $lala['dipsy'];
    gibt aus:
    tubby


    Nun mag es verlockend sein diese Art von array eher zu benutzen, schließlich kann man sich Worte besser merken als Zahlen.
    Hiervon würde ich aber generell abraten. Oft muss wird als array pointer das Ergebnis eienr Rechnugn eingetragen oder der array pointer für eine Rechenaufgabe benutzt und wie ich im letzten Beispiel schon gezeigt habe, geht das recht schlecht mit Text.




    Die letzte wichtige Sache, die ihr über arrays wissen müsst ist, dass man auch mehrere Ebenen tief gehen kann. Man kann theoretisch unendlich [][][][][] aneinander reihen. Dabei ist es auch möglich Zahlen und Buchstaben zu mixen. Ich werde hier nur mit doppelter Tiefe demonstrieren, aber wie gesagt, es ist unendlich erweiterbar.


    // Deutsch
    // Editionsnamen
    $edi['de'][1] = 'rbg';
    $edi['de'][2] = 'gsc';
    $edi['de'][3] = 'rss';
    $edi['de'][4] = 'dp';
    $edi['de'][5] = 'sw';


    // Englisch
    // Editionsnamen
    $edi['en'][1] = 'rby';
    $edi['en'][2] = 'gsc';
    $edi['en'][3] = 'rse';
    $edi['en'][4] = 'dp';
    $edi['en'][5] = 'bw';


    Wie ihr seht habe ich zwei Ebenen. In der ersten Ebene habe ich zwei Möglichkeiten, 'en' oder 'de', in der zweiten ebene ist es aber immer gleich. So muss ich wenn ich entweder englisch oder deutsch ausgeben will nur die erste Ebene ändern.
    Bleistift:


    echo $edi['en'][3];
    gibt aus:
    rse


    echo $edi['de'][3];
    gibt aus:
    rss


    Zwei unterschiedliche Ausgaben, obwohl nur Ebene 1 geändert wurde. Das Wichtige hieran ist aber, dass es die selbe Pokemonedition ist, nur in zwei unterschieldichen Sprachen und somit immer an der richtigen Stelle im Text steht. Das wird von Ebene zwei bestimmt, die hier nicht angefasst wird.
    Wenn ihr etwas ähnliches aufbaut könnt ihr die Ebenen natürlich auswechseln, mehrere hinzufügen, etc. Der Fantasie sind da keine Grenzen gesetzt.




    Weiterführende Informationen zu arrays gibts hier: http://de2.php.net/manual/de/function.array.php
    Besonders interessant sind die Links auf der linken Seite.

    There are things... waiting in the darkness. Creatures of metal.. fire.. and blood.
    But he's out there, burning through time, facing a thousand dangers across the stars and never giving up. He looks like a man, but he's a legend. And his name... is The Doctor.
    He'll come back to save us and this time I'm gonna be ready.
    Then just like that - We'll be gone.
    Donna Noble (3rd Companion of the 10th Doctor)

    2 Mal editiert, zuletzt von Slowking ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!