kostenloser Webspace werbefrei: lima-city


Fehler seit neuer PHP-Version

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    karate-training

    karate-training hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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>';
    }
    ?>
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!