Fehler bei Variable, die nicht vorhanden ist

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Code steht eigentl. schon oben, aber hier nochmal:

    PHP-Code:
    <?php
    // Datenbank verbinden
    include ("config/settings2.php");

    //Hinzufügen von Einträgen - Formular
    switch ($_GET['cmd'])
    {
        case 
    'add':
    echo <<<GUESTFORM
        <p>Bitte teilen Sie uns hier Ihre Meinung mit.</p>
        <p>
        <form name="guestbook" action="
    $PHP_SELF" method="post">
        <input type="Hidden" name="cmd" value="send"/>
        <table border="0">
        <tr>
        <td>Ihr Name</td>
        <td><input tyte="text" name="name"/></td>
        </tr>
        <tr>
        <td>Ihre E-Mail Adresse</td>
        <td><input type="text" name="email"/></td>
        </tr>
        <tr>
        <td>Ihre Homepage</td>
        <td><input type="text" name="url"/></td>
        </tr>
        <tr>
        <td>Ihr Job</td>
        <td><input type="text" name="job"/></td>
        </tr>
        <tr>
        <td>Ihr Wohnhort</td>
        <td><input type="text" name="location"/></td>
        </tr>
        <tr>
        <td>Kommentare</td>
        <td><textarea name="comments" cols="60" rows="6"></textarea></td>
        </tr>
        <tr>
        <td></td>
        <td><input type="submit" value="Absenden"/><input type="reset" value="Löschen"/></td>
        </tr>
        </table>
        </form>
    GUESTFORM;
        
    // Anzeige nach dem eigenen Eintrag
        
    break;
        case 
    'view':
        echo 
    '<h2>Anzeige der Eintr&auml;ge</h2>';
        
    // Datenbank abfragen
        
    $result = @mysql_query("SELECT * FROM $table");
        
    // Datensätze holen
        
    while ($row mysql_fetch_row($result))
        {
    echo <<<ENTRY
            <HR>
            <b>Name:</b>  
    $row[1]
            <br /><b>E-mail:</b><a href="mailto:
    $row[2]">$row[2]</a>
            <br /><b>Homepage:</b><a href="
    $row[6]">$row[6]</a>
            <br /><b>Job:</b>  
    $row[3]
            <br /><b>Aus:</b>  
    $row[4]
            <br /><b>Kommentar:</b>
            <br />
    $row[5]
    ENTRY;
        }
        break;
        
        
        
        case 
    'send':
        
    $comments addslashes("$comments");
        
    /* Ursprüngl
        $strQuery = "INSERT into guestbook (name, email, url, job, location, comments) ";
        $strQuery .= "VALUES ('$name', '$email', '$url', '$job', '$location', '$comments')";
        */

        
    $result mysql_query("INSERT into $table (name, email, job, location, comments, url) VALUES ('$name',
    '
    $email', '$job', '$location', '$comments', '$url')");
        if (
    $result) echo "<p>Danke! Wir werden Ihren Beitrag ber&uuml;cksichtigen</p>";
        break;
        
        
        
        
        default:
        
    // Zuletzt wird die Anzahl der Datensätze ermittelt
        // und zur Hauptseite zurückverwiessen
        
    $result mysql_query("SELECT COUNT(*) FROM $table");
        
    $row mysql_fetch_row($result);
        
    $num $row[0];
        if (
    $num =="")
        {
            
    $entry "Es sind zur Zeite keine Beitr&auml;ge";
        }
        elseif (
    $num == "1")
        {
            
    $entry "Es ist zur Zeit ein Beitrag";
        }
        else
        {
            
    $entry "Es sind zur Zeit $num Beitr&auml;ge";
        }
    echo <<<LINKS
        <p>Willkommen in unserem G&auml;stebuch.<br />
        
    $entry im G&auml;stebuch.<p/>
        <a href="
    $PHP_SELF?cmd=add">Einen Beitrag hinzuf&uuml;gen</a><br />
        <a href="
    $PHP_SELF?cmd=view">Beitr&auml;ge ansehen</a><br />
    LINKS;
    }
    echo <<<ACCEPTED
    <p>
    <a href="
    $PHP_SELF">Zur&uuml;ck zur Startseite des G&auml;stebuches</a>
    </p>
    ACCEPTED;
    ?>
    ---
    Edit:
    Man könnte es lösen, wenn man direkt auf den link verweisen würde. Aber das wäre nicht so elegant..

    Hab da auch direkt noch n Problem
    Wenn man das Formular ausfüllt und auf Absenden klickt, wird nichts in die Datenbank geschrieben. Liegt das vielleicht daran, dass der send Button nicht auf das 'send' im Switch zeigt?
    Zuletzt geändert von Flo2003; 26.10.2006, 13:01.

    Kommentar


    • #17
      anstelle von
      PHP-Code:
      $PHP_SELF 
      musst du
      PHP-Code:
      $_SERVER['PHP_SELF'
      einsetzen, dann klappt es auch.

      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #18
        Jop, danke! Auch das Problem ist gelöst. Es besteht nur noch das Problem beim Eintragen!

        --

        Edit:
        Die Syntag stimmt, das habe ich durch ein anderes Script geprüft. Ich vermute, dass ein Problem beim Übergeben der Variablen beim Drücken des Absenden Buttons vorliegt

        --
        Edit2:
        Habe es jetzt editiert, sodass es zum senden kommt! Jedoch werden die Formularfelder nicht ausgelesen!
        Habe es mit $_GET['text'] versucht, bekomme es aber syntaktisch nicht hin!

        PHP-Code:
        <?php
        // Datenbank verbinden
        include ("config/settings2.php");

        //Hinzufügen von Einträgen - Formular
        switch ($_GET['cmd'])
        {
            case 
        'add':
        echo <<<GUESTFORM
            <p>Bitte teilen Sie uns hier Ihre Meinung mit.</p>
            <p>
            <form name="guestbook" action="
        $PHP_SELF?cmd=send" method="post">
            <input type="Hidden" name="cmd" value="send"/>
            <table border="0">
            <tr>
            <td>Ihr Name</td>
            <td><input tyte="text" name="name"/></td>
            </tr>
            <tr>
            <td>Ihre E-Mail Adresse</td>
            <td><input type="text" name="email"/></td>
            </tr>
            <tr>
            <td>Ihre Homepage</td>
            <td><input type="text" name="url"/></td>
            </tr>
            <tr>
            <td>Ihr Job</td>
            <td><input type="text" name="job"/></td>
            </tr>
            <tr>
            <td>Ihr Wohnhort</td>
            <td><input type="text" name="location"/></td>
            </tr>
            <tr>
            <td>Kommentare</td>
            <td><textarea name="comments" cols="60" rows="6"></textarea></td>
            </tr>
            <tr>
            <td></td>
            <td><input type="submit" value="Absenden"/><input type="reset" value="Löschen"/></td>
            </tr>
            </table>
            </form>
        GUESTFORM;
            
        // Anzeige nach dem eigenen Eintrag
            
        break;
            case 
        'view':
            echo 
        '<h2>Anzeige der Eintr&auml;ge</h2>';
            
        // Datenbank abfragen
            
        $result = @mysql_query("SELECT * FROM $table");
            
        // Datensätze holen
            
        while ($row mysql_fetch_row($result))
            {
        echo <<<ENTRY
                <HR>
                <b>Name:</b>  
        $row[1]
                <br /><b>E-mail:</b><a href="mailto:
        $row[2]">$row[2]</a>
                <br /><b>Homepage:</b><a href="
        $row[6]">$row[6]</a>
                <br /><b>Job:</b>  
        $row[3]
                <br /><b>Aus:</b>  
        $row[4]
                <br /><b>Kommentar:</b>
                <br />
        $row[5]
        ENTRY;
            }
            break;
            
            
            
            case 
        'send':
            
        $comments addslashes("$comments");
            
        /* Ursprüngl
            $strQuery = "INSERT into guestbook (name, email, url, job, location, comments) ";
            $strQuery .= "VALUES ('$name', '$email', '$url', '$job', '$location', '$comments')";
            */

            
        mysql_query("INSERT into $table (name, email, job, location, comments, url)
        VALUES ('
        $_GET[name]','b','c','d','e','f')");
            
        //('$name', '$email', '$job', '$location', '$comments', '$url')");

            
        echo "<p>Danke! Wir werden Ihren Beitrag ber&uuml;cksichtigen</p>";
                echo 
        mysql_error();
            break;
            
            
            
            
            default:
            
        // Zuletzt wird die Anzahl der Datensätze ermittelt
            // und zur Hauptseite zurückverwiessen
            
        $result mysql_query("SELECT COUNT(*) FROM $table");
            
        $row mysql_fetch_row($result);
            
        $num $row[0];
            if (
        $num =="")
            {
                
        $entry "Es sind zur Zeite keine Beitr&auml;ge";
            }
            elseif (
        $num == "1")
            {
                
        $entry "Es ist zur Zeit ein Beitrag";
            }
            else
            {
                
        $entry "Es sind zur Zeit $num Beitr&auml;ge";
            }
        echo <<<LINKS
            <p>Willkommen in unserem G&auml;stebuch.<br />
            
        $entry im G&auml;stebuch.<p/>
            <a href="
        $PHP_SELF?cmd=add">Einen Beitrag hinzuf&uuml;gen</a><br />
            <a href="
        $PHP_SELF?cmd=view">Beitr&auml;ge ansehen</a><br />
        LINKS;
        }
        echo <<<ACCEPTED
        <p>
        <a href="
        $_SERVER[PHP_SELF]">Zur&uuml;ck zur Startseite des G&auml;stebuches</a>
        </p>
        ACCEPTED;
        ?>
        Zuletzt geändert von Flo2003; 26.10.2006, 13:17.

        Kommentar


        • #19
          du sollst überall dein $PHP_SELF durch $_SERVER['PHP_SELF'] ersetzen. die formularinhalte überprüfst du mit print_r($_POST)

          und beschäftige dich bitte mit der phpsyntax ab version 4.1 sowie dem problem mit register_globals

          peter

          Zuletzt geändert von Kropff; 26.10.2006, 13:59.
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #20
            Hi,
            es funktioniert aber auch, wenn ich das nur da oben ersetze!

            Das Problem mit dem Eintragen habe ich auch gelöst!

            Danke an alle die mir geholfen haben

            Kommentar

            Lädt...
            X