Projekt eigenes Forum - Probleme!
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
argument
autor
check
code
fehlermeldung
forum
header
manual
nachricht
not
output
problem
re
server
set
syntax
text
url
versammlung
versuchen
-
So, ich versuche mit-hilfe diesem Tutorials ein ref="/tag/forum">Forum zu Programmieren:
http://www.php-resource.de/tutorials/tutorial,35,Wie-schreibt-man-ein-Forum-mit-PHP-und-Mysql,1.htm
Doch ich habe Probleme... (Kein Wunder bei einem Tutorial, dass von 2003 stammt! (Und dazu bin ich noch PHP-Neuling) )
1. Problem: "showthreads.php":
Fehlermeldung: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in (...) showthreads.php on line 4
Code:
<?php include ("connect.inc.php"); $res = mysql_query("select * from threads where fid=".$_GET["fid"]); while($row = mysql_fetch_array($res)) { echo "<a href=\"showanswers.php?fid=".$row["fid"]."&tid=".$row["id"]."\">"; echo $row["topic"]."</a><br>"; } ?>
2. Problem: "showanswers.php":
Fehlermeldung: Parse error: syntax error, unexpected ';' in (...) showanswers.php on line 5
Code:
<?php include ("connect.inc.php"); $res = mysql_query("select * from answers where fid=".$_GET["fid"]." AND tid=".$_GET["tid"]); while($row = mysql_fetch_array($res)) { $text = nl2br($row["text"]; echo "<p>"; echo "Titel des Beitrags: ".$row["topic"]."<br>"; echo "Name des Autors: ".$row["user"]."<br>"; echo "Nachricht: ".$text."<br>"; echo "</p>"; ?>
3. Problem: "newthread_script.php":
Fehlermeldung: Warning: Cannot modify header information - headers already sent by (output started at (...) connect.inc.php:1) in (...) newthread_script.php on line 12
Code:
<?php include ("connect.inc.php"); $nachricht = $_POST["nachricht"]; $topic = $_POST["topic"]; $name = $_POST["name"]; $fid = $_POST["fid"]; mysql_query("insert into threads set fid='$fid', topic='$topic', created=now()"); $res = mysql_query("select max(id) AS max from threads"); $row = mysql_fetch_array($res); $thread_id = $row["max"]; mysql_query("insert into answers set text='$text', topic='$topic', user='$name', fid='$fid', tid='$thread_id', created=now()"); header("Location: showthreads.php?fid=".$fid); ?>
4. Problem: "newanswer_script.php":
Fehlermeldung: Warning: Cannot modify header information - headers already sent by (output started at (...) connect.inc.php:1) in (...) newanswer_script.php on line 9
Code:
<?php include ("connect.inc.php"); $nachricht = $_POST["nachricht"]; $topic = $_POST["topic"]; $name = $_POST["name"]; $fid = $_POST["fid"]; $tid = $_POST["tid"]; mysql_query("insert into answers set text='$text', topic='$topic', user='$name', fid='$fid', tid='$tid', created=now()"); header("Location: showanswers.php?fid=".$fid."&tid=".$tid); ?>
...ich hatte zwar noch ein Problem mit "showforen.php", aber ich habe es (anscheinend) gelöst!
Beitrag zuletzt geändert: 21.8.2010 20:34:16 von homepage-versammlung -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Schwöre, dass du diesen Code niemals auf einem öffentlich zugänglichen Webspace nutzen wirst, er ist unsicher.
So, zu den Problemen:
1. Es scheint als ob der Query fehlschlägt. Mache nach dem mysql_query bitte ein echo mysql_error();
2. nl2br($row["text"]; Da fehlt ne Klammer )
3. Vor header() darf keine Ausgabe erfolgen. Du gibst aber in der connect.inc.php scheinbar etwas aus. Hast du zufällig eine Leerzeile nach dem ?> in der connect.inc.php?
4. siehe 3 -
Zu:
1: Fehlermeldung: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
2: Ich habe es geändert, aber jetzt kommt diese Fehlermeldung: Parse error: syntax error, unexpected $end in (...) showanswers.php on line 11
<?php include ("connect.inc.php"); $res = mysql_query("select * from answers where fid=".$_GET["fid"]." AND tid=".$_GET["tid"]); while($row = mysql_fetch_array($res)) { $text = nl2br($row["text"]); echo "<p>"; echo "Titel des Beitrags: ".$row["topic"]."<br>"; echo "Name des Autors: ".$row["user"]."<br>"; echo "Nachricht: ".$text."<br>"; echo "</p>"; ?>
3 und 4: Hatte ein Leerzeichen vor dem ?>, und jetzt kommt diese Fehlermeldung: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in (...) showthreads.php on line 5 und diese: Parse error: syntax error, unexpected $end in (...) showanswers.php on line 11 - aber diese Fehlermeldungen haben ja nichts mehr mit 3 und 4 zu tun, oder? :-)
Beitrag zuletzt geändert: 21.8.2010 21:01:39 von homepage-versammlung -
homepage-versammlung schrieb:
Versuche das mal, vll. funktioniert es:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1$res = mysql_query("select * from answers where fid=".$_GET["fid"]." AND tid=".$_GET["tid"]);
homepage-versammlung schrieb:
Da hast du kein Schleifenende. Du machst die Schleife mit { auf, aber nie mehr mit } zu. Das muss auf jeden Fall noch rein.
Parse error: syntax error, unexpected $end in (...) showanswers.php on line 1 -
Wichtig: Hab das Projekt (das Forum) gelöscht, da es zu viel Probleme gab!
->
1. (Fehlermeldung) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND tid=' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in (...) showthreads.php on line 5
2. Geändet:
<?php include ("connect.inc.php"); $res = mysql_query("select * from answers where fid=".$_GET["fid"]." AND tid=".$_GET["tid"]); while($row = mysql_fetch_array($res)) { $text = nl2br($row["text"]); echo "<p>"; echo "Titel des Beitrags: ".$row["topic"]."<br>"; echo "Name des Autors: ".$row["user"]."<br>"; echo "Nachricht: ".$text."<br>"; echo "</p>"; } ?>
Aber jetzt kommt diese Fehlermeldung: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in (...) showanswers.php on line 4
PS: Kann mir vielleicht jemand ein anderes gutes Foren-Tutorial (das vielleicht auch sicherer ist) empfehlen?
Beitrag zuletzt geändert: 22.8.2010 18:02:35 von homepage-versammlung -
Problemlösung (eventuell):
$res = mysql_query("SELECT * FROM answers WHERE fid='".$_GET['fid']."' AND tid='".$_GET['tid']."'");
Setzt jedoch vorraus, dass die entsprechende Datenbnak bzw. die Tabelle und die dazugehörigen Spalten existieren. Außerdem müssen fid und tid im GET existieren. Ist einer der Werte leer, kommt es zu dem entsprechenden Fehler.
Tutorials für SICHERE eigene Forensoftwares gibt es nicht.
Beitrag zuletzt geändert: 22.8.2010 23:10:15 von fabo -
Und am besten den Query mit mysql_real_escape_string(); absichern gegen SQL-Injeciton.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage