Wichtige Fragen für ein Forum
Wichtige Fragen für ein Forum
Hallo alle zusammen,
ich versuche gerade ein Forum mit PHP zu programmieren und stoße da immer auf Probleme.
Ich habe das Formular bei der Registrierung schon fertig. Das sieht zum Beispiel so aus:
...
Hier das Formular das an PHP gesendet wird..
<input type="text"... name="text1">...
...
...
<?php
echo $text1;
?>
Wenn ich die Seite lade, dann bekomme ich eine Fehlermeldung (Warnung), dass die Variable $text1 nicht existiert/definiert ist. Wenn ich aber auf den Submitbutton klicke, geht alles und es wird die Variable richtig ausgegeben.
Gibt es eine Möglichkeit, den PHP-Code nur dann auszuführen, wenn vorher das Formular gesendet wurde, also auf den Submit Button geklickt wurde? Oder wie kann ich Variablen erstellen, die nichts beonhalten. Also nicht 0 oder null, sondern nichts?
----
Das 2, Problem hat ebenfalls mit dem Forum zu tun.
Wenn ich auf ein Thema klicke, soll eine Seite x geöffnet werden und darin stehen dann die aus MySQL ausgelesenen Texte / Antworten der User.
D.h. das der Computer wissen muss, auf welches Thema ich geklickt habe, damit auch die richtigen Daten aus der Datenbank geladen werden. Kann man da irgendwie Parameter überweisen, wenn auf ein Link geklickt wurde.
Z.B.:
Thema1: <a href="antworten.php">"Wie findet ihr mein neues Forum?</a>
Antworten: 12
Thema2: <a href="antworten.php">Findet ihr es gut?</a>
Antworten: 4
Wenn auf das Thema 1 geklickt wurde, dann soll zwar die Seite antworten.php geladen werden, aber es sollen ja die Daten aus der Datenbank geladen werden, die wirklich zu diesem Thema gehören. Geht z.B., dass wenn auf Thema 1 geklickt wurde $i=1 und wenn auf Thema 2 geklickt wurde ist $i=2?
Sodass in der antworten.php Seite steht:
if($i==1)
...lade Datensätze für das 1. Thema und zeige sie an
else
if($i==2)
...lade Datensätze für das 2. Thema und zeige sie an
---
ds letzte Problem sieht so aus: Ich möchte ein Bereich machen, wo alle Besucher meines Forums aufgelistet sind. Das wäre ja kein Problem, aber wie weiß der Computer denn, wann wer geht. Auch hier ein Beispiel:
User x geht ins Forum. Wenn er sich einloggt wird in der MySQL Datenbank gespeichert, dass er online ist.
In der Liste auf der Startseite werden alle Leute angezeigt, die online sind. Wenn User x aber das Forum verlässt, muss ja wieder in der Datenbank gespeichert werden, dass er offline ist. Wie kann man so etwas umsetzten?
Ich würde mich wirklich freuen, wenn jemand mir helfen kann, denn ich sitze schon lange an diesen Problemen!
ich versuche gerade ein Forum mit PHP zu programmieren und stoße da immer auf Probleme.
Ich habe das Formular bei der Registrierung schon fertig. Das sieht zum Beispiel so aus:
...
Hier das Formular das an PHP gesendet wird..
<input type="text"... name="text1">...
...
...
<?php
echo $text1;
?>
Wenn ich die Seite lade, dann bekomme ich eine Fehlermeldung (Warnung), dass die Variable $text1 nicht existiert/definiert ist. Wenn ich aber auf den Submitbutton klicke, geht alles und es wird die Variable richtig ausgegeben.
Gibt es eine Möglichkeit, den PHP-Code nur dann auszuführen, wenn vorher das Formular gesendet wurde, also auf den Submit Button geklickt wurde? Oder wie kann ich Variablen erstellen, die nichts beonhalten. Also nicht 0 oder null, sondern nichts?
----
Das 2, Problem hat ebenfalls mit dem Forum zu tun.
Wenn ich auf ein Thema klicke, soll eine Seite x geöffnet werden und darin stehen dann die aus MySQL ausgelesenen Texte / Antworten der User.
D.h. das der Computer wissen muss, auf welches Thema ich geklickt habe, damit auch die richtigen Daten aus der Datenbank geladen werden. Kann man da irgendwie Parameter überweisen, wenn auf ein Link geklickt wurde.
Z.B.:
Thema1: <a href="antworten.php">"Wie findet ihr mein neues Forum?</a>
Antworten: 12
Thema2: <a href="antworten.php">Findet ihr es gut?</a>
Antworten: 4
Wenn auf das Thema 1 geklickt wurde, dann soll zwar die Seite antworten.php geladen werden, aber es sollen ja die Daten aus der Datenbank geladen werden, die wirklich zu diesem Thema gehören. Geht z.B., dass wenn auf Thema 1 geklickt wurde $i=1 und wenn auf Thema 2 geklickt wurde ist $i=2?
Sodass in der antworten.php Seite steht:
if($i==1)
...lade Datensätze für das 1. Thema und zeige sie an
else
if($i==2)
...lade Datensätze für das 2. Thema und zeige sie an
---
ds letzte Problem sieht so aus: Ich möchte ein Bereich machen, wo alle Besucher meines Forums aufgelistet sind. Das wäre ja kein Problem, aber wie weiß der Computer denn, wann wer geht. Auch hier ein Beispiel:
User x geht ins Forum. Wenn er sich einloggt wird in der MySQL Datenbank gespeichert, dass er online ist.
In der Liste auf der Startseite werden alle Leute angezeigt, die online sind. Wenn User x aber das Forum verlässt, muss ja wieder in der Datenbank gespeichert werden, dass er offline ist. Wie kann man so etwas umsetzten?
Ich würde mich wirklich freuen, wenn jemand mir helfen kann, denn ich sitze schon lange an diesen Problemen!
Zum ersten: also die übergebenen Variablen bitte unbedingt aus den superglobalen Variablen wie z.B. $_GET auslesen - sonst könnte es Probleme geben (siehe http://de3.php.net/globals )
Prüfen kannst du dann z.B. mit
Zum zweiten: Versuch's mal mitRest wie oben...
Ansonsten: KB:php - da sind auch Tutorials dabei
Gruß, Philipp
Prüfen kannst du dann z.B. mit
Code: Alles auswählen
if (!empty($_POST['text']))
Code: Alles auswählen
<a href="antworten.php?i=2">
Ansonsten: KB:php - da sind auch Tutorials dabei
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
-
- Mitglied
- Beiträge: 32
- Registriert: 10.08.2003 13:34
- Kontaktdaten:
Um korrekt Daten vom Fromular zu übernehmen verwendet man $_POST und $_GET. SO bestimmst du die Methode:
<formular action="(hierher nach dem drücken) method="get" name="yeah">
$_GET("yeah")
<formular action="(hierher nach dem drücken) method="post" name="yeah">
$_POST("yeah")
Das sind Grundlagen die man bei Selfphp und php.net finden tut.
Dein 2. Problem ist simpel.
Du musst in der Datenbank gucken welche topic_id verwendet wurde
Bei mir ist es 9.
Grundlagen aus der Datenbank holen
Texte und dergleichen auslesen
Hier wird der Text konvertiert und angepasst.
Ausgeben musst nur noch selber
3.Problem:
Es gibt funktionale Tags wie ONCHANGE. Soviel ich weiss, gibt es einen für CLOSE oder so. Damit man darauf reagieren kann, wann der User geht.
Wenn er schliesst, musst du halt mittels Java ihm umleiten und dementsprechend die Datenbank anpassen.
P.S: Wieso nimmst du nicht von anfang an PHPBB her ?
Mir fällt gerade ein, dass du ja ein eigenes Forum schreiben tust...
Ich hoffe dir trotzdem helfen zu können.
<formular action="(hierher nach dem drücken) method="get" name="yeah">
$_GET("yeah")
<formular action="(hierher nach dem drücken) method="post" name="yeah">
$_POST("yeah")
Das sind Grundlagen die man bei Selfphp und php.net finden tut.
Dein 2. Problem ist simpel.
Du musst in der Datenbank gucken welche topic_id verwendet wurde
Bei mir ist es 9.
Code: Alles auswählen
$sql = "SELECT post_id, post_time, poster_id, forum_id, topic_id FROM SNM_phpbb_posts WHERE topic_id=9 ORDER BY post_time DESC";
$newsposts = $conn->Execute($sql);
Code: Alles auswählen
$sql = "SELECT bbcode_uid, post_id, post_subject, post_text FROM SNM_phpbb_posts_text WHERE post_id=".$newsposts->fields["post_id"]."";
$newsposttext = $conn->Execute($sql);
$sql = "SELECT username, user_id FROM SNM_phpbb_users WHERE user_id =".$newsposts->fields["poster_id"]."";
$poster = $conn->Execute($sql);
Code: Alles auswählen
$newstext = bbencode_second_pass($newstext, $newsposttext->fields["bbcode_uid"]);
$newstext = smilies_pass2($newstext);
$newstext = make_clickable($newstext);
$newstext = str_replace("\n","<br />",$newstext);
Ausgeben musst nur noch selber

3.Problem:
Es gibt funktionale Tags wie ONCHANGE. Soviel ich weiss, gibt es einen für CLOSE oder so. Damit man darauf reagieren kann, wann der User geht.
Wenn er schliesst, musst du halt mittels Java ihm umleiten und dementsprechend die Datenbank anpassen.
P.S: Wieso nimmst du nicht von anfang an PHPBB her ?
Mir fällt gerade ein, dass du ja ein eigenes Forum schreiben tust...
Ich hoffe dir trotzdem helfen zu können.
Mit einem Computer löst man Probleme, die man ohne ihn, nicht hätte. 

Füge einfach einen neuen Datensatz ein...
http://www.php4-forum.de/was_db.htm
http://www.php4-forum.de/was_db.htm
ja, das war mir auch klar. Aber das hat sich schon erledigt. Ich hab einfach mal in den Quelltext von phpbb geaschaut. Hier werden die Postings alle in eine Tabelle gespeichert, egal aus welchen Thread. ZUr Kennung existiert dann nur eine andere ID. So werde ich das auch machen, ich meinte nur, ob es auch anders geht, für jedes Thema eine neue Tabelle zu erstellen. Aber das hat sich ja wie gesagt schon erledigt.Pyramide hat geschrieben:Füge einfach einen neuen Datensatz ein...
http://www.php4-forum.de/was_db.htm