Hallo, eine frage über "php"

02/20/2012 12:50 BlueBasHeR#1
Hey leuts ich habe kp wo ich das fragen soll... habe alles durchsucht.. vllt hab ich was übersehen aber ich poste das mak hier rein...

wenn es eine kategorie dafür gibt bitte moven

also ich habe eine Homepage und will da ein php kontaktformular haben.

immer wenn ich alles ausfülle und dann absenden drücke kommt bei meiner e-mail nichts an...

PHP Code:
<?php
$submit 
$_POST["submit"];
$name $_POST["name"];
$mail $_POST["mail"];
$nachricht $_POST["nachricht"];

If (
$submit)
{
if (
$name&&$mail&&nachricht)
{
$to "DIE EMAIL";
$betreff "Nachricht über Kontakformular";
$body "Von: $name \n eMail: $mail\n\n $nachricht";
$headers "From: $mail";

mail($to$betreff$body$headers);

}
 else
 echo 
"Bitte alle felder ausfüllen";
}



echo 
""
?>
<html>
<body>
<form action="kontakt.php" method="POST">
Name:<br>
<input type="text" name="name"><p>
eMail:<br>
<input type="text" name="mail"><p>
Nachricht:<br>
<textarea name="nachricht"></textarea><p>
<input type="submit" name="submit" value="Absenden" >

</form>
</html>
</body>

Wo ist der fehler?
02/20/2012 13:10 .JuggernauT#2
Total falsche Sektion! Hier sagt man eigentlich Hallo und nichts über Coding: Nächstes mal genauer gucken: [Only registered and activated users can see links. Click Here To Register...]
02/20/2012 14:46 Status#3
#moved
02/20/2012 14:48 jacky919#4
Du schließt den html-Tag vor dem body-Tag.
02/20/2012 16:24 MoepMeep#5
Quote:
Originally Posted by .JuggernauT View Post
Total falsche Sektion! Hier sagt man eigentlich Hallo und nichts über Coding: Nächstes mal genauer gucken: [Only registered and activated users can see links. Click Here To Register...]
Auch total falsch :<

Wir wärs mit web development? ^^
02/21/2012 13:52 BlueBasHeR#6
1. °Status° Thanks 4 Move
2. @jacky919 wenn ich es anders mache geht dass dann oder wie?
02/21/2012 14:06 jacky919#7
Quote:
Originally Posted by BlueBasHeR View Post
1. °Status° Thanks 4 Move
2. @jacky919 wenn ich es anders mache geht dass dann oder wie?
Keine Ahnung, ich kann weder HTML noch PHP wirklich. Aber das ist mir halt so aufgefallen. Vielleicht kann dir [Only registered and activated users can see links. Click Here To Register...] besser geholfen werden.
02/23/2012 19:20 Mashkin#8
Quote:
Originally Posted by BlueBasHeR View Post
2. @jacky919 wenn ich es anders mache geht dass dann oder wie?
Nein, das ist nur ein kleiner HTML-Fehler.

Spontan würde ich sagen der PHP-Teil ist korrekt.
Vielleicht solltest du auch im Fall korrekter Angaben ("if ($name&&$mail&&nachricht)") eine Ausgabe erzeugen, um feststellen zu können, ob der Block überhaupt durchlaufen wird.

Ansonsten könnte es evtl. auch am Hoster liegen (außer du hast einen eigenen Server / arbeitest mit localhost).

Letzte Möglichkeit wäre noch, deinen Spamordner zu prüfen.
Da der absendende Host (Webserver) wahrscheinlich nicht als Mail-Host für die Domain der angegeben EMail-Adresse deligiert wird, wird die Mail unter Umständen als verdächtig markiert.
02/23/2012 20:30 galaxyo#9
[Only registered and activated users can see links. Click Here To Register...]

Hier weiter schreiben. Dort wurde bereits geholfen. Außerdem ist es der selbe Thread.
02/23/2012 20:38 NullPointerException#10
Prüf mal ob mail wirklich sendet.
PHP kann da große Schwierigkeiten machen.
PHP Code:
<?php
 error_reporting
(-1);
 
//mailpruefung
 
if (mail($to$betreff$body$headers)) {
  echo 
'Wurde (wahrscheinlich) gesendet.';
 } else {
  echo 
'Nicht gesendet.';
 }
?>
PHP Code:
}



echo 
""
?> 
Hier provozierst du einen Syntax error weil hinter den "" kein ; ist.
Sollte PHP eigentlich lauthals drüber stolpern.
Vielleicht ist auf deinem Server das error_reporting standardmäßig aus.
Setz mal direkt nach dem ersten <?php in der Datei in einer neuen Zeile
error_reporting(-1); hin, dann sollten wirklich alle Fehler des Skripts ausgegeben werden.

Es liegt wahrscheinlich an dem fehlenden strichpunkt, da php eine Datei erstmal syntaktisch prüft bevor es die Datei abarbeitet.
Und wenn da etwas nicht stimmt, quittiert PHP den Dienst.

Im großen Ganzen würde ich den PHP Code so ändern:
PHP Code:
<?php
    error_reporting
(-1);
    if (isset(
$_POST['submit'], $_POST['name'], $_POST['mail'], $_POST['nachricht'])) {
        
$name $_POST["name"];
        
$mail $_POST["mail"];
        
$nachricht $_POST["nachricht"];
        
$to "DIE EMAIL";
        
$betreff "Nachricht über Kontakformular";
        
$body "Von: $name \n eMail: $mail\n\n $nachricht";
        
$headers "From: $mail";
        if (
mail($to$betreff$body$headers)) {
            echo 
'Wahrscheinlich gesendet.';
        } else {
            echo 
'Es gab da einen Fehler.';
        }
    } else {
        echo 
"Bitte alle felder ausfüllen";
    }
?>
Das sollte auch die kleineren E_WARNINGs und E_NOTICEs ausschalten.


NullPointerException

@Edit: Sorry, das darüber hab ich nicht gesehen
02/23/2012 20:55 Mashkin#11
Quote:
Originally Posted by NullPointerException View Post
Setz mal direkt nach dem ersten <?php in der Datei in einer neuen Zeile
error_reporting(-1); hin, dann sollten wirklich alle Fehler des Skripts ausgegeben werden.
Der Syntaxfehler ist mir gar nicht aufgefallen... mein Fehler.

Aber wenn wir schon dabei sind: "-1" ist ein weniger geeigneter Wert für das error_reporting. Unter Umständen kann das zu unvorhersehbarem Verhalten der Engine führen.
Generell sollte man sich bei der Festlegung des error_reporting an die Konstanten halten - "E_ALL" ist hier angebracht (auch wenn "E_STRICT" erst ab PHP5.4 in "E_ALL" enthalten ist).
Das nur als kleine Info am Rande.

Also:
PHP Code:
<?php
error_reporting
(E_ALL);
...