PHP Code - Fehler

Alles, was PHP betrifft, kann hier besprochen werden.

PHP Code - Fehler

Postby Romantica » 08. May 2008 10:24

Hallo,

ich bin gerade dabei, mir ein Gästebuch zu erstellen. Nach testen der Datenbank funktioniert diese auch.

nun stehe ich aber vor einem kleinen Rätsel.

form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="text/html" name="form"

Dieser Teil soll einen Fehler beinhalten. Doch ich weiß nich wo dieser sein aknn. als Fehler bekomme ich:

Parse error: syntax error, unexpected T_STRING in C:\test\gaestebuch.php on line 71

Helft mir!
Romantica
 
Posts: 9
Joined: 08. May 2008 09:40

Postby Nobbie » 08. May 2008 12:58

So wie es da oben steht, ist es total megafalsch.

Wie wäre es, wenn Du uns den echten Code zeigen würdest anstatt eines verstümmelten und völlig wertlosen Bruchstücks? Benutze dazu bitte den "Code"-Button (s.o.), damit der Code abgetrennt und korrekt formatiert wird.
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Postby Romantica » 08. May 2008 18:04

Das is ein Code, der aus einem Tutorial stammt!

Code: Select all
<?php
define ( 'MYSQL_HOST', 'localhost' );
define ( 'MYSQL_BENUTZER', 'root' );
define ( 'MYSQL_KENNWORT', '' );
define ( 'MYSQL_DATENBANK', 'homepage' );

$db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

if ( ! $db_link )
{                     

    // hier sollte dann später dem Programmierer eine
    // E-Mail mit dem Problem zukommen gelassen werden
    // die Fehlermeldung für den Programmierer sollte
    // das Problem ausgeben mit: mysql_error()
    die('Zur Zeit keine Verbindung m&ouml;glich!!! ');
}

$db_sel = mysql_select_db( MYSQL_DATENBANK )
    or die("Auswahl der Datenbank fehlgeschlagen");

// SQL-Befehl für den Zugriff
$sql = "
    SELECT
        *
    FROM guestbook
    ORDER BY datum
";

// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
    die('Ungültige Abfrage: ' . mysql_error());
}

// Anzeige der Anzahl der Einträge
$anzahl_eintraege = mysql_num_rows($db_erg);
echo "<p>Anzahl der Gästebuch-Einträge: $anzahl_eintraege </p>";

while ($daten = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
    // Aushabe der Daten
    echo "ID: ";
    echo $daten['id'];
    echo "<br />";

    echo "Name: ";
    echo $daten['name'];
    echo "<br />";

    echo "E-Mail: ";
    echo $daten['email'];
    echo "<br />";

    echo "URL: ";
    echo $daten['url'];
    echo "<br />";

    echo "Datum: ";
    echo $daten['datum'];
    echo "<br />";

    echo "Gästebucheintrag: ";
    echo $daten['eintrag'];
    echo "<br />";
}

mysql_free_result( $db_erg );

form action="<?php echo $_SERVER['PHP_SELF']; ?>" method='POST' enctype='text/html' name='form'
<p>Ihr Name:<br />
<input type="text" name="name" value="" size="50" maxlength="150" />
</p>

<p>Ihre E-Mail-Adresse:<br />
<input type="text" name="email" value="" size="50" maxlength="150" />
</p>

<p>Ihre Homepage:<br />
<input type="text" name="url" value="" size="50" maxlength="150" />
</p>

<p>Gästebucheintrag:<br />
<textarea name="eintrag" rows="10" cols="50"></textarea>
</p>

<input type="Submit" name="" value="speichern" />
</form>

if ( $_POST['eintrag'] != "" )
{
    echo "<h2>Eintrag speichern</h2>";
    // hier kommt nun der entsprechende PHP-Code
    exit;
}

     $sql = " INSERT INTO gaestebuch ";
$sql .= " SET ";
$sql .= " name   ='". $_POST['name'] ."', ";
$sql .= " email  ='". $_POST['email'] ."', ";
$sql .= " url    ='". $_POST['url'] ."', ";
$sql .= " datum  ='". date("Y-m-d H:i:s") ."', ";
$sql .= " eintrag='". $_POST['eintrag'] ."' ";     

echo "<hr />SQL: $sql<hr />";

// ausführen des mysql-Befehls
$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}

echo '<p><a href="gaestebuch.php">Gästebuch anzeigen</a></p>';
exit;
?>
Romantica
 
Posts: 9
Joined: 08. May 2008 09:40

Postby Nobbie » 08. May 2008 18:39

Das kommt so sicher nicht aus einem Tutorial - das ist doppelt falsch:

1) Da steht innerhalb der PHP-Tags (<?php ..... ?>) einfach plattes HTML - fängt auf Zeile 71 an und geht so überhaupt nicht.

2) Die Zeile 71 selbst ist dann noch einmal total falsch, weil beim form-TAG die Kleiner- und Größerzeichen am Anfang und Ende fehlen.

Du mußt Du HTML Teile sauber von den PHP Teilen abgrenzen (durch Schließen des <?php TAGs und wieder neu eröffnen, wenn wieder PHP kommt).

P.S.: Habe mir den ganzen Code noch mal genauer angeschaut - das geht so überhaupt nicht. So funktioniert CGI Programmierung nicht. Aus welchem Tutorial soll das denn sein?
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04

Postby Romantica » 08. May 2008 19:45

http://www.php-kurs.com/beispiel-gaeste ... -mysql.htm

Von da kommt das glaub ich.. den Code selber hab ich irgendwo anders so aneinandergereiht gefunden!
Romantica
 
Posts: 9
Joined: 08. May 2008 09:40

Postby Nobbie » 08. May 2008 20:13

Und bei dem HTML-Teil steht dieses drüber:

Für den Eintrag ins Gästebuch erstellen wir eine neue Datei mit dem Namen "gaestebuch-eintrag.php"
Nobbie
 
Posts: 8770
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 1 guest