PHP Kontaktformular funktioniert mit der neusten PHP Version nicht mehr?

Gladiator6

Erfahrenes Mitglied
Hallo

Ich habe vor einiger Zeit einmal ein Kontaktformular mit PHP gemacht. Das ist auf einer Website erfolgreich im Einsatz. Nun wollte ich dass selbe Formular auf einer anderen Website (anderer Webserver) einsetzen (leicht modifiiert), und stelle fest, dass das Script nicht richtig funktioniert.

Wäre nett wenn jemand kurz über den Code schauen könnte, und vielleicht grad sieht, warum das mit der neueren PHP Version nicht mehr funktioniert?

HTML:
<form name="feedback" action="feedback.php" method="post">
    <table width="250" border="0">
        <tr>
            <td width="50">Vorname:</td>
            <td><input type="text" name="vorname" value="<?php echo $_POST['vorname']; ?>" <?php if( strlen($vorname)<3 and isset($absenden)) { echo "class='form_text'"; }?> ></td>
        </tr>

        <tr>
            <td>Nachname:</td>
            <td><input type="text" name="nachname" value="<?php echo $_POST['nachname']; ?>" <?php if( strlen($nachname)<4 and isset($absenden)) { echo "class='form_text'"; }?>></td>
        </tr>

        <tr>
            <td>Email:</td>
            <td><input type="text" name="email" value="<?php echo $_POST['email']; ?>" <?php if( strlen($email)<10 and isset($absenden)) { echo "class='form_text'"; }?> ></td>
        </tr>
    </table>   
Nachricht:<br><br>
    <textarea name="nachricht" cols="35" rows="5"></textarea>
    <br>
    <br>
    <input type="submit" class="submit" name="absenden" value="Absenden">
</form>

PHP:
<?php

if (isset($absenden))

{

        //variablen übergeben

        $vorname=$_POST["vorname"];
        $nachname=$_POST["nachname"];
        $email=$_POST["email"];
        $nachricht=$_POST["nachricht"];
        $ip=$REMOTE_ADDR;

        $webmaster="webmaster@domain.com";
        $betreff="Feedback";

        //Formular überprüfen

        if(strlen($vorname)<3 or strlen($nachname)<4 or strlen($email)<10)
            {
                echo "<br>Bitte alle Felder ausfüllen!";
            }

        else 
            {

                $nachricht_total="Vorname: $vorname \n Nachname: $nachname \n Email: $email \n Nachricht: $nachricht \n IP: $ip";

                //Email versenden
                mail($webmaster, $betreff, $nachricht_total, "From: formmailer@domain.com");
            
            //Formular variable löschen
            unset($absenden);
            unset($vorname);
            unset($nachname);
            unset($email);


            echo "<br>Vielen Dank für das Feedback";

            }
}
?>

Problem ist folgendes:

Die Eingaben werden nach dem absenden nicht gelöscht!
Mittels CSS sollten die unvollständig ausgefüllten Felder markiert werden. Es werden jedoch immer alle Felder markiert, auch wenn nur eines unvollständig ist!
 
Moin,

2 Sachen springen mir ins Auge:
Code:
if (isset($absenden))

das sollte
Code:
if (isset($_POST['absenden'))
heissen


und dann:
Code:
$ip=$REMOTE_ADDR;
...REMOTE_ADDR ist eine Server-Variable, also so:
Code:
$ip=$_SERVER['REMOTE_ADDR'];
 
Zurück