Problem bei PHP und Mysql

Dieses Thema im Forum "Programmieren" wurde erstellt von computernarr, 18. Oktober 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. computernarr

    computernarr Kbyte

    Registriert seit:
    30. März 2002
    Beiträge:
    163
    Ich bin dabei ein Gästebuch mit PHP und Mysql zuschreiben!
    Mysql ist soweit fertig das man Beiträge hinzufügen kann!
    Ich habe auf meinen Rechner OmniHTTPd(lokaler Webserver) installiert um das Gästebuch zu testen!
    Immer wenn ich das Gästebuch starten will kommt bei mir der Fehler:
    Ich weiß aber nicht wo der Fehler liegt!
    Ich Poste mal den Quellcode:
    eintrag.php4

    <?php

    $server= "localhost";
    $user= "";
    $passwort= "";
    $datenbank= "user";

    MYSQL_CONNECT($server, $user, $passwort) or die ( '<H3>Datenbankserver nicht erreichbar</H3>');
    MYSQL_SELECT_DB($datenbank) or die ( '<H3>Datenbank nicht vorhanden</H3>');

    if ($submit){
    // Der Submit - Button wurde gedrückt
    // -> die Werte müssen überprüft
    // und bei Gültigkeit in die DB eingefügt werden

    // wir gehen von der Gültigkeit der Daten aus
    $DatenOK = 1;

    // es gab noch keine Fehlermeldung
    $error = "";

    if ($name == ""){
    // es wurde kein Name eingegeben
    $DatenOK = 0;
    $error .= "Es muß ein Name eingegeben werden<br>\n";
    }

    if ($eintrag == ""){
    // es wurde kein Komementar eingegeben
    $DatenOK = 0;
    $error .= "Ein Eintrag ohne Komemntar mach nicht viel";
    $error .= " Sinn, oder?<br>\n";
    }

    if ($DatenOK){
    // Daten waren OK -> also in DB eintragen
    mysql_query(sprintf('insert into meldung
    (datum,name,eintrag)
    VALUES (now(),"%s","%s")',
    addslashes($name),
    addslashes($eintrag)));
    echo mysql_error();

    // Alles eingetragen -> zurück zur Übersicht
    header('Location: http://'.$HTTP_HOST.
    substr($PHP_SELF,0,strrpos($PHP_SELF,'/')).'/');
    // und fertig...
    die();
    }

    }
    ?>

    <html>
    <head>
    <title>Neuer Eintrag in unser GB</title>
    </head>
    <body>
    <?php
    if ($submit && !$DatenOK){
    // Das Formular wurde schon abgeschickt aber die Daten
    // waren nicht OK
    // -> Fehlermeldung ausgeben
    echo "<h2>Fehler:</h2>\n";
    echo $error;
    }

    // Formular anzeigen
    ?>
    <form action="<?php echo $PHP_SELF; ?>" method="GET">
    Name:
    <input type="text" name="name" size="30" maxlength="200"
    value="<?php echo $name; ?>">
    <br>
    Text:<br>
    <textarea rows="10" cols="50" wrap="virtual" name="eintrag">
    <?php echo $eintrag; ?>
    </textarea>
    <br>
    <input type="submit" name="submit" value="Absenden">

    </body>
    </html>

    und ausgabe.php4
    <?php

    $server= "localhost";
    $user= "";
    $passwort= "";
    $datenbank= "user";

    MYSQL_CONNECT($server, $user, $passwort) or die ( '<H3>Datenbankserver nicht erreichbar</H3>');
    MYSQL_SELECT_DB($datenbank) or die ( '<H3>Datenbank nicht vorhanden</H3>');

    ?>

    <html>
    <head>
    <title>Die Eintr&auml;ge in unserem GB</title>
    </head>
    <body>
    <?php

    $res = mysql_query('select datum, name, eintrag
    from meldung
    order by datum desc');
    echo mysql_error();

    while ($row = mysql_fetch_array($res)){
    echo "<table border=\"1\" width=\"600\">\n";
    printf("<tr><td>Name:</td><td>%s</td></tr>\n",
    htmlentities($row["name"]));
    printf("<tr><td>Datum:</td><td>%s</td></tr>\n",
    $row["datum"]);
    printf("<tr><td>Eintrag:</td></tr>\n");
    printf("<tr><td colspan=\"2\">%s</td></tr>\n",
    nl2br(htmlentities($row["eintrag"])));
    echo "</table>\n";
    }
    ?>
    <hr>
    <a href="eintrag.php4">neuen Eintrag hinzufügen</a>
    </body>
    </html>
     
  2. computernarr

    computernarr Kbyte

    Registriert seit:
    30. März 2002
    Beiträge:
    163
    Läuft jetzt alles!:D :D :D
     
  3. computernarr

    computernarr Kbyte

    Registriert seit:
    30. März 2002
    Beiträge:
    163
    Hab jetzt mal die Datei auf einen Tripodserver geladen da kommt dann die Fehlermeldung:
    Parse error: parse error, expecting `',' or `';' in /data/members/free/tripod/de/t/o/p/top100fighter/htdocs/gästebuch2/eintrag.php on line 13


    Das ist der eintrag:
    if ($submit){
    ...
    edit
    Der Fehler hat sich erledigt!
    Aber wenn ich es ausprobieren möchte dann komme ich auf die Startseite von Tripod!
     
  4. computernarr

    computernarr Kbyte

    Registriert seit:
    30. März 2002
    Beiträge:
    163
    Zu dem obrigen Problem kann ich noch hinzufügen das es ohne
    form action funktioniert!
    Also wenn ich die variablen vorher belege!

    Ich habe jetzt mal eine neue Funktion geschrieben!
    Hier besteht das Problem das ich die Tabelle nicht auf dem Monitor erscheinlassen kann!
    Aber im Prinzip das Gleiche wie oben!

    Ich habe es schon mal etwas anderes probiert!
    Da habe ich fast alles weggelassen, das nur der Befehl Insert into... steht!
    Der hat noch funktioniert!
    Aber wie kann ich dann die Tablle in PHP auf dem Monitor zeigen lassen?
    Quellcode:
    <?php

    $server= "localhost";
    $user= "";
    $passwort= "";
    $datenbank= "user";

    MYSQL_CONNECT($server, $user, $passwort) or die ( '<H3>Datenbankserver nicht erreichbar</H3>');
    MYSQL_SELECT_DB($datenbank) or die ( '<H3>Datenbank nicht vorhanden</H3>');

    $sql= "CREATE TABLE aa (
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(50) NOT NULL,
    Passwort VARCHAR(50) NOT NULL
    );";

    $result = mysql_query("$sql");

    $sql = "
    INSERT INTO aa (id,Name,Passwort)VALUES(','Detlef',
    'Karsten');";

    $result = mysql_query("$sql");

    $sql="SELECT * FROM aa WHERE Name = 'Detlef'";(Ich weiß das er jetzt nur Detlef wieder gibt!)

    $result=mysql_query("$sql");

    while($row=mysql_fetch_array($result, MYSQL_ASSOC) ){
    print "Name:$row[Name]";


    //print ?
    //echo ?
     
  5. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.479
    Der Fehler kann laut der Fehlermeldung eigentlich nur aus dieser Zeile kommen:

    header('Location: http://'.$HTTP_HOST.
    substr($PHP_SELF,0,strrpos($PHP_SELF,'/')).'/');

    Mit den $PHP_SELF's habe ich öfter die Erfahrung gemacht, dass die Referenzen nicht bei jeder Funktion auf dem Ursprungsscript bleiben, sondern entsprechend dem Speicherort der Funktion oder Include verbogen werden.

    Versuch $PHP_SELF zu Beginn der Datei in eine separate Variable zu überführen und mit dieser weiter zu arbeiten. Zudem solltest du kontrollieren, welches Ergebnis $HTTP_HOST liefert.

    Gruss, Matthias
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen