Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von Oktober

SELFHTML Forumsarchiv
echo wird nicht "ausgeführt"

Informationsseite
  1. Seite (PHP) echo wird nicht "ausgeführt" von eniem, 31. 10. 2005, 17:00
nach unten

echo wird nicht "ausgeführt"

Die folgende Nachricht zum Thema stammt von: eniem, 31. 10. 2005, 17:00

Hallo!

Ich habe gerade mal für ein kleines Projekt einen Formmailer geschrieben, den ich nun testen wollte. - Ja, wollte, denn komischerweise wird mir das "echo" welches das Formular ausgibt nicht "ausgeführt", und ich komm einfach nicht drauf, warum... Hier einstweilen der code:


<?php

if(isset($_POST['name']) || isset($_POST['email']) || isset($_POST['text']))
{
  $from = "Formmailer @ meine-webseite.at";
  $to = "mail@example.com";
  $subject = "Formmailer - Feedback";
  $text = "Nachricht von ".$_POST['name']." &lt;".$_POST['email']."&gt;\r\n".$_POST['text']."\r\nIP: ".$_SERVER['REMOTE_ADDR'];

  mail($to, $subject, $text, "From: ".$from);

  header("Location: http://www.meine-webseite.at/");
}
else
{
   echo '
    <form method="post" action="testdocument.php">
 <table>
  <tr>
   <td><label for="name">Name</label></td><td><input type="text" name="name" id="name" size="50" value="'
.(isset($_POST['name'])) ? $_POST['name'] : ''.'" /></td>
  </tr>
  <tr>
   <td><label for="email">eMail</label></td><td><input type="text" name="email" id="email" size="50" value="'
.(isset($_POST['email'])) ? $_POST['email'] : ''.'" /></td>
  </tr>
  <tr>
   <td><label for="text">Nachricht</label></td><td><textarea cols="30" rows="20" name="text" id="text">"'
.(isset($_POST['text'])) ? $_POST['text'] : ''.'"</textarea></td>
  </tr>
  <tr colspan="2">
   <input type="reset" value="Zurücksetzen" />&nbsp;<input type="submit" name="submit" value="Abschicken" />
  </tr>
 </table>
 </form>
  '
;

  if(!isset($_POST['name']))
    echo 'Bitte geben Sie einen Namen ein!<br />';
  if(!isset($_POST['text']))
    echo 'Bitte geben Sie einen Nachrichtentext ein!<br />';
  if(!isset($_POST['email']) || !preg_match('/^[^\s]+@([^\s]+\.)+[^\s]{2,6}$/', $_POST['email']))
    echo 'Bitte geben Sie eine gültige eMail-Adresse ein!<br />';
}

?>


Würde mich über eine Antwort freuen!

Gruss,
  eniem

nach obennach unten

echo wird nicht "ausgeführt"

Die folgende Nachricht zum Thema stammt von: Dieter, 31. 10. 2005, 17:16

Hallo Eniem.
Bei dir vermischten sich die Hochkommata mit den Anführungszeichen.
Korrigert sieht es aus wie folgt:

<?php

if(isset($_POST['name']) || isset($_POST['email']) || isset($_POST['text']))
{
  $from = "Formmailer @ meine-webseite.at";
  $to = "mail@example.com";
  $subject = "Formmailer - Feedback";
  $text = "Nachricht von ".$_POST['name']." &lt;".$_POST['email']."&gt;\r\n".$_POST['text']."\r\nIP: ".$_SERVER['REMOTE_ADDR'];
 mail($to, $subject, $text, "From: ".$from);
 header("Location: http://www.meine-webseite.at/");
}
else
{
 $name  = isset($_POST['name'])  ? $_POST['name']   : '';
 $email = isset($_POST['email'])  ? $_POST['email']  : '';
 $text  = isset($_POST['text'])  ? $_POST['text']   : '';

 if($name=="")
    echo 'Bitte geben Sie einen Namen ein!<br />';
  if($text=="")
    echo 'Bitte geben Sie einen Nachrichtentext ein!<br />';
  if($email=="" || !preg_match('/^[^\s]+@([^\s]+\.)+[^\s]{2,6}$/', $email))
    echo 'Bitte geben Sie eine gültige eMail-Adresse ein!<br />';

   echo '
   <form method="post" action="form.php">
 <table>
  <tr>
   <td><label for="name">Name</label></td>
   <td><input type="text" name="name" id="name" size="50" value="'.$name.'"></td>
  </tr>
  <tr>
   <td><label for="email">eMail</label></td>
      <td><input type="text" name="name" id="name" size="50" value="'.$email.'"></td>
  </tr>
  <tr>
   <td><label for="text">Nachricht</label></td>
   <td><textarea cols="30" rows="20" name="text" id="text">'.$text.'</textarea></td>
  </tr>
  <tr>
   <td  colspan="2">
    <input type="reset" value="Zurücksetzen" />&nbsp;
    <input type="submit" name="submit" value="Abschicken" />
   </td>
  </tr>
 </table>
 </form>
  ';


}

?>


mfg
Dieter

nach obennach unten

echo wird nicht "ausgeführt"

Die folgende Nachricht zum Thema stammt von: Dev, 31. 10. 2005, 17:20

Hi,

Dein Fehler liegt bei den Valueausgaben der Einagbefelder

<input type="text" name="email" id="email" size="50" value="'.(isset($_POST['email'])) ? $_POST['email'] : ''.'" />

muss heißen

<input type="text" name="email" id="email" size="50" value="'.$_POST['email'].'">

denn wenn POST nicht gefüllt ist, wird auch nichts angezeigt. Deshalb brauchst du nicht abfragen.

Gruss
Dev


»» Hallo!
»»
»» Ich habe gerade mal für ein kleines Projekt einen Formmailer geschrieben, den ich nun testen wollte. - Ja, wollte, denn komischerweise wird mir das "echo" welches das Formular ausgibt nicht "ausgeführt", und ich komm einfach nicht drauf, warum... Hier einstweilen der code:
»»
»»
»» <?php
»»
»» if(isset($_POST['name']) || isset($_POST['email']) || isset($_POST['text']))
»» {
»»   $from = "Formmailer @ meine-webseite.at";
»»   $to = "mail@example.com";
»»   $subject = "Formmailer - Feedback";
»»   $text = "Nachricht von ".$_POST['name']." &lt;".$_POST['email']."&gt;\r\n".$_POST['text']."\r\nIP: ".$_SERVER['REMOTE_ADDR'];
»»
»»   mail($to, $subject, $text, "From: ".$from);
»»
»»   header("Location: http://www.meine-webseite.at/");
»» }
»» else
»» {
»»    echo '
»»     <form method="post" action="testdocument.php">
»» <table>
»»   <tr>
»»    <td><label for="name">Name</label></td><td><input type="text" name="name" id="name" size="50" value="'
.(isset($_POST['name'])) ? $_POST['name'] : ''.'" /></td>
»»   </tr>
»»   <tr>
»»    <td><label for="email">eMail</label></td><td><input type="text" name="email" id="email" size="50" value="'
.(isset($_POST['email'])) ? $_POST['email'] : ''.'" /></td>
»»   </tr>
»»   <tr>
»»    <td><label for="text">Nachricht</label></td><td><textarea cols="30" rows="20" name="text" id="text">"'
.(isset($_POST['text'])) ? $_POST['text'] : ''.'"</textarea></td>
»»   </tr>
»»   <tr colspan="2">
»»    <input type="reset" value="Zurücksetzen" />&nbsp;<input type="submit" name="submit" value="Abschicken" />
»»   </tr>
»» </table>
»» </form>
»»   '
;
»»
»»   if(!isset($_POST['name']))
»»     echo 'Bitte geben Sie einen Namen ein!<br />';
»»   if(!isset($_POST['text']))
»»     echo 'Bitte geben Sie einen Nachrichtentext ein!<br />';
»»   if(!isset($_POST['email']) || !preg_match('/^[^\s]+@([^\s]+\.)+[^\s]{2,6}$/', $_POST['email']))
»»     echo 'Bitte geben Sie eine gültige eMail-Adresse ein!<br />';
»» }
»»
»» ?>
»»

»»
»» Würde mich über eine Antwort freuen!
»»
»» Gruss,
»»   eniem
!

nach obennach unten

echo wird nicht "ausgeführt"

Die folgende Nachricht zum Thema stammt von: Dennis, 31. 10. 2005, 17:24

Hi Dev,


»» <input type="text" name="email" id="email" size="50" value="'.$_POST['email'].'">
»»
»» denn wenn POST nicht gefüllt ist, wird auch nichts angezeigt. Deshalb brauchst du nicht abfragen.

Das ist falsch! Dabei greifst du dann auf eine nicht existierendes Element im Array $_POST zu, wofür dich PHP mit einer Notice Meldung versieht. Zwar werden Notice Meldungen auf den meisten Produktivserven nicht angezeigt, aber zum Entwickeln solltest du immer error_reporting(E_ALL); verwenden und dann werden dir auch die ganzen "kleinen" Fehlermeldungen angezeigt.


MfG, Dennis.
--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|

.htpasswd Datei mit PHP erzeugen
Dies hier ist ein öffentliches Forum - wer dir hier geholfen hat, hat dies vollkommen freiwillig und unter Aufopferung seiner Freizeit getan!

nach obennach unten

Warning is just another Word for Error

Die folgende Nachricht zum Thema stammt von: Dieter, 31. 10. 2005, 17:30

Hallo,


»» <input type="text" name="email" id="email" size="50"
»» value="'.$_POST['email'].'">
»» denn wenn POST nicht gefüllt ist, wird auch nichts angezeigt.
Bloß nicht! Da schmeisst der Interpreter Warnings. Und wir wissen:
Warning is just another Word for Error.
Also immer schön error_reporting(E_ALL);. Alles andere ist laienhaft
und lässt sich als Schwachsinn (im Sinne von unprofessional) titulieren.

Freundliche Grüße
Dieter

nach obennach unten

Danke + xampp-frage

Die folgende Nachricht zum Thema stammt von: eniem, 31. 10. 2005, 17:47

Hallo!

Danke mal für eure Antworten.

Eine Frage habe ich noch, und zwar, wie muss ich die php.ini "konfigurieren" (oder sonst was ähnliches), dass unter xampp die mail()-Funktion funktioniert!?

Gruss,
 eniem

nach obennach unten

Danke + xampp-frage

Die folgende Nachricht zum Thema stammt von: Dieter, 31. 10. 2005, 17:51

hi,
dafür du schauen hier.. ;-)

Dieter

nach obennach unten

Danke + xampp-frage

Die folgende Nachricht zum Thema stammt von: eniem, 31. 10. 2005, 18:42

Hallo!

»» dafür du schauen hier.. ;-)

Ich dir danken herzlich dafür. :)

Leider wird bei mir trotzdem noch keine Mail versendet. Meine PHP.INI Konfiguration sieht so aus:

[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from = peterheinrich67@yahoo.de
smtp_port = 25

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = configure

(Betriebssystem: WindowsXP Prof.)

Gruss,
 eniem

nach obennach unten

Danke + xampp-frage

Die folgende Nachricht zum Thema stammt von: Marian, 02. 11. 2005, 12:21

Hi eniem,

»» Eine Frage habe ich noch, und zwar, wie muss ich die php.ini "konfigurieren" (oder sonst was ähnliches), dass unter xampp die mail()-Funktion funktioniert!?

Du musst den Mercury starten.
Der (und FileZilla) wird nämlich nicht mit dem xampp_start.exe gestartet.

BTW: Warum machst du deine Verben immer in Anführungszeichen? Sowohl "ausführen" als auch "konfigurieren" passen da doch gut hin!

Gruß, Marian

--
Mein SelfCode:
ie:{ fl:( br:> va:) ls:[ fo:) n4:( ss:) de:] js:| ch:? mo:} zu:)
[img:http://sfx-images.mozilla.org/affiliates/Buttons/80x15/firefox_80x15.png]

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2005 Teil von Oktober

© 1998-2008 Seite Impressum, Software: Classic Forum