You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Sunday, September 18th 2011, 8:05pm

Kriege unverständliche Fehlermeldung Notice: Undefined index: email in ...

Hey leute!
Hab mir ein PHP Buch gekauft und gelernt das ist bei mir rausgekommen ( siehe unten ) und ich stocken an einer Fehlermeldung!

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//HTML ETC...
 
 
if(isset($_POST['submit']) AND $_POST['submit']=='feedback'){
$errors = array();
 
    if(!isset($_POST["email"],$_POST["text"]))
        $errors = "Bitte benutzen Sie das Formular aus dem Feedbackbereich!";
}
if(trim($_POST['email'])=='')
$errors[]= "Bitte geben Sie eine e-mail Adresse ein.";
 
elseif(strlen(trim($_POST['email'])) < 5)
$errors[]= "Ihre Adresse muss mindestens 5 Zeichen lang sein!";
elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email'])))
$errors[]= "Ihre Email Adresse hat eine falsche Syntax.";
        if(trim($_POST['text'])=='')
            $errors[]= "Sie haben keinen Text angegeben!";
 
    if(count($errors)){
         echo "Ihre Nachricht konnte nicht an uns versendet werden!<br>\n".
              "<br>\n";
         foreach($errors as $error)
             echo $error."<br>\n";
         echo "<br>\n".
              "Zurück zur <a href=\"".$_SERVER['PHP_SELF']."\">Startseite</a>\n";
    }
 
echo "<form ".
         " name=\"feedback\" ".
         " action=\"".$_SERVER['PHP_SELF']."\" ".
         " method=\"post\" ".
         " accept-charset=\"ISO-8859-1\">\n";
echo "e-mail: ";
echo "<input style=\"margin-left: 15px;\" title=\"email\" name=\"email\">";
echo "<p>";
echo "text: ";
echo  "<textarea cols=\"30\" rows=\"4\" style=\"margin-left: 58px;\"  name=\"text\">Enter your comments here...</textarea>";
echo "</p>";
echo "<p>";
echo "<input type=\"submit\" name=\"submit\" value=\"Senden\">";
echo "<input type=\"reset\" value=\"Zurücksetzen\">\n";
echo "</p>";
echo "</form>";


Fehlermeldung:

Source code

1
2
3
 Notice:  Undefined index: email in ...
 Notice:  Undefined index: text in ...
 


Wo liegt mein Fehler?
Ich habe noch andere Scripte, bei denen ich genauso abfrage.
Was mach ich Falsch???

Freu mich schonmal auf Antworten!!!
mfg SE

2

Tuesday, September 20th 2011, 9:38pm

Naja, da versucht php halt, im Array $_POST auf den nicht existierenden Key "email" und "text" zuzugreifen.

Ich würde mal sagen, dass du da mit dem if-Abfragen durcheinnander gekommen bist, und die schließende geschweifte Klammer in Zeile 9 eher in Zeile 28 stehen sollte.

Ich hab das jetzt nicht getestet, aber so sollte das ganze ohne Notice (die halt eh nur eine NOTICE=>Anmerkung ist) klappen:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
if (isset($_POST['submit']) AND $_POST['submit'] == 'feedback') {
    $errors = array();

    if (!isset($_POST["email"], $_POST["text"]))
        $errors = "Bitte benutzen Sie das Formular aus dem Feedbackbereich!";

    if (trim($_POST['email']) == '')
        $errors[] = "Bitte geben Sie eine e-mail Adresse ein.";

    elseif (strlen(trim($_POST['email'])) < 5)
        $errors[] = "Ihre Adresse muss mindestens 5 Zeichen lang sein!";
    elseif (!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email'])))
        $errors[] = "Ihre Email Adresse hat eine falsche Syntax.";
    if (trim($_POST['text']) == '')
        $errors[] = "Sie haben keinen Text angegeben!";

    if (count($errors)) {
        echo "Ihre Nachricht konnte nicht an uns versendet werden!<br>\n" .
             "<br>\n";
        foreach ($errors as $error)
            echo $error . "<br>\n";
        echo "<br>\n" .
             "Zurück zur <a href=\"" . $_SERVER['PHP_SELF'] . "\">Startseite</a>\n";
    }
}

echo "<form " .
     " name=\"feedback\" " .
     " action=\"" . $_SERVER['PHP_SELF'] . "\" " .
     " method=\"post\" " .
     " accept-charset=\"ISO-8859-1\">\n";
echo "e-mail: ";
echo "<input style=\"margin-left: 15px;\" title=\"email\" name=\"email\">";
echo "<p>";
echo "text: ";
echo  "<textarea cols=\"30\" rows=\"4\" style=\"margin-left: 58px;\"  name=\"text\">Enter your comments here...</textarea>";
echo "</p>";
echo "<p>";
echo "<input type=\"submit\" name=\"submit\" value=\"Senden\">";
echo "<input type=\"reset\" value=\"Zurücksetzen\">\n";
echo "</p>";
echo "</form>";

Similar threads

Social bookmarks