Guten Abend,
ich will euch kurz erläutern, wie mein erster PHP Versuch aufgebaut ist und was ich damit erreichen will.
Erläuterung des Projekts:
- auf der Einstiegsseite sollen "User-Angebote" angezeigt werden
- Registrierungsseite für neue "User", damit sie ebenfalls Angebote verfassen können
- (Seite nach dem einloggen) hier bekommt der User sein aktuelles Angebot angezeigt (sofern er schon eines erstellt hat)
Ebenfalls ist hier ein Link, der den eingeloggten "User" zu einer "Textarea" führt, die sein "User-Angebot" enthält, zwecks Bearbeitung.
Das "Userangebot" des "Users" wird aus der Datenbank eingelesen.
Problemschilderung:
Nachdem der "User" sich eingeloggt hat, bekommt er sein aktuelles "User-Angebot" angezeigt. Funktioniert (mit Zeilenumbrüchen, keine n2lbr Dopplung, es ist so wie es sein soll):
Kommt der "User" zur Bearbeitungsübersicht (Textarea), wird sein Angebot allerdings mit
dargestellt:
Frage: Wie bekomme ich die
aus der Textarea?
Beim normalen Anzeigen funktioniert es ja.
Wenn ich mir zum Beispiel Signaturen in phpbb boards wie diesem hier anschaue, so werden dort Texte und Zeilenumbrüche ohne HTML Code in die Datenbank gespeichert, also z.B. ohne
oder sonstiges.
Ich häng nun schon seit heute früh dran und komm einfach nicht weiter.
Nächstes Problem:
Die Auflistung aller erstellten Angebote (uneingeloggt, von "Aussen" einsehbar).
Bekomme ich überhaupt nicht hin.
Der MySQL Befehl ist ja noch halbwegs klar...
Aber wie bekomme ich alle gefüllten Felder "userangebot" angezeigt?
Wie werden die Felder "userangebot" übersprungen, die von manchen "Usern" evtl. noch nicht ausgefüllt wurden?
Da es mein erstes PHP Projekt ist, sammel ich mir meine Code Teile aus verschiedenen Tutorials zusammen, Verbesserungsvorschläge, Hinweise auf Fehler oder unnütze Code-Teile sind mir sehr willkommen.
Ich wäre für jede Hilfe dankbar,
viele Grüsse
waschbaer
ich will euch kurz erläutern, wie mein erster PHP Versuch aufgebaut ist und was ich damit erreichen will.
Erläuterung des Projekts:
- auf der Einstiegsseite sollen "User-Angebote" angezeigt werden
- Registrierungsseite für neue "User", damit sie ebenfalls Angebote verfassen können
- (Seite nach dem einloggen) hier bekommt der User sein aktuelles Angebot angezeigt (sofern er schon eines erstellt hat)
Ebenfalls ist hier ein Link, der den eingeloggten "User" zu einer "Textarea" führt, die sein "User-Angebot" enthält, zwecks Bearbeitung.
Das "Userangebot" des "Users" wird aus der Datenbank eingelesen.
Problemschilderung:
Nachdem der "User" sich eingeloggt hat, bekommt er sein aktuelles "User-Angebot" angezeigt. Funktioniert (mit Zeilenumbrüchen, keine n2lbr Dopplung, es ist so wie es sein soll):
Dein aktuelles Angebot lautet:
10 mal PHP, 5 mal MySQL,
3 mal Javascript
1 mal C++
10 mal PHP, 5 mal MySQL,
3 mal Javascript
1 mal C++
<?
$nickname = $_SESSION['username'];
$strsatz=htmlentities($_POST['strsatz']);
$strsatz=preg_replace('#
#','' , $_POST['strsatz']);
$strsatz=nl2br(htmlentities($strsatz));
if ($action == ""){
$ergebnis = @mysql_query("SELECT userangebot FROM handel_user_table WHERE username='$nickname'");
while ($strsatz = @mysql_fetch_array($ergebnis)) {
echo "Dein aktuelles Angebot lautet:
$strsatz[userangebot]";
}
}
?>
$nickname = $_SESSION['username'];
$strsatz=htmlentities($_POST['strsatz']);
$strsatz=preg_replace('#
#','' , $_POST['strsatz']);
$strsatz=nl2br(htmlentities($strsatz));
if ($action == ""){
$ergebnis = @mysql_query("SELECT userangebot FROM handel_user_table WHERE username='$nickname'");
while ($strsatz = @mysql_fetch_array($ergebnis)) {
echo "Dein aktuelles Angebot lautet:
$strsatz[userangebot]";
}
}
?>
Kommt der "User" zur Bearbeitungsübersicht (Textarea), wird sein Angebot allerdings mit
dargestellt:
10 mal PHP, 5 mal MySQL,
3 mal Javascript
1 mal C++
3 mal Javascript
1 mal C++
<?
$strsatz=htmlentities($_POST['strsatz']);
$strsatz=preg_replace('#
#','' , $_POST['strsatz']);
$strsatz=nl2br(htmlentities($strsatz));
$struserangebot=htmlentities($_POST['struserangebot']);
$struserangebot=preg_replace('#
#','' , $_POST['struserangebot']);
$struserangebot=nl2br(htmlentities($struserangebot ));
if ($action == "edit"){
$ergebnis = @mysql_query("SELECT userangebot FROM handel_user_table WHERE username='$nickname'");
while ($strsatz = @mysql_fetch_array($ergebnis)) {
echo "<form action=?action=write method=post>";
echo "<table border=1 cellspacing=0 cellpadding=0>";
echo "<tr>";
echo " <td>Hier Angebot formulieren</td>";
echo " <td><textarea cols=50 rows=10 name=struserangebot>$strsatz[userangebot]</textarea></td>";
echo "</tr>";
echo "</table>";
echo "<input type=submit value='eintragen'></form>";
}
}
if ($action == "write"){
mysql_query( "UPDATE handel_user_table SET userangebot='$struserangebot' WHERE username='$nickname'" );
echo "
Deine Daten wurde übertragen";
echo "
";
}
?>
$strsatz=htmlentities($_POST['strsatz']);
$strsatz=preg_replace('#
#','' , $_POST['strsatz']);
$strsatz=nl2br(htmlentities($strsatz));
$struserangebot=htmlentities($_POST['struserangebot']);
$struserangebot=preg_replace('#
#','' , $_POST['struserangebot']);
$struserangebot=nl2br(htmlentities($struserangebot ));
if ($action == "edit"){
$ergebnis = @mysql_query("SELECT userangebot FROM handel_user_table WHERE username='$nickname'");
while ($strsatz = @mysql_fetch_array($ergebnis)) {
echo "<form action=?action=write method=post>";
echo "<table border=1 cellspacing=0 cellpadding=0>";
echo "<tr>";
echo " <td>Hier Angebot formulieren</td>";
echo " <td><textarea cols=50 rows=10 name=struserangebot>$strsatz[userangebot]</textarea></td>";
echo "</tr>";
echo "</table>";
echo "<input type=submit value='eintragen'></form>";
}
}
if ($action == "write"){
mysql_query( "UPDATE handel_user_table SET userangebot='$struserangebot' WHERE username='$nickname'" );
echo "
Deine Daten wurde übertragen";
echo "
";
}
?>
aus der Textarea?
Beim normalen Anzeigen funktioniert es ja.
Wenn ich mir zum Beispiel Signaturen in phpbb boards wie diesem hier anschaue, so werden dort Texte und Zeilenumbrüche ohne HTML Code in die Datenbank gespeichert, also z.B. ohne
oder sonstiges.
Ich häng nun schon seit heute früh dran und komm einfach nicht weiter.
Nächstes Problem:
Die Auflistung aller erstellten Angebote (uneingeloggt, von "Aussen" einsehbar).
Bekomme ich überhaupt nicht hin.
Der MySQL Befehl ist ja noch halbwegs klar...
@mysql_query("SELECT userangebot FROM handel_user_table");
Wie werden die Felder "userangebot" übersprungen, die von manchen "Usern" evtl. noch nicht ausgefüllt wurden?
Da es mein erstes PHP Projekt ist, sammel ich mir meine Code Teile aus verschiedenen Tutorials zusammen, Verbesserungsvorschläge, Hinweise auf Fehler oder unnütze Code-Teile sind mir sehr willkommen.
Ich wäre für jede Hilfe dankbar,
viele Grüsse
waschbaer
Kommentar