An einem Punkt komme ich nicht mehr weiter :-(

Lillymaus

Mitglied
Hallo euch allen :-)

ich komme an einer Stelle gerade mal nicht weiter. Ich mach gerade ein Forum. Hier mal das was ich gerade habe:

newthread.php

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <title>Unbenanntes Dokument</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <style type="text/css">
 <!--
 .Stil1 {
 	color: #FF0000;
 	font-style: italic;
 	font-weight: bold;
 }
 -->
 </style>
 </head>
 
 <body>
  <table width="50%"  border="0">
    <tr>
 	 <td bgcolor="#CCCCCC"><span class="Stil1">Eintrag ins Forum </span></td>
    </tr>
  </table>
 <form name="form1" method="post" action="newthread_script.php">
   <table width="57%"  border="0">
 	<tr>
 	  <td width="33%" height="28"><strong>Name</strong></td>
 	  <td width="67%"><input name="name" type="text" id="name"></td>
 	</tr>
 	<tr>
 	  <td height="29"><strong> Topic</strong></td>
 	  <td><input name="topic" type="text" id="topic"></td>
 	</tr>
 	 <tr>
 	   <td height="27"><strong> Nachricht:</strong></td>
 	   <td><textarea name="nachricht" cols="70" rows="15" id="nachricht"></textarea></td>
 	 </tr>
 	 <tr>
 	   <td height="67" colspan="2"><input name="eintragen" type="submit" id="eintragen" value="&gt;&gt; eintragen"></td>
 	 </tr>
    </table>
  </form>
 <p>&nbsp;</p>
  <p>&nbsp; </p>
 </body>
 </html>


newthread_script.php

PHP:
<?php
 //Konfigurations Datei einbinden
 include "../data/config.php";
 
 //Variablen auf andere Deklarieren (ist einfacher zu schreiben) 
 $nachricht = $_POST["nachricht"]; 
 $topic = $_POST["topic"]; 
 $name = $_POST["name"]; 
 $fid = $_POST["fid"]; 
 $tid = $_POST["tid"]; 
 
 //einen neuen Thread schreiben müssen wir nicht mehr, denn 
 //er besteht ja schon ;) 
 //Die ID des Threads müssen wir auch nicht mehr provisorisch 
 //holen, da sie uns komfortabel vom Formular geliefert wird 
 //so nun schreiben wir den eigentlichen Beitrag in die DB 
   mysql_query("insert into answers set text='$text', topic='$topic', user='$name', fid='$fid', tid='$tid', created=now()"); 
 
 //Weiterleitung zu der Auflistung der Antworten im 
 //bereits ausgewählten Forum und Thread 
   header("Location: showanswers.php?fid=".$fid."&tid=".$tid); 
 ?>

showanswers.php

PHP:
<?php
 //Konfigurations Datei einbinden
 include "../data/config.php";
 
 //Lesen aus DB 
 $res =   mysql_query("select * from answers where fid=".$_GET["fid"]." AND tid=".$_GET["tid"]); 
 
 //ausgeben 
 while($row =   mysql_fetch_array($res)) { 
 $text =   nl2br($row["text"]; //Zeilenumbrüche nicht vergessen ;) 
 echo "<p>"; 
 echo "Titel des Beitrags: ".$row["topic"]."<br>"; 
 echo "Name des Autors: ".$row["user"]."<br>"; 
 echo "Nachricht: ".$text."<br>"; 
 echo "</p>"; 
 ?>

showforen.php

PHP:
<?php
 //Konfigurations Datei einbinden
 include "../data/config.php";
 
   
   //Herauslesen der Foren
   $res =   mysql_query("select * from foren") OR die ("Fehler beim lesen der Daten");
   
   //Ausgeben der Foren mit Hyperlink
   while($row = mysql_fetch_array($res)) {
 	  echo "<a href=\"showthreads.php?fid=".$row["id"]."\">";
 	  echo $row["name"]."</a><br>";
   }
   ?>

showthreads.php

PHP:
<?php
 //Konfigurations Datei einbinden
 include "../data/config.php";
 
 //Herauslesen der Threads, die in dem Forum stehen 
 $res =   mysql_query("select * from threads where fid=".$_GET["fid"]); 
 
 //Ausgeben der Threads mit Hyperlink auf showanswers.php 
 //Die jetzige Ausgabe der Tabelle "threads" liefert jetzt 
 //eine neue Variable mit, die wir auch in den Link 
 //setzen müssen 
 while($row =   mysql_fetch_array($res)) { 
 	echo "<a href=\"showanswers.php?fid=".$row["fid"]."&tid=".$row["id"]."\">"; 
 	echo $row["topic"]."</a><br>"; 
 } 
 ?>

Hmm wenn ich jetzt die Datei newthread.php aufrufe dann kommt folgende Meldung:

Parse error: parse error in /srv/www/htdocs/web123/html/german/forum/showanswers.php on line 10

Was mach ich denn da blos falsch?
 
Gib das mal in der showanswers.php ganz oben ein:
error_reporting(E_NONE);

( <?php
error_reporting(E_NONE);
//Konfigurations Datei einbinden)
 
PHP:
while($row =   mysql_fetch_array($res)) {
$text =   nl2br($row["text"]; //Zeilenumbrüche nicht vergessen ;)  <-- ZEILE 10 ?
echo "<p>"; 
echo "Titel des Beitrags: ".$row["topic"]."<br>"; 
echo "Name des Autors: ".$row["user"]."<br>"; 
echo "Nachricht: ".$text."<br>"; 
echo "</p>"; 

// } fehlt
du schließt deine Schleife nicht: du musst noch ein } machen ;) und wie Datic schon sagte: in Z. 10 fehlt ne ")"

mfg
Verion
 
Hallo,

Ok das war meine Schuld jetzt geht es soweit aber da kommen schon wieder nenue Problem. Ich versuch es aber erst mal selber wenn es nicht geht dann melde ich mich wieder :-)

Gruß Lilly
 
Guten morgen euch allen,

so nun habe ich die halbe Nacht an dem Forum gearbeitet aber ich komme nicht weiter. Also hier bekommt Ihr mal die Übersicht, wie das Forum später mal mit Lyout aussehen soll:

http://de.7nightlive.com/community/intern/forum1.php

So was ich als erstes nicht so ganz kapiere warum er mit dem Skript keinen Text in der Datenbank einträget:

PHP:
<?php
 //Konfigurations Datei einbinden
 error_reporting(E_NONE);
 include "../data/config.php";
 
 //Variablen auf andere Deklarieren (ist einfacher zu schreiben) 
 $nachricht = $_POST["nachricht"]; 
 $topic = $_POST["topic"]; 
 $name = $_POST["name"]; 
 $fid = $_POST["fid"]; 
 
 //schreiben in DB (nur Thread an sich) 
   mysql_query("insert into threads set fid='$fid', topic='$topic', created=now()")OR die(mysql_error()); 
 
 //nun brauchen wir noch die neue ID des Threads, um sie in answers 
 // einzutragen 
 $res =   mysql_query("select max(id) AS max from threads"); 
 $row =   mysql_fetch_array($res); 
 $thread_id = $row["max"]; 
 
 //so nun schreiben wir den eigentlichen Beitrag in die DB 
   mysql_query("insert into answers set text='$text', topic='$topic', user='$name', fid='$fid', tid='$thread_id', created=now()")OR die(mysql_error()); 
 
 //Weiterleitung zu der Auflistung der Threads im 
 //bereits ausgewählten Forum 
   header("Location: showthreads.php?fid=".$fid); 
 ?>

Dann wenn man z.B. im Forum auf den ersten Link klickt dann kommt man wieder zu einer Seite, da sollte dann ein Link kommen, dass man etwas eintragen kann das ist dann dieses Skript:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <title>Unbenanntes Dokument</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <style type="text/css">
 <!--
 .Stil1 {
 	color: #FF0000;
 	font-style: italic;
 	font-weight: bold;
 }
 -->
 </style>
 </head>
 
 <body>
  <table width="50%"  border="0">
    <tr>
 	 <td bgcolor="#CCCCCC"><span class="Stil1">Eintrag ins Forum </span></td>
    </tr>
  </table>
 <form name="form1" method="post" action="newthread_script.php">
   <table width="57%"  border="0">
 	<tr>
 	  <td width="33%" height="28"><strong>Name</strong></td>
 	  <td width="67%"><input name="name" type="text" id="name"></td>
 	</tr>
 	<tr>
 	  <td height="29"><strong> Topic</strong></td>
 	  <td><input name="topic" type="text" id="topic"></td>
 	</tr>
 	 <tr>
 	   <td height="27"><strong> Nachricht:</strong></td>
 	   <td><textarea name="nachricht" cols="70" rows="15" id="nachricht"></textarea></td>
 	 </tr>
 	 <tr>
 	   <td height="67" colspan="2"><input name="eintragen" type="submit" id="eintragen" value="&gt;&gt; eintragen"></td>
 	 </tr>
    </table>
  </form>
 <p>&nbsp;</p>
  <p>&nbsp; </p>
 </body>
 </html>

Dann sollte das in der richtigen Rubrik drin sein und dann sollte auch der Thread angezeigt werden nur das macht er leider nicht. Es gibt aber dann ein weiteres Skript in dem ich dann sage hey es gibt schon Thread schreib mir darunter eine Antwort, der sieht dann so aus:

PHP:
<?php
 //Konfigurations Datei einbinden
 include "../data/config.php";
 //Variablen auf andere Deklarieren (ist einfacher zu schreiben) 
 $nachricht = $_POST["nachricht"]; 
 $topic = $_POST["topic"]; 
 $name = $_POST["name"]; 
 $fid = $_POST["fid"]; 
 $tid = $_POST["tid"]; 
 
 //einen neuen Thread schreiben müssen wir nicht mehr, denn 
 //er besteht ja schon ;) 
 //Die ID des Threads müssen wir auch nicht mehr provisorisch 
 //holen, da sie uns komfortabel vom Formular geliefert wird 
 //so nun schreiben wir den eigentlichen Beitrag in die DB 
   mysql_query("insert into answers set text='$text', topic='$topic', user='$name', fid='$fid', tid='$tid', created=now()"); 
 
 //Weiterleitung zu der Auflistung der Antworten im 
 //bereits ausgewählten Forum und Thread 
   header("Location: showanswers.php?fid=".$fid."&tid=".$tid); 
 ?>


Dann gibts noch zwei weitere Skripte um das ganze Anzeigen zu lassen, die sehen so aus:

PHP:
<?php
 //Konfigurations Datei einbinden
 
 include "../data/config.php";
 
 //Herauslesen der Threads, die in dem Forum stehen 
 $sql = "select * from threads where fid = '".$_GET["fid"]."'";
 //echo htmlentities($sql) . "<br>";
 $res =   mysql_query($sql)OR die(mysql_error()); 
 
 //Ausgeben der Threads mit Hyperlink auf showanswers.php 
 //Die jetzige Ausgabe der Tabelle "threads" liefert jetzt 
 //eine neue Variable mit, die wir auch in den Link 
 //setzen müssen 
 while($row = mysql_fetch_array($res)) { 
 	echo "<a href=\"showanswers.php?fid=".$row["fid"]."&tid=".$row["id"]."\">"; 
 	echo $row["topic"]."</a><br>"; 
 } 
 ?>

UND:

PHP:
<?php
 //Konfigurations Datei einbinden
 include "../data/config.php";
 
   
   //Herauslesen der Foren
   $res =   mysql_query("select * from foren") OR die ("Fehler beim lesen der Daten");
   
   //Ausgeben der Foren mit Hyperlink
   while($row = mysql_fetch_array($res)) {
 	  echo "<a href=\"showthreads.php?fid=".$row["id"]."\">";
 	  echo $row["name"]."</a><br>";
   }
   ?>

So kann mir jetzt mal bitte helfen, dass ich das alles in eine Richtige Reihenfolge bekomme, dass ich das dann auch nutzten kann ich komme wirklich nicht mehr weiter.

Liebe Grüße und einen schönen Sonntag,
Lilly
 
PHP:
mysql_query("insert into threads set fid='$fid', topic='$topic', created=now()")OR die(mysql_error());

Hab ich in der Form noch nie gesehen, probier es mal so:

PHP:
mysql_query("INSERT INTO threads(fid,topic,created) VALUES('$fid','$topic','NOW()')");
 
@fh_study: Geht beides. Letzteres ist dann Sinnvoll wenn man mehrere Datensätze auf einmal einfügen will (unter phpMyAdmin beim Export auch als sog. erweiterte INSERT-Statements bekannt) und lässt sich für mich persönlich angenehmer schreiben.
 
oO Lilliymaus wie wär wenn du nich einfach ein phpBB2 nimmst anstatt versuchst irgendwie einen forumsbaukasten zu installieren?
 
Zurück