Seite 1 von 2

PHP Code

Verfasst: 07.05.2008 14:31
von Romantica
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!

Verfasst: 07.05.2008 14:37
von Dr.Death
Du scheinst die doppelten Anführungszeichen nicht maskiert zu haben...

Siehe dazu auch:

http://www.perun.net/2004/04/16/php-ler ... e-zeichen/

Code: Alles auswählen

<?php
echo "Ich versuche \"PHP\" zu lernen";
?>

Verfasst: 07.05.2008 14:40
von Romantica
und wo müsste ich die in dem entsprechenden Fall setzen!?

Verfasst: 07.05.2008 14:46
von Dr.Death
Dazu müsste man den gesamten Code sehen.

Du kannst ihn ja als TXT Datei hier verlinken.

Verfasst: 07.05.2008 15:03
von Romantica
<?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;
?>

Verfasst: 07.05.2008 16:02
von Dr.Death
Ich glaube, ich sollte die Schriftgröße meiner Signatur vergrößeren. :-?

Du solltest den langen Code nicht hier hinein "schreiben", sondern "verlinken" ( Anleitung dazu findest Du in meiner Signatur )

Entferne bitte den obigen, langen Code Block.


Nun aber zurück zum Thema:

Du hast aber nicht PHP und HTML Code in der gleichen Datei, oder ?

Wenn ja, hast Du vergessen den ersten PHP Teil Deines Code zu beenden.

Entweder machst Du alle HTML Ausgaben mit " echo " oder Du verwendest ein Template System wie phpBB.

Verfasst: 08.05.2008 08:59
von Romantica
Sry, habe deine Signatur überhaupt nich gelesen...

wir kann cih denn den Beitrag löschen?

Naja, ich hab die Datei so aus dem Internet, ich hab da nicht mehr viel reingeschrieben...

Verfasst: 08.05.2008 09:09
von gsxfan
Du sollst den Beitrag ja auch nicht löschen (Kannst Du auch nicht), sondern ihn editieren (Das kannst Du immer). Einfach den langen Code entfernen und bei Bedarf als Link zu einer externen Datei, z.B. auf Deinem Webspace, setzen. Und wie das geht, steht in der Signatur wie oben beschrieben.

Verfasst: 08.05.2008 10:25
von Romantica
ich kann hier nichts ändern.

aber back to topic... was muss ich an meinem code ändern?

Verfasst: 08.05.2008 16:23
von Boecki91
DA gibt es so rechts oberhalb deines Beitrages einen Knopf mit der Aufschrift "Edit".