Variable Übergabe funzt nicht :(

Alles, was PHP betrifft, kann hier besprochen werden.

Variable Übergabe funzt nicht :(

Postby Sarah19 » 17. May 2006 18:21

Hi habe folgende zwei datein:
die erste ist das Kontaktformular:
Code: Select all
<form method="post" action="sendmail.php">
   Mail Adresse:&nbsp;&nbsp;&nbsp;&nbsp; <input name="email" type="text"/><br><br>
   Dein Text:<br>
   <textarea name="message" rows="15" cols="40">
   </textarea><br><br>
   <input type="submit" value="Absenden" tabindex="7">&nbsp;&nbsp;<input type="reset" value="Abbrechen">

Die zweite ist zum verarbeiten da.
Code: Select all
<?
     if (!isset($_POST['email']) || !isset($_POST['message']))
      echo "   Sie m&uuml;ssen beide Felder ausf&uuml;llen! Bitte gehen sie <a href='kontakt.php'>zur&uuml;ck</a> und schreiben die Nachricht nochmal.<br>
               Danke.";
   else {
   $email = $_POST['email'];
   $message = $_POST['message'];
   
   
   
   mail( "meine@email.de", "Feedback von der Homepage", $message, "From: $email");
   header( "Location: thankyou.php" );
   }
?>


Es wird leider immer der Text
Sie m&uuml;ssen beide Felder ausf&uuml;llen! Bitte gehen sie <a href='kontakt.php'>zur&uuml;ck</a> und schreiben die Nachricht nochmal.<br>
Danke.

angezeigt, nie das andere, selbst wenn ich beide Felder ausgefüllt habe.
Weiss jemand woran das liegen kann?
Danke euch.
Sarah[/code]
User avatar
Sarah19
 
Posts: 58
Joined: 23. August 2004 17:09

Postby KingCrunch » 17. May 2006 18:44

check ma, obs an den fehlenden {} um dem if-Block liegt
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Sarah19 » 17. May 2006 22:46

Hi habs jetzt so geändert, dann kommt aber gar nichts. Also ein leerer Bildschrim.
Code: Select all
<?
     if {!isset($_POST['email']) || !isset($_POST['message'])} {
       echo "Sie m&uuml;ssen beide Felder ausf&uuml;llen! Bitte gehen sie <a href='kontakt.php'>zur&uuml;ck</a> und schreiben die Nachricht nochmal.<br>
              Danke.";
      }
   else {
   $email = $_POST['email'];
   $message = $_POST['message'];
   
   
   
   mail( "meine@email.de", "Feedback von der Homepage", $message, "From: $email");
   header( "Location: thankyou.php" );
   }
?>


Bin ich zu blöd? -> wahrscheinlich schon.
Kann auch sein, dass ich im Moment nen Blackout habe. Habe ne Zeitlang kein php mehr gemacht, und insofern fehlt mir das Auge für solche sachen.
User avatar
Sarah19
 
Posts: 58
Joined: 23. August 2004 17:09

Postby KingCrunch » 17. May 2006 22:56

error_reporting (E_ALL); einsetzen, dann sehn wir weiter. Zumindest schein wir uns in eine richtige Richtung zu bewegen
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Sarah19 » 18. May 2006 08:16

wenn ich es so habe, dann kommt keine Fehlermeldung:
Code: Select all
<?
error_reporting (E_ALL);
     if (!isset($_POST['email']) || !isset($_POST['message'])) {
       echo "Sie m&uuml;ssen beide Felder ausf&uuml;llen! Bitte gehen sie <a href='kontakt.php'>zur&uuml;ck</a> und schreiben die Nachricht nochmal.<br>
              Danke.";
      }
   else {
   $email = $_POST['email'];
   $message = $_POST['message'];
   
   
   echo "Es klappt";
   //mail( "meine@email.de", "Feedback von der Homepage", $message, "From: $email");
   //header( "Location: thankyou.php" );
   }
?>

Aber der If Befehl wird nicht ausgeführt, oder habe ich ihn falsch gesetzt?
Will, dass wenn email oder aber message leer sind es nicht ausgeführt wird, sondern die Nachricht kommt.
Dies klappt aber leider nicht :(

EDIT:
habe den Code jetzt so gemacht:
Code: Select all
   <?
     error_reporting (E_ALL);
     if (($_POST['email']=="") || ($_POST['message'])=="") {
       echo "Bitte f&uuml;llen Sie beide Felder aus!<br>";
      }
   else {
   $email = $_POST['email'];
   $message = $_POST['message'];
   
   
   echo "Es klappt<br>".$email."<br>".$message;
   //mail( "meine@email.de", "Feedback von der Homepage", $message, "From: $email");
   //header( "Location: thankyou.php" );
   }
?>

Es geht jetzt - mehr oder weniger. Es wird akzeotiert( quasi der else Befehl ausgeführt), sobald nur ein Feld ausgefüllt wurde. Aber heisst das || nicht, oder ?
Quasi mein Befehlt" Wenn ( 1 leer ODER 2 Leer) dann schreib das man beide Felder ausfüllen muss."?

Danke sehr
User avatar
Sarah19
 
Posts: 58
Joined: 23. August 2004 17:09

Postby gfaust » 18. May 2006 11:20

Hallo,

versuche mal anstelle von:
Code: Select all
$_POST['email']==""

mal
Code: Select all
empty($_POST['email'])

zu verwenden.

Guido[/quote]
gfaust
 
Posts: 41
Joined: 06. December 2005 18:31

Postby Sarah19 » 18. May 2006 14:56

:P Ich danke euch beiden King und gfaust
Es klappt.
xxx
User avatar
Sarah19
 
Posts: 58
Joined: 23. August 2004 17:09


Return to PHP

Who is online

Users browsing this forum: No registered users and 41 guests