kostenloser Webspace werbefrei: lima-city


Formular Pflichtfelder funktionieren nicht!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    muggel24

    muggel24 hat kostenlosen Webspace.

    Hallo,
    ich möchte in mein Kontaktformular Pflichtfelder einbauen, aber irgendetwas funktionier nicht!

    kontakt.php:
    <form name="kontakt" action="kontakt2.php" method="GET" enctype="text/html">
    
                Name:&nbsp;&nbsp;
                <input type="text" name="name" value="" size="20" maxlength="50" /><br>
    
                Betreff:
                <input type="text" name="grnd" value="" size="20" maxlength="30" /><br>
    
                E-Mail:
                <input type="text" name="mail" value="" size="20" maxlength="50" /><br>
    
                Nachricht:
                <br><textarea name="text" rows="8" cols="40"></textarea><br><br>
    
                <input type="submit" name="" value="Absenden" />


    kontakt2.php:
    <?php
    
                $Name  = $_GET['name'];
                $Grnd  = $_GET['grnd'];
                $Mail  = $_GET['mail'];
                $Text  = $_GET['text'];
    
                if (empty($Name) 
                {
                    echo "Name eingeben!"; 
                    exit;
                }
                if (empty($Grnd)
                {
                    echo "Betreff eingeben!"; 
                    exit;
                }
                if (empty($Mail)
                {
                    echo "E-Mail Adresse eingeben!"; 
                    exit;
                }
                if (empty($Text)
                {
                    echo "Nachricht eingeben!"; 
                    exit;
                }
                else()
                {
                <html>
                <h2>Nachrich erfolgreich versandt!</h2>
                </html>
                mail ("xy@web.de", $Grnd, $Text);
                }
            ?>


    Kann mir irgend jemand sagen, wo mein Fehler liegt?

    Beitrag zuletzt geändert: 16.10.2011 18:13:33 von muggel24
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. <?php
    
                $Name  = $_GET['name'];
                $Grnd  = $_GET['grnd'];
                $Mail  = $_GET['mail'];
                $Text  = $_GET['text'];
    
                if (empty($Name)) 
                {
                    echo "Name eingeben!"; 
                    exit;
                }
                if (empty($Grnd))
                {
                    echo "Betreff eingeben!"; 
                    exit;
                }
                if (empty($Mail))
                {
                    echo "E-Mail Adresse eingeben!"; 
                    exit;
                }
                if (empty($Text))
                {
                    echo "Nachricht eingeben!"; 
                    exit;
                }
                else()
                {
                <html>
                <h2>Nachrich erfolgreich versandt!</h2>
                </html>
                mail ("xy@web.de", $Grnd, $Text);
                }
            ?>


    Wäre Schön mit ner Fehlermeldung oder so. Ich glaub die klammern sind nicht richtig gesetz (oben jetzt schon berichtigt). Aber ich würde es sowieso anders machen so z.B:

    <?php
    
                $Name  = $_GET['name'];
                $Grnd  = $_GET['grnd'];
                $Mail  = $_GET['mail'];
                $Text  = $_GET['text'];
    
                if ($Name == "") 
                {
                    echo "Name eingeben!"; 
                    exit;
                }
                if ($Grnd == "")
                {
                    echo "Betreff eingeben!"; 
                    exit;
                }
                if ($Mail == "")
                {
                    echo "E-Mail Adresse eingeben!"; 
                    exit;
                }
                if ($Text == "")
                {
                    echo "Nachricht eingeben!"; 
                    exit;
                }
                else()
                {
                <html>
                <h2>Nachrich erfolgreich versandt!</h2>
                </html>
                mail ("xy@web.de", $Grnd, $Text);
                }
            ?>
  4. nilsmargotti schrieb:


    <?php
    
                $Name  = $_GET['name'];
                $Grnd  = $_GET['grnd'];
                $Mail  = $_GET['mail'];
                $Text  = $_GET['text'];
    
                if ($Name == "") 
                {
                    echo "Name eingeben!"; 
                    exit;
                }
    ...
    
            ?>

    Ich würde es nicht so machen, da PHP bei mir auf dem lokalen Server undefined Variable schreibt.
    eher so:
    <?php
              $Name  = $_GET['name'];
              ...
              if (!(isset($_GET['name']))
                {
                    echo "Name eingeben!"; 
                    exit;
                }

    Kann sein, dass es bei Lima anders ist, aber bei mir zerschießt es das sonst das Layout.

    mfg Askarian
  5. bei lima-city sind alle fehler ausgaben zur sicherheit deaktiviert.(kann man aber auch wieder aktivieren)
  6. askarian schrieb:
    Ich würde es nicht so machen, da PHP bei mir auf dem lokalen Server undefined Variable schreibt.
    eher so:
    <?php
              $Name  = $_GET['name'];
              ...
              if (!(isset($_GET['name']))
                {
                    echo "Name eingeben!"; 
                    exit;
                }

    Kann sein, dass es bei Lima anders ist, aber bei mir zerschießt es das sonst das Layout.

    mfg Askarian


    Das ist die sauberste methode, allerdings kann man auch statt die GET Variablen gleich auf die zugewiesenen Variablen ($Name) zugreifen.
    Oder man lässt die Zuweisung einfach wech, lohnt sich meist eh nur wenn man die Variablen öfter braucht oder sie verändern will.

    Beitrag zuletzt geändert: 18.10.2011 5:34:30 von pooldreams
  7. Hallo

    ich würde Eingabe-Variablen immer neu zuweisen und dabei gleich escapen (Sicherheit)

    $name = stripslashes(trim(chop($_GET['name'])));

    ... und evtl. auch nur bestimmte Zeichen zulassen...

    $name = preg_replace('/[^0-9_a-z]/i', $name);

    usw, je nach Anforderung (eMail Syntax prüfen, min../max. Zeichen, etc.)
  8. Da sind ein paar Syntaxfehler in kontakt2.php. ;)

    bei jedem if fehlt am ende eine schließende Klammer
    beim else ist das Klammerpaar überflüssig
    und html-code innerhalb von php geht auch nicht.

    So sollte es funktionieren:

    <?php
    
                $Name  = $_GET['name'];
                $Grnd  = $_GET['grnd'];
                $Mail  = $_GET['mail'];
                $Text  = $_GET['text'];
    
                if (empty($Name)) 
                {
                    echo "Name eingeben!"; 
                    exit;
                }
                if (empty($Grnd))
                {
                    echo "Betreff eingeben!"; 
                    exit;
                }
                if (empty($Mail))
                {
                    echo "E-Mail Adresse eingeben!"; 
                    exit;
                }
                if (empty($Text))
                {
                    echo "Nachricht eingeben!"; 
                    exit;
                }
                else
                {
                echo  '<h2>Nachrich erfolgreich versandt!</h2>';
    
                mail ("xy@web.de", $Grnd, $Text);
                }
            ?>


    Natürlich müßte das Formular jetzt noch gegen Mißbrauch geschützt werden, aber das ist ein anderes Thema. ;)

    Beitrag zuletzt geändert: 18.10.2011 13:29:42 von fatfreddy
  9. 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!