| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

22-05-2010, 22:18
|
|
Stefan_
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 9
|
|
Gästebuch + Mysql
Hi ich habe ein Problem mit meinen Gästebuch die eingegebenen Daten im Formular werden nicht an die Datenbank gesendet stattdessen kommt ein weißes Browserfenster.
guestbook.php
PHP-Code:
<?php error_reporting(E_ALL); ini_set('display_errors', 1);
include 'magic_quotes_remove_slashes.php';
$db = @new mysqli('localhost', 'username', 'kennwort', 'db'); if (mysqli_connect_errno()) { die('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); }
readfile('header.html'); if ('POST' == $_SERVER['REQUEST_METHOD']) {
} else {
}
readfile('footer.html');
} else { $sql = 'SELECT Datum, Autor, Inhalt FROM Guestbook ORDER BY Datum DESC'; $result = $db->query($sql); if (!$result) { die('Der Query konnte nicht ausgeführt werden: '.$db->error); } if ($result->num_rows) { while ($row = $result->fetch_assoc()) { echo '<div class="beitrag">'."\n"; echo ' <span class="autor">'.htmlspecialchars($row['Autor'])."</span>\n"; echo ' <span class="datum">'.$row['Datum']."</span>\n"; echo " <p>\n"; echo nl2br(htmlspecialchars(preg_replace('~\S{30}~', '\0 ', $row['Inhalt']))); echo " </p>\n"; echo "</div>\n"; } } else { echo '<p class="info">Es sind keine Gästebucheinträge vorhanden</p>'; } readfile('formular.html'); } if ('POST' == $_SERVER['REQUEST_METHOD']) { if (!isset($_POST['Autor'], $_POST['Inhalt'], $_POST['Antwort'], $_POST['formaction'])) { die ('Benutzen sie nur Formulare von der Homepage.'); } if (('' == $autor = trim($_POST['Autor'])) or ('' == $inhalt = trim($_POST['Inhalt'])) or ('' == $antwort = trim($_POST['Antwort']))) { die ('Bitte füllen sie das Formular vollständig aus.'); } if ('' != $antwort) { die ('Sie müssen die Frage richtig beantworten.'); } } else { $sql = 'INSERT INTO Guestbook(Autor, Datum, Inhalt) VALUES (?, NOW(), ?)'; $stmt = $db->prepare($sql); if (!$stmt) { die ('Es konnte kein SQL-Query vorbereitet werden: '.$db->error); } } else { $stmt->bind_param('ss', $autor, $inhalt); if (!$stmt->execute()) { die ('Query konnte nicht ausgeführt werden: '.$stmt->error); } echo '<p class="info">Gästebucheintrag hinzugefügt. <a href="guestbook.php">Zurück zum Gästebuch</a>.</p>'; } else { ?>
Geändert von Stefan_ (23-05-2010 um 11:22 Uhr)
|

23-05-2010, 00:46
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
ich kann deinen else-Blöcken leider nicht folgen, das müsste massig Parserfehler verursachen.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

23-05-2010, 00:58
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von AmicaNoctis
das müsste massig Parserfehler verursachen.
|
... oder eben die erwähnte „weiße Seite“, wenn display_errors auf off steht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

23-05-2010, 11:41
|
|
Stefan_
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 9
|
|
Ja du hast recht bei mir ist wirklich auf ausgestellt. Um die Funktion einzustellen muss ich ja nur die Tabelle Mysql aufrufen und dann bei Sql folgenden code eingeben.
Code:
display_errors = On
Aber dann kommt das der code fehlerhaft ist.
|

23-05-2010, 11:59
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Das hat mit SQL gar nichts zu tun, das ist eine Einstellung in der php.ini.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

23-05-2010, 13:40
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Oder man setzt das per PHP.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

23-05-2010, 14:03
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Kropff
Oder man setzt das per PHP.
|
Nein, das bringt gar nichts, darum geht es ja. Um das zu setzen, muss erstmal das Skript geparst werden und mit syntaktischen Fehlern wird das halt nichts.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

23-05-2010, 14:11
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
Zitat von AmicaNoctis
Nein, das bringt gar nichts, darum geht es ja. Um das zu setzen, muss erstmal das Skript geparst werden und mit syntaktischen Fehlern wird das halt nichts.
|
Und warum bekomme ich dann ein "Parse error: parse error in F:\xampp\htdocs\test.php on line 21"?
@TS
Schau dir mal die Zeilen genau an:
PHP-Code:
readfile('header.html'); if ('POST' == $_SERVER['REQUEST_METHOD']) {
} else {
}
readfile('footer.html');
} else {
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

23-05-2010, 14:22
|
|
Stefan_
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 9
|
|
Also ich habe jetzt mal bei mir die php.ini angepasst.
Und ich denke das ist schon der fehler den AmicaNoctis schon angesprochen hat mit den else Blöcken.
Ich werde dass mal grad umändern ich danke euch jetzt schon mal für eure tolle hilfe.
|

23-05-2010, 15:19
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von Kropff
Und warum bekomme ich dann ein "Parse error: parse error in F:\xampp\htdocs\test.php on line 21"?
|
Weil es in deiner php.ini aktiviert ist, so wie sich das gehört. Wenn es aber dort nicht aktiviert ist, kannst du es auch nicht per Skript aktivieren, weil dieses Skript erst verarbeitet werden kann, wenn es erfolgreich geparst wurde, was es in diesem Falle nicht wird.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

23-05-2010, 16:13
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
Zitat von AmicaNoctis
Weil es in deiner php.ini aktiviert ist, so wie sich das gehört. Wenn es aber dort nicht aktiviert ist, kannst du es auch nicht per Skript aktivieren, weil dieses Skript erst verarbeitet werden kann, wenn es erfolgreich geparst wurde, was es in diesem Falle nicht wird.
|
Moment, bei unseren Firmen-Servern ist ist das standardmäßig in der php.ini deaktiviert. Allerdings habe ich die Rechte, dass per PHP zu setzen. Oder rede ich jetzt Blödsinn? Muss mal unseren Admin am Dienstag fragen.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

23-05-2010, 16:50
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Kropff
Allerdings habe ich die Rechte, dass per PHP zu setzen.
|
Ja, das kannst du ja auch gerne machen - wenn's per Default aktiviert ist, kannst du's im Script abstellen, und vice versa.
Aber in Bezug auf fatale Fehler, die schon auftreten, bevor PHP dein Script überhaupt ausführt, hilft ein Setzen im Script natürlich nichts.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

23-05-2010, 16:58
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Zitat:
Zitat von wahsaga
und vice versa.
|
OffTopic: Bist wohl vorher hier gewesen. 
Zitat:
Zitat von wahsaga
Aber in Bezug auf fatale Fehler, die schon auftreten, bevor PHP dein Script überhaupt ausführt, hilft ein Setzen im Script natürlich nichts.
|
Ja, ich Torfkopp.  Steht sogar auf meiner Seite. Wenn man fast drei Jahre lang nichts mehr mit Serverkonfiguration zu tun hatte, dann entfleucht einem das einfach.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

23-05-2010, 18:39
|
|
Stefan_
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 9
|
|
Also bei mir taucht nur noch ein Fehler auf
Parse error: syntax error, unexpected $end in ..../guestbook.php on line 74
Ich habe aber die else blöcke gelöscht.
|

23-05-2010, 19:48
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Dann schau dir doch bitteschön mal das Ende deines Scriptes an:
Und bitte achte genau auf deine Bedingungen:
PHP-Code:
if ('POST' == $_SERVER['REQUEST_METHOD']) { ... } else { ... } else { ... }
Das kann nicht funktionieren. Und falls möglich, solltest du auch mal ein wenig selber mitdenken.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|