Gaestebuch.php ???

Message
Author
flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

Gaestebuch.php ???

#1 Post by flowjo »

Hallo!

Hab das Gästebuch ausprobiert das auf dieser Seite angepriesen wird.
Funktioniert bei mir leider nicht richtig - ich kann in der addentry.html meine Einträge machen und abschicken, dann kommt die Meldung "zu den Einträgen" (ist ja auch noch richtig) nur ist der neuangelegte Eintrag leer.

Code: Select all

 addentry.html

<html>
<body>
<form method=post action=addentry.php>
Name&#58; <input type=text name=tfa><br>
E-Mail&#58; <input type=text name=tfb><br>
Eintrag&#58; <textarea name=tfc rows=10
0></textarea><br><br>
<input type=submit>
</form>
</body>
</html>


Code: Select all

  addentry.php

<?
if &#40;$tfa == "1" or $tfb == "1" or $tfc == "1"&#41;
 &#123;
  echo "Sie müssen alle Felder ausfüllen.<br><br>";
 &#125;
else
 &#123;
  $conn_id = mysql_connect&#40;"localhost","test","test"&#41;;

  $eintrag = nl2br&#40;$tfc&#41;;

  mysql&#40;"gaestebuch","insert into daten &#40;name, email, eintrag&#41;
       VALUES &#40;'$tfa','$tfb','$eintrag'&#41;",$conn_id&#41;;

  echo "Eintrag hinzugefügt";
  echo "<br><br><a href='gaestebuch.php'>Zurück zum
Gästebuch</a>";
 &#125;
?>

Code: Select all

 gaestebuch.php

<?
 $conn_id = mysql_connect&#40;"localhost","test","test"&#41;;
 $result = mysql &#40;"gaestebuch","select * from daten"&#41;;
 $num = mysql_numrows&#40;$result&#41;;

if &#40;$num != 0&#41;
 &#123;
 for &#40;$i=0;$i<$num;$i++&#41;
  &#123;

  $nrak = $num - $i - 1;

  $name = mysql_result&#40;$result,$nrak,"name"&#41;;
  $email = mysql_result&#40;$result,$nrak,"email"&#41;;
  $eintrag = mysql_result&#40;$result,$nrak,"eintrag"&#41;;

  echo "<table border=1>";
  echo "<h2>Eintrag Nummer $nrak</h2>";
  echo "<tr><td width='100'>Name&#58;</td><td
width='400'>$name</td></tr>";
  echo
"<tr><td>E-Mail&#58;</td><td>$email</td></tr>";
  echo "<tr><td
valign=top>Eintrag&#58;</td><td>$eintrag</td></tr>";
  echo "</table><hr>";
  &#125;
 &#125;
else echo "<br><br>Keine Einträge !";

?>

</ul>
<br><br>
<a href="addentry.html">Eintrag hinzufügen !</a>
In der addentry.php habe ich mit Absicht bei den ersten drei einträgen den Wert auf 1 gesetzt da sonst immer die Fehlermelung "bitte alle Felder ausfüllen" angezeigt wurde.
In Myadmin hab ich natürlich die Datenbank "Gaestebuch" mit der Tabelle "daten" und den entsprechenden 3 Zeilen angelegt und die Rechte auch so gegeben das es eigentlich funktionieren müsste... hoffe es findet einer den Fehler. ich weis jetzt echt nicht mehr woran es liegt.. vielen Dank im Voraus!!

flowjo

Maaak

#2 Post by Maaak »

Mir ist jetzt auf den ersten Blick was aufgefallen, das ich anders mach:

echo "<h2>Eintrag Nummer $nrak</h2>"; wäre bei mir
echo "<h2>Eintrag Nummer ".$nrak."</h2>";

sprich Strings und Variablen mit einem . verbinden.


Aber kommen die Daten überhaupt in die Datenbank oder werden sie nur nicht über den Browser angezeigt, wenn Du auf Gästebuch.php gehst?

Und änder doch mal in der addentry.php die tfx-Werte in "" statt "1". Wenn Du dann überall was drinstehen hast und immer noch die Meldung kommt "Sie müssen alle Felder ausfüllen" isn gscheider Wurm drin :)

Grüßle,
Marc

flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

#3 Post by flowjo »

hab das mit: echo "<h2>Eintrag Nummer ".$nrak."</h2>"; gemacht - ändert leider auch nix.

Und die Daten kommen auch nicht in der DB an, zumindest werden sie dort nicht gespeichert.

wenn ich bei den tfx-Werten nicht irgendetwas drinstehen habe kommt immer die meldung:
"Sie müssen alle Felder ausfüllen." auch wenn ich alle Felder ausgefüllt habe.

Also hast du recht, isn gscheider Wurm drin!!!

Bitte trotzdem weitere Vorschläge!!! hab alles was ich mir überlegt habe schon ausprobiert.

flowjo

flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

#4 Post by flowjo »

Trotzdem noch "Vielen Dank" an Maaak für den Beitrag!

Maaak

#5 Post by Maaak »

Dann schau mer mal ob Deine Datenbankverbindung überhaupt steht:

<%
mysql_connect("localhost","test","test") or die ("Keine Verbindung möglich");
mysql_select_db("gaestebuch") or die ("Die Datenbank existiert nicht");
%>

Kannst in Deine addentry.php einbauen oder mach einfach eine eigene php-Datei daraus und ruf die dann im Browser auf.

flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

#6 Post by flowjo »

hab das jetzt mal folgendermasen eingebunden:

Code: Select all

 

<?

<%
mysql_connect&#40;"localhost","test","test"&#41; or die &#40;"Keine Verbindung möglich"&#41;;
mysql_select_db&#40;"gaestebuch"&#41; or die &#40;"Die Datenbank existiert nicht"&#41;;
%> 


if &#40;$tfa == "0" or $tfb == "0" or $tfc == "0"&#41;
 &#123;
  echo "Sie müssen alle Felder ausfüllen.<br><br>";
 &#125;
else
 &#123;
  $conn_id = mysql_connect&#40;"localhost","test","test"&#41;;

  $eintrag = nl2br&#40;$tfc&#41;;

  mysql&#40;"gaestebuch","insert into daten &#40;name, email, eintrag&#41;
       VALUES &#40;'$tfa','$tfb','$eintrag'&#41;",$conn_id&#41;;

  echo "Eintrag hinzugefügt";
  echo "<br><br><a href='gaestebuch.php'>Zurück zum
Gästebuch</a>";
 &#125;
?>

beim ausführen kam dann diese Meldung:

Parse error: parse error, unexpected '<' in /var/www/localhost/htdocs/Gaestebuch/addentry.php on line 5

???

Maaak

#7 Post by Maaak »

Ah, lass <% und %> weg. Sorry, das ist für die Microsoft-Server. Die mögen die <? Tags nicht, sondern verwenden die anderen (Microsoft halt :))

flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

#8 Post by flowjo »

ok, habs gleich abgeändert.
die verbindung zur DB geht, die DB ist vorhanden : gaestebuch.php
es kam keine fehlermeldung.

(zur probe hab ich mal den benutzer abgeändert in "test12" da kam die fehlermeldung)

hhmmm... also werden die Daten entweder gar nicht übermittelt oder in der DB nicht gespeichert oder ?

flowjo

Maaak

#9 Post by Maaak »

Kommst Du direkt an die Datenbank? Über phpMyAdmin z.B.? Weil dann kannst Du ja mal einen Testeintrag von Hand reinschreiben und dann auf Gaestebuch.php überprüfen. Wenn des dann geht, dann ist der Fehler nur in der addentry.php (denk ich :))

flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

#10 Post by flowjo »

hab ich eben getestet. geht.
(aslo ich hab über phpmyadmin einträge vorgenommen und diese auch wieder über Gestebuch.php auslesen können)

langsam geht es dem problem an den kragen, hab ich so das gefühl! :)

habe nochmal die zugriffsrechte und schreibrechte überprüft von der seite müsste es klappen.
hast also (wahrscheinlich) recht, bleibt ja nur noch die addentry.php...

flowjo

Maaak

#11 Post by Maaak »

Dann mach mal die komplette if-Schleife weg:

addentry.php:

$conn_id = mysql_connect("localhost","test","test");
$eintrag = nl2br($tfc);
mysql("gaestebuch","insert into daten (name, email, eintrag)
VALUES ('$tfa','$tfb','$eintrag')",$conn_id);
echo "Eintrag hinzugefügt";
echo "<br><br><a href='gaestebuch.php'>Zurück zum Gästebuch</a>";

Maaak

#12 Post by Maaak »

und nur mal aus Interesse: wozu benötigst Du eigentlich die conn_id?

es müsste eigentlich reichen:

<?
mysql_connect("localhost","test","test");
$eintrag = nl2br($tfc);
mysql("gaestebuch","insert into daten (name, email, eintrag)
VALUES ('$tfa','$tfb','$eintrag')");
?>

flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

#13 Post by flowjo »

wenn ich die conn_id weglasse wird mir nach abschicken der daten nicht mehr die möglichkeit "zurück zum Gaestebuch" angezeigt.

ganz schön knifflig...

Maaak

#14 Post by Maaak »

Und hat das weglassen der if-Abfrage was gebracht?

flowjo
Posts: 11
Joined: 14. Feb 2005 8:58
Location: Darmstadt

#15 Post by flowjo »

guten morgen marc!

das weglassen der if-Abfrage hat quasi nix gebracht -leider.

flowjo

Post Reply