Fehler seit neuer PHP-Version
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auswertung
beschreibung
code
datenbank
eintrag
ereignis
folgen
formular
gleiche dokument
klappen
login
minute
nachricht
ort
post
schlauch
stattfinden
stunde
version
zweite formular
-
Hallo,
seit dem Update der PHP-Version auf 5.4.15 scheint bei mir irgendetwas nicht mehr zu stimmen bei der Formularauswertung. Auf meinem Pc, auf dem ich Apache und PHP 5.4.6 läuft, funktioniert das Skript einwandfrei, nur hier scheint es gar nicht zu funktionieren und ich stehe gerade auf dem Schlauch, woran das liegt.
Hier das wesentliche Skript:
<?php session_start(); $login = $_SESSION['login']; $nachricht = mysql_real_escape_string($_POST["nachricht"]); $ereignis = mysql_real_escape_string($_POST["ereignis"]); $dattag = mysql_real_escape_string($_POST["dattag"]); $datmon = mysql_real_escape_string($_POST["datmon"]); $datjahr = mysql_real_escape_string($_POST["datjahr"]); $stunde = mysql_real_escape_string($_POST["stunde"]); $minute = mysql_real_escape_string($_POST["minute"]); $ort = mysql_real_escape_string($_POST["ort"]); $beschreibung = mysql_real_escape_string($_POST["beschreibung"]); htmlspecialchars ($nachricht, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); htmlspecialchars ($ereignis, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); htmlspecialchars ($ort, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); htmlspecialchars ($beschreibung, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); $timestampereig = mktime($stunde, $minute, 0, $datmon, $dattag, $datjahr); if(isset($login)) { if(empty($nachricht) AND empty($ereignis)) { /* Hier zwei Formulare, welche die Eingabewerte an das gleiche Dokument via POST übergeben */ } if(isset($nachricht) AND !empty($nachricht)) { /* Wenn man das erste Formular abgeschickt hat, "sollte" ein Eintrag in die Datenbank folgen */ } if(!empty($ereignis) AND !empty($dattag) AND !empty($datmon) AND !empty($datjahr) AND !empty($ort) AND !empty($beschreibung)) { /* Und hier die Auwertung für das zweite Formular */ } } else { echo "<p><b>Bitte logge dich ein!</b></p>"; } ?>
Woran liegt es, dass es hier nicht funktioniert und bei mir schon? Wie kann ich es auch hier zu laufen bringen?
Edit:
Was vlt. noch wichtig wäre: Die Variablen (also $ereignis, $nachricht) usw. werden als leer erkannt. Deswegen kommt immer bloß, selbst nach absenden des Formulars wieder das Formular an sich, obwohl dann eigendlich die Auswertung stattfinden sollte. Aber die Werte sind wirklich leer und somit ist noch nicht einmal eine Auswertung möglich.
Beitrag zuletzt geändert: 17.5.2013 12:56:20 von karate-training -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Würde mich wundern, wenn es unter anderen PHP-Versionen funktioniert, da du htmlspecialchars falsch anwendest. So sollte es klappen:
<?php session_start(); function html($str) { return htmlspecialchars($str, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); } $login = $_SESSION['login']; $nachricht = html(mysql_real_escape_string($_POST['nachricht'])); $ereignis = html(mysql_real_escape_string($_POST['ereignis'])); $dattag = mysql_real_escape_string($_POST['dattag']); $datmon = mysql_real_escape_string($_POST['datmon']); $datjahr = mysql_real_escape_string($_POST['datjahr']); $stunde = mysql_real_escape_string($_POST['stunde']); $minute = mysql_real_escape_string($_POST['minute']); $ort = html(mysql_real_escape_string($_POST['ort'])); $beschreibung = html(mysql_real_escape_string($_POST['beschreibung'])); $timestampereig = mktime($stunde, $minute, 0, $datmon, $dattag, $datjahr); if (isset($login)) { if (empty($nachricht) AND empty($ereignis)) { /* Hier zwei Formulare, welche die Eingabewerte an das gleiche Dokument via POST übergeben */ } if (isset($nachricht) AND !empty($nachricht)) { /* Wenn man das erste Formular abgeschickt hat, 'sollte' ein Eintrag in die Datenbank folgen */ } if (!empty($ereignis) AND !empty($dattag) AND !empty($datmon) AND !empty($datjahr) AND !empty($ort) AND !empty($beschreibung)) { /* Und hier die Auwertung für das zweite Formular */ } } else { echo '<p><b>Bitte logge dich ein!</b></p>'; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage