• Servus ;)

    Ich bin gerade dabei mir PHP anzueignen, nur komme ich bei einer sache nicht weiter.

    Code http://localhost/test.php

    Es soll volgendes bewirken:

    wenn man auf Go 1 klickt soll die dazugehörige if ausgefürt werden.
    http://localhost/test.php?action=1
    wenn man auf Go 2 klickt soll die dazugehörige if ausgefürt werden.
    http://localhost/test.php?action=2

  • thx für deinen Link aber das ist nicht das Thema was ich da versuche. es soll über einen link nur ein teil der test.php ausgefürt werden und dies soll nicht durch einen cookie bestimmt werden. es geht auch nicht um den inhalt der if anwendungen, sondern nur um die ausfürung der einzelnen anwendungen. dies soll in der url zu sehen sein.

  • Ja, allerdings kannst du nicht über $action auf den Parameter zugreifen, verwende $_GET['action'].

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Ich habe dich schon richtig verstanden, aber du verstehst die Problematik nicht. Der Zugriff auf $action ist falsch und deshalb funktionieren die if-Abfragen nicht.

  • Ja, allerdings kannst du nicht über $action auf den Parameter zugreifen, verwende $_GET['action'].

    dank dir so geht ;)

    Code
    if ($_GET['action'] == "1"){
        echo "Eins";
    }
    
    
    
    
    if ($_GET['action'] == "2"){
        echo "Zwei";
    }
  • Dann schreibe mal an den Anfang des Scriptes die Zeilen

    PHP
    error_reporting(E_ALL);
    ini_set("display_errors", true);


    und schon meckert PHP beim ersten Aufruf ohne Parameter. Diese Version ist unsauber!!

  • Bandit, du musst den Newbie nicht gleich an-bolden, nur weil er nicht weiß, wie man Variablen korrekt initialisiert, finde ich.

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Was ist so schlimm daran? Sofort richtig lernen, umso leichter wird es später. ;)

  • Was ist so schlimm daran?

    Kann ich dir sagen, es macht dich erstmal unsympathisch ;)
    Aber wiederum auf der anderen Seite, haste recht.

    Nun habe ich das nächste Prob. Und zwar wenn ich nun einen Eintrag machen will, dann speichert er nur die id und nicht die Variablen $name und $massage.

    Code gaestebucheintrag.php

  • Ja, dann lass dir doch vor dem Eintragen $name und $message ausgeben.

    PHP
    var_dump($name);
    var_dump($message);


    Du wirst sehen, dass sie wieder nicht initalisiert sind. Du musst auf jede Variable, die durch ein Formular übergeben wird, mit $_GET['variablenname'] zugreifen, wenn das Formular method="get" hatte. Hatte es hingegen method="post", benutzt du $_POST['variablenname'].

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • habe es nun hinbekommen ;)

    Kann geclost werden ;)

  • Servus bandit,

    Wenn ich das richtig verstanden habe, wäre es möglich, wenn ich so ein Kennwort geschützten Bereich erstelle, sich da einzuloggen ohne Logindaten. Was ich wiederum nicht verstehe, ist das es nur ein Gästebuch Eintrag ist und nicht geschützt ist. Worauf sollte ich den da achten?

    Gruß Skared

  • Nein, das siehst du falsch. Du musst die Doku schon richtig lesen:

    Zitat


    mysql_real_escape_string() ruft die Funktion mysql_real_escape_string der MySQL-Bibliothek auf, die folgende Zeichen mit einem Backslash ('\') versieht: \x00, \n, \r, \, ', " und \x1a.
    Die Funktion muss immer (mit wenigen Ausnahmen) verwendet werden, um Daten abzusichern, bevor sie per Query an MySQL übermittelt werden.

  • Servus bandit,

    Wenn ich das richtig verstanden habe, wäre es möglich, wenn ich so ein Kennwort geschützten Bereich erstelle, sich da einzuloggen ohne Logindaten. Was ich wiederum nicht verstehe, ist das es nur ein Gästebuch Eintrag ist und nicht geschützt ist. Worauf sollte ich den da achten?

    Gruß Skared



    Steht doch auf der Seite wo Bandit als letztes gepostet hatte.

    Zitat

    Die Funktion muss immer (mit wenigen Ausnahmen) verwendet werden, um Daten abzusichern, bevor sie per Query an MySQL übermittelt werden.



    edit: bandit war schneller;)

  • Hm dann schau ich mir das Später mal genauer an ;)

    Nun habe ich folgendes Problem. Ich lass mir die Einträge über eine "while" anzeigen und möchte per Klick auf Ansehen nur den einen anzeigen lassen. Er ruft die if ($_GET['action'] == "select") zwar auf aber "$data['name']" und "$data['massage']" bleiben leer. Ich nehme an, es liegt daran das die $data['id'] nicht übermittelt wird.

    Was mache ich da falsch?

  • Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
    3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


    http://www.php.net/manual/de
    http://www.php-faq.de
    http://www.php-einfach.de
    http://tut.php-q.net/index.html
    http://dev.mysql.com/doc/refman/5.1/de/index.html
    http://ffm.junetz.de/members/reeg/DSP/
    http://www.phptutorials.de
    http://www.dynamic-webpages.de/05.tutorials.php
    http://de.selfhtml.org/
    http://www.css4you.de/index.html

    Einmal editiert, zuletzt von bandit600 (23. Juni 2009 um 14:27)

  • ich habe error_reporting(E_ALL); und ini_set("display_errors", true); mal mit rein gemacht und das hat meinen Verdacht bestätigt, dass in der

    if ($_GET['action'] == "select") {

    was falsch ist.

    Fehlermeldung:

    Code
    [B]Notice[/B]:  Undefined index:  action in [B]D:\xampp\htdocs\gaestebuch\ansehen.php[/B] on line [B]36[/B]

    Und an was liegt das ?

  • Siehe Posting #5, da steht doch, wie du auf Existenz von Variablen prüfen kannst!