Was ist hier falsch? PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
antwort
aufruf
bedingung
code
dank
date
datum
erfolgreich gespeichert code
fehler
fehlersuche
forum
kategorie
melde
post
sache
set
syntax
text
url
zeile
-
Hallo !
Ich habe hier mal wieder einen Codeausschnitt:
<?php }elseif(!isset($_POST['text']) || $_POST['text'] == ""){ echo '<p align="center"><font size="2">Gib bitte eine Antwort an.</font></p>'; }else{ die; $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); if($insert = mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'")) { echo '<p align="center">Deine Antwort wurde erfolgreich gespeichert !'; }else{ echo '<p align="center">Beim Speichern deines neuen Themas trat leider ein Fehler auf! Bitte versuche es erneut!</p>'; } ?>
Das ist der Fehler:
Parse error: syntax error, unexpected '}' in /home/webpages/lima-city/chathc/html/forum5555v55/thema_lesen.php on line 166
Die Zeile 166 ist hier im Auschnitt die Zeile 3 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich Denke Mal das ist der Richtig Code !
elseif(!isset($_POST['text']) || $_POST['text'] == ""){
Melde dich wenn es immer noch Flasch ist! -
privatecitypage schrieb:
Ich Denke Mal das ist der Richtig Code !
elseif(!isset($_POST['text']) || $_POST['text'] == ""){
Melde dich wenn es immer noch Flasch ist!
Jetzt kommt noch der Fehler:
Parse error: syntax error, unexpected T_ELSEIF in /home/webpages/lima-city/chathc/html/forum5555v55/thema_lesen.php on line 173
Das ist im Code oben die Zeile 10 -
Schreibe es doch gleich so:
elseif(!isset($_POST['text']) OR empty($_POST['text'])){
Und was soll dieser Schwasinn hier?
if($insert = mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'")) {
Er gibt dir hier eine Fehlermeldung aus, weil du nach einer mit IF nach einer Bedingung fragst, doch da trägst du ein, er soll einen DB eintrag machen.
Total Falsch!!!! -
newwarrior schrieb:
Schreibe es doch gleich so:
elseif(!isset($_POST['text']) OR empty($_POST['text'])){
Und was soll dieser Schwasinn hier?
if($insert = mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'")) {
Er gibt dir hier eine Fehlermeldung aus, weil du nach einer mit IF nach einer Bedingung fragst, doch da trägst du ein, er soll einen DB eintrag machen.
Total Falsch!!!!
Was soll ich denn statt dessen schreiben?
Mfg -
}elseif(!isset($_POST['text']) || $_POST['text'] == ""){ echo '<p align="center"><font size="2">Gib bitte eine Antwort an.</font></p>'; }else{ $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'") or die(mysql_error()); echo '<p align="center">Deine Antwort wurde erfolgreich gespeichert !';
achja, da war ein die; drinne nach der einen {.
Das war der Grund, warum das Script auch abgebrochen hat! -
newwarrior schrieb:
}elseif(!isset($_POST['text']) || $_POST['text'] == ""){ echo '<p align="center"><font size="2">Gib bitte eine Antwort an.</font></p>'; }else{ $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'") or die(mysql_error()); echo '<p align="center">Deine Antwort wurde erfolgreich gespeichert !';
achja, da war ein die; drinne nach der einen {.
Das war der Grund, warum das Script auch abgebrochen hat!
Mein Script sieht jetzt so aus:
<?php }elseif(!isset($_POST['text']) || $_POST['text'] == ""){ echo '<p align="center"><font size="2">Gib bitte eine Antwort an.</font></p>'; }else{ $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'") or die(mysql_error()); echo '<p align="center">Deine Antwort wurde erfolgreich gespeichert !'; ?>
und es kommt wieder ein Fehler
Parse error: syntax error, unexpected '}' in /home/webpages/lima-city/chathc/html/forum5555v55/thema_lesen.php on line 175
die 175 ist die Zeile
}elseif(!isset($_POST['text']) || $_POST['text'] == ""){
-
Ok,
warum schreibe ich dir eine Änderung, wenn du sie nicht einbaust?
Außerdem gibt mir mal 15 -20 Zeilen davor, damit ich mal auf fehlersuche gehen kann.
Danke -
newwarrior schrieb:
Ok,
warum schreibe ich dir eine Änderung, wenn du sie nicht einbaust?
Außerdem gibt mir mal 15 -20 Zeilen davor, damit ich mal auf fehlersuche gehen kann.
Danke
OK, hier
<!--Antwort Schreiben--> <br><br> <ul id="forum"> <form action="<?php $PHP_SELF ?>" method="post" name="form"> <table class="forum" style="border:0;"> <tr> <td>Antworten:<br></td> <td><textarea name="text" style='background:#ECFFD0; border: 1px solid #99CCFF; width:300px; height:90px;'></textarea></td> </tr> <tr> <td><br><input name="submit" value="Antworten" type="submit" style="background:#ECFFD0;"></td> </tr> </table> <br> <div style="background:#5F9AFA; border: 1px solid #99CCFF;"> <table class="forum" border="0"> <tr> <tr> <td><a href="javascript:seticon(' s01')"><img src="smili/s01.gif" border="0"></a></td> <td><a href="javascript:seticon(' s02')"><img src="smili/s02.gif" border="0"></a></td> <td><a href="javascript:seticon(' s03')"><img src="smili/s03.gif" border="0"></a></td> <td><a href="javascript:seticon(' s04')"><img src="smili/s04.gif" border="0"></a></td> <td><a href="javascript:seticon(' s05')"><img src="smili/s05.gif" border="0"></a></td> <td><a href="javascript:seticon(' s06')"><img src="smili/s06.gif" border="0"></a></td> <td><a href="javascript:seticon(' s07')"><img src="smili/s07.gif" border="0"></a></td> <td><a href="javascript:seticon(' s08')"><img src="smili/s08.gif" border="0"></a></td> <td><a href="javascript:seticon(' s32')"><img src="smili/s32.gif" border="0"></a></td> <td><a href="javascript:seticon(' s10')"><img src="smili/s10.gif" border="0"></a></td> </tr> <tr> <td><a href="javascript:seticon(' s11')"><img src="smili/s11.gif" border="0"></a></td> <td><a href="javascript:seticon(' s12')"><img src="smili/s12.gif" border="0"></a></td> <td><a href="javascript:seticon(' s13')"><img src="smili/s13.gif" border="0"></a></td> <td><a href="javascript:seticon(' s14')"><img src="smili/s14.gif" border="0"></a></td> <td><a href="javascript:seticon(' s15')"><img src="smili/s15.gif" border="0"></a></td> <td><a href="javascript:seticon(' s16')"><img src="smili/s16.gif" border="0"></a></td> <td><a href="javascript:seticon(' s17')"><img src="smili/s17.gif" border="0"></a></td> <td><a href="javascript:seticon(' s18')"><img src="smili/s18.gif" border="0"></a></td> <td><a href="javascript:seticon(' s19')"><img src="smili/s19.gif" border="0"></a></td> <td><a href="javascript:seticon(' s21')"><img src="smili/s21.gif" border="0"></a></td> </tr> <tr> <td><a href="javascript:seticon(' s23')"><img src="smili/s23.gif" border="0"></a></td> <td><a href="javascript:seticon(' s24')"><img src="smili/s24.gif" border="0"></a></td> <td><a href="javascript:seticon(' s26')"><img src="smili/s26.gif" border="0"></a></td> <td><a href="javascript:seticon(' s22')"><img src="smili/s22.gif" border="0"></a></td> <td><a href="javascript:seticon(' s28')"><img src="smili/s28.gif" border="0"></a></td> <td><a href="javascript:seticon(' s29')"><img src="smili/s29.gif" border="0"></a></td> <td><a href="javascript:seticon(' s30')"><img src="smili/s30.gif" border="0"></a></td> <td><a href="javascript:seticon(' s31')"><img src="smili/s31.gif" border="0"></a></td> <td><a href="javascript:seticon(' s09')"><img src="smili/s09.gif" border="0"></a></td> <td><a href="javascript:seticon(' s33')"><img src="smili/s33.gif" border="0"></a></td> </tr> </table> </div> </form> </ul> <?php }elseif(!isset($_POST['text']) || $_POST['text'] == ""){ echo '<p align="center"><font size="2">Gib bitte eine Antwort ein.</font></p>'; }else{ $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'") or die(mysql_error()); echo '<p align="center">Deine Antwort wurde erfolgreich gespeichert !'; } ?>
Sorry, wenn ich deine Korrektur nicht eingebaut habe, habe momentan ziemliches Chaos ;) -
if(!isset($_POST['text']) OR empty($_POST['text'])){
Dazu ist ja das isset da.
Zeig nochmal den Code, wie er jetzt aussieht? -
newwarrior schrieb:
if(!isset($_POST['text']) OR empty($_POST['text'])){
Dazu ist ja das isset da.
Zeig nochmal den Code, wie er jetzt aussieht?
Also, jetzt sieht er so aus:
<!--Antwort Schreiben--> <br><br> <ul id="forum"> <form action="<?php $PHP_SELF ?>" method="post" name="form"> <table class="forum" style="border:0;"> <tr> <td>Antworten:<br></td> <td><textarea name="text" style='background:#ECFFD0; border: 1px solid #99CCFF; width:300px; height:90px;'></textarea></td> </tr> <tr> <td><br><input name="submit" value="Antworten" type="submit" style="background:#ECFFD0;"></td> </tr> </table> <br> <div style="background:#5F9AFA; border: 1px solid #99CCFF;"> <table class="forum" border="0"> <tr> <tr> <td><a href="javascript:seticon(' s01')"><img src="smili/s01.gif" border="0"></a></td> <td><a href="javascript:seticon(' s02')"><img src="smili/s02.gif" border="0"></a></td> <td><a href="javascript:seticon(' s03')"><img src="smili/s03.gif" border="0"></a></td> <td><a href="javascript:seticon(' s04')"><img src="smili/s04.gif" border="0"></a></td> <td><a href="javascript:seticon(' s05')"><img src="smili/s05.gif" border="0"></a></td> <td><a href="javascript:seticon(' s06')"><img src="smili/s06.gif" border="0"></a></td> <td><a href="javascript:seticon(' s07')"><img src="smili/s07.gif" border="0"></a></td> <td><a href="javascript:seticon(' s08')"><img src="smili/s08.gif" border="0"></a></td> <td><a href="javascript:seticon(' s32')"><img src="smili/s32.gif" border="0"></a></td> <td><a href="javascript:seticon(' s10')"><img src="smili/s10.gif" border="0"></a></td> </tr> <tr> <td><a href="javascript:seticon(' s11')"><img src="smili/s11.gif" border="0"></a></td> <td><a href="javascript:seticon(' s12')"><img src="smili/s12.gif" border="0"></a></td> <td><a href="javascript:seticon(' s13')"><img src="smili/s13.gif" border="0"></a></td> <td><a href="javascript:seticon(' s14')"><img src="smili/s14.gif" border="0"></a></td> <td><a href="javascript:seticon(' s15')"><img src="smili/s15.gif" border="0"></a></td> <td><a href="javascript:seticon(' s16')"><img src="smili/s16.gif" border="0"></a></td> <td><a href="javascript:seticon(' s17')"><img src="smili/s17.gif" border="0"></a></td> <td><a href="javascript:seticon(' s18')"><img src="smili/s18.gif" border="0"></a></td> <td><a href="javascript:seticon(' s19')"><img src="smili/s19.gif" border="0"></a></td> <td><a href="javascript:seticon(' s21')"><img src="smili/s21.gif" border="0"></a></td> </tr> <tr> <td><a href="javascript:seticon(' s23')"><img src="smili/s23.gif" border="0"></a></td> <td><a href="javascript:seticon(' s24')"><img src="smili/s24.gif" border="0"></a></td> <td><a href="javascript:seticon(' s26')"><img src="smili/s26.gif" border="0"></a></td> <td><a href="javascript:seticon(' s22')"><img src="smili/s22.gif" border="0"></a></td> <td><a href="javascript:seticon(' s28')"><img src="smili/s28.gif" border="0"></a></td> <td><a href="javascript:seticon(' s29')"><img src="smili/s29.gif" border="0"></a></td> <td><a href="javascript:seticon(' s30')"><img src="smili/s30.gif" border="0"></a></td> <td><a href="javascript:seticon(' s31')"><img src="smili/s31.gif" border="0"></a></td> <td><a href="javascript:seticon(' s09')"><img src="smili/s09.gif" border="0"></a></td> <td><a href="javascript:seticon(' s33')"><img src="smili/s33.gif" border="0"></a></td> </tr> </table> </div> </form> </ul> <?php if(!isset($_POST['text']) || $_POST['text'] == ""){ echo '<p align="center"><font size="2">Gib bitte eine Antwort ein.</font></p>'; }else{ $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); mysql_query("INSERT INTO forum_antworten SET Autor = '$user', text = '".$_POST['text']."', datum = '$dateTime', Id = '".$_GET['Id']."'") or die(mysql_error()); echo '<p align="center"><font size="2">Deine Antwort wurde erfolgreich gespeichert !</font></p>'; } ?>
Aber dieses "Gib bitte eine Antwort ein." wird schon beim Aufruf der Seite angezeigt.
Wie mache ich es, wenn ich mehr als 1 Textfeld prüfen will?
Beitrag zuletzt geändert: 18.9.2009 21:37:16 von davy -
newwarrior schrieb:
EInfach mehr $_POST sachen mit IF prüfen!
Achja, und den Fehler ist, du musst erst prüfen ob $_POST['submit'] abgeschickt wurde!
Und wie prüfe ich das?
-------------------------
Ich hab probiert:
<?php if(!isset($_POST['kategorie']) || $_POST['kategorie'] == ""){ echo '<p align="center"><font size="2">Bitte wähle eine Kategorie aus.</font></p>'; if(!isset($_POST['titel']) || $_POST['titel'] == ""){ echo '<p align="center"><font size="2">Gib bitte einen Titel ein.</font></p>'; if(!isset($_POST['text']) || $_POST['text'] == ""){ echo '<p align="center"><font size="2">Gib bitte einen Text ein.</font></p>'; }else{ $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); mysql_query("INSERT INTO forum SET Gruender = '$user', text = '".$_POST["text"]."', titel = '".$_POST["titel"]."', kategorie = '".$_POST["kategorie"]."', datum = '$dateTime'") or die(mysql_error()); echo '<p align="center"><font size="2">Dein neues Thema wurde erfolgreich gespeichert !</font></p>'; } ?>
kommt aber ein Fehler. -
Jede geöffnete Klammer (auch geschweifte) muss geschlossen werden. Folgendes ist eine von 1000 Möglichkeiten, das zu implementieren:
$err = false; if(!isset($_POST['kategorie']) || $_POST['kategorie'] == "") { echo '<p align="center"><font size="2">Bitte wähle eine Kategorie aus.</font></p>'; $err = true; } if(!isset($_POST['titel']) || $_POST['titel'] == "") { echo '<p align="center"><font size="2">Gib bitte einen Titel ein.</font></p>'; $err = true; } if(!isset($_POST['text']) || $_POST['text'] == "") { echo '<p align="center"><font size="2">Gib bitte einen Text ein.</font></p>'; $err = true; } if (! $err) { $user = $_SESSION["user_nickname"]; $dateTime = date('H:i, j.n.Y'); mysql_query("INSERT INTO forum SET Gruender = '$user', text = '".$_POST["text"]."', titel = '".$_POST["titel"]."', kategorie = '".$_POST["kategorie"]."', datum = '$dateTime'") or die(mysql_error()); echo '<p align="center"><font size="2">Dein neues Thema wurde erfolgreich gespeichert !</font></p>'; }
Wobei das "or die" Konstrukt zwar gängige PHP-Lingo ist, aber nicht wirklich viel mit strukturierter Programmierung zu tun hat, siehe http://www.phpfreaks.com/blog/or-die-must-die. Sauberer wäre:
if (mysql_query("INSERT INTO forum SET Gruender = '$user', text = '".$_POST["text"]."', titel = '".$_POST["titel"]."', kategorie = '".$_POST["kategorie"]."', datum = '$dateTime'") ) echo '<p align="center"><font size="2">Dein neues Thema wurde erfolgreich gespeichert !</font></p>'; else echo '<p align="center"><font size="2">Dein neues Thema konnt leider nicht gespeichert werden.</font></p>';
-
Ok.
Ich habe es mal anderes gelernt.
Ich benutze für meine Sachen eh eine MySQL Klasse.
Daher trifft so ein Fall nicht auf mich zu! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage