Variable übergeben??

Begonnen von _Gerry_, 24 August 2003, 04:15:56

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

_Gerry_

Morgen oder doch besser Gute Nacht!  :o

Es ist kurz nach 4 Uhr morgens und ich steh total auf der Leitung!

Ich versuche gerade ein Mailformular zu programmieren, wobei die Mailadresse des Empfängers ändert.
Sprich man klickt auf einen Link und die jeweilige Mailadresse wird mit übergeben, das geschieht auch, aber das Mailscript erkennt den Empfänger nicht!  :cry

Also ich übergeb die Mailadresse folgendermassen:
........mail.php?to=$mail

Wobei Mail immer die jeweilige Mailadresse übergibt,
im Mailscript ist der Empfänger folgendermassen angegeben:
 
$emailadresse="$to";


Aber anscheinend stimmt da was nicht ganz!
Vielleicht hat ja jemand nen Tip, würde es nämlich dringend benötigen!

Danke!!

[Editiert am 24/8/2003 von _Gerry_]
CMS-Version: pragmaMx 0.1.11, 1.33.2.12.2.9/2009-05-10   
PHP-Version: 5.2.0-8+etch5~pu1
MySQL-Version: 5.0.32-Debian_7etch1
Server-Version: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c

JensWagenknecht

Das sind sehr wenig Informationen.

Es sind folgende Fragen zu klären:

- ist der Wert $mail wirklich gefüllt?
   Mach dazu mal in der nehmenden Funktion folgendes rein:
   echo "Mail=$mail";
   exit;
   Nun wird der Wert, so wie er übergeben wurde, ausgegeben
- Wird der Wert in der Deklaration der Funktion überhaupt erwartet?


$mail scheint Null oder Leer zu sein.

jubilee

Hallo !
Die Parameterübergabe ist so schon richtig.
Die Funktioniert aber nur, wenn register_globals=on gesetzt ist.
dann werden namlich die über HTTP POST gesendeten Variablen (to)
automatisch GLOBAL gesetzt und kónnen via $to genutzt werden.
Wenn register_globals=off gesetzt ist, musst du die Variable $to noch per Hand füllen (im Mailscript). Am einfachsten machst du das SO :
 
Zitat$to = (empty($_REQUEST['to'])) ? "" : $_REQUEST['to'];
MfG
jubilee

JensWagenknecht

In $mail möchte aber auch was drin sein.

jubilee

Mein Betrag war nicht als Kritik gemeint, sondern als Ergänzung.

JensWagenknecht

Habe ich auch nicht anders verstanden.

_Gerry_

Hey ihr!
 
Danke erstmals für eure Antworten!
Also register_globals=on ist gesetzt,
die Mailadresse wird auch richtig übergeben,
aber dennoch funktioniert da etwas nicht ganz so wie ich es will!

Ich poste mal die ganze mail.php, damit ihr deren Aufbau seht:

 
<?php
$emailadresse
="$to";

$nachricht_OK="Nachricht erfolgreich gesendet";

$nachricht_NOK="Es wurden nicht alle Felder ausgefüllt";

if (
$submit&#41;
{
 if (
$betreff=="" &#124;&#124; $name=="" &#124;&#124; $email=="" &#124;&#124; $kommentar==""&#41;
 
{
 echo 
"$nachricht_NOK";
 exit(&
#41;;
 
}
else
{
 echo 
"$nachricht_OK";
 
mail("$emailadresse","$betreff""Betreff:\t $betreff\nName:\t\t $name\nE-Mail:\t\t $email\nKommentar:\t $kommentar,\n\n\n$REMOTE_ADDR\n$REMOTE_HOST\n$HTTP_USER_AGENT","From: $email"&#41;;
 
exit(&#41;;
 
}
}
?>

<form action="<?php echo $PHP_SELF?>" method="post" name="formmail">
<table border="0" cellpadding="0" cellspacing="0" width="400">
 <tr>
  <td width="100" height="25" valign="middle">
   <p>Name:</p>
  </td>
  <td>
   <input type="text" name="name" maxlength="50" size="25">
  </td>
</tr>
 <tr>
  <td width="100" height="25" valign="middle">
   <p>E-Mail:</p>
  </td>
  <td>
   <input type="text" name="email" maxlength="50" size="25">
  </td>
</tr>
 <tr>
  <td width="100" height="25" valign="middle">
   <p>Betreff:</p>
  </td>
  <td>
   <input type="text" name="betreff" maxlength="50" size="25">
  </td>
</tr>
 <tr>
  <td width="100" valign="top">
   <p>Nachricht:</p>
  </td>
  <td>
   <textarea cols="14" rows="4" name="kommentar"></textarea>
  </td>
</tr>
<tr>
 <td>
  <p> </p>
 </td>
 <td height="25">
  <input type="Submit" name="submit" value="Senden">
 </td>
</tr>
</table>
</form>


Wie gesagt die Mailadresse wird mit folgenden Link übergeben:

...../mail.php?to=$mail



[Editiert am 24/8/2003 von _Gerry_]
CMS-Version: pragmaMx 0.1.11, 1.33.2.12.2.9/2009-05-10   
PHP-Version: 5.2.0-8+etch5~pu1
MySQL-Version: 5.0.32-Debian_7etch1
Server-Version: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c

Ralf_W

Versuche mal anstelle von

$emailadresse="$to";

folgendes:

$emailadresse=$to;

Gruß
Ralf

[Editiert am 24/8/2003 von Ralf_W]

Andi

Hi _Gerry_ :)

Warum es bei Dir nicht geht, wenn register_globals=ON ist, kann ich im Moment nicht testen. Weil auf meinem localhost ist OFF  ;)  
Musste es zum testen ziemlich abändern, nachfolgend der funktionierende code:
<?php

foreach ($_POST as $key => $value) {
print "$key = $value"/// zur Kontrolle was kommt ;)
}

$emailadresse = (isset($_POST['to'])) ? $_POST['to'] : "";

$nachricht_OK="Nachricht erfolgreich gesendet";

$nachricht_NOK="Es wurden nicht alle Felder ausgefüllt";

if (isset(
$_POST['submit'])){
 if (empty(
$_POST['betreff']) || empty($_POST['name']) || empty($_POST['email']) || empty($_POST['kommentar'])) {
 echo 
$nachricht_NOK;
 exit();
 }
else{
 echo 
$nachricht_OK;
 
mail($emailadresse,$_POST['betreff'], "Betreff:\t ".$_POST['betreff']."\nName:\t\t".$_POST['name']."\nE-Mail:\t\t ".$emailadresse."\nKommentar:\t".$_POST['kommentar'].",\n\n\n".$_SERVER['REMOTE_ADDR']."\n".getenv('REMOTE_HOST')."\n".$_SERVER['HTTP_USER_AGENT']."","From:".$emailadresse."");
 exit();
 }
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="formmail">
 ........ der Rest ist ok.....


[Editiert am 24.8.2003 von SiteAdmin Andi]
schön´s Grüssle, Andi

_Gerry_

Hey Andi.
Danke für dein bemühen, aber es funktioniert dennoch nicht!  :cry

Die Mail kommt einfach nicht an!
Nach Absenden der Nachricht erscheind nun folgender text:

 
name = Gerry
email = Gerry@finddich.net
betreff = Test
kommentar = Mal gucken ob es nun geht
submit = Senden
Nachricht erfolgreich gesendet


Aber wie gesagt es kommt keine Mail an!
CMS-Version: pragmaMx 0.1.11, 1.33.2.12.2.9/2009-05-10   
PHP-Version: 5.2.0-8+etch5~pu1
MySQL-Version: 5.0.32-Debian_7etch1
Server-Version: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c

Ralf_W

Hast du  
 @mail($emailadresse,$_POST['betreff'], "Betreff:\t
".$_POST['betreff']."\nName:\t\t".$_POST['name']."\nE-Mail:\t\t
".$emailadresse."\nKommentar:\t".$_POST['kommentar'].",\n\n\n".$_SERVER['RE
MOTE_ADDR']."\n".getenv('REMOTE_HOST')."\n".$_SERVER['HTTP_USER_AGENT']."",
"From:".$emailadresse."");
mal probiert?

_Gerry_

Hey Ralf.

Ändert leider auch nichts!
Es kommt keine Mail an!
CMS-Version: pragmaMx 0.1.11, 1.33.2.12.2.9/2009-05-10   
PHP-Version: 5.2.0-8+etch5~pu1
MySQL-Version: 5.0.32-Debian_7etch1
Server-Version: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c

jubilee

Ganz dumme Frage.
Aber einen E-Mail-Server hast Du ja, oder ?
Ist in der php.ini auch konfiguriert (sendmail_path = bzw. SMTP = +
sendmail_from = )
MfG
jubilee

Andi

uuups, habe nur auf die Variablen gesehen, auf den mail-Befehl, bzw. ob die mail ankommt, habe ich nicht geachtet....
Das funzt auf meinem localhost sowieso nicht ;)

Schreibe mal vor den mail-Befehl:

error_reporting(E_ALL);

Eventuell ist am mailheader was falsch, bzw. der mailserver akzeptiert die mailadresse nicht...

lass mal das weg:
, "From:".$emailadresse.""

oder gib da eine für den mailserver akzeptierte emailadresse an, z.B. Deine eigene
schön´s Grüssle, Andi

_Gerry_

@jubilee
 
sendmail_from      me@localhost.com              me@localhost.com
sendmail_path      /usr/sbin/sendmail -t -i      /usr/sbin/sendmail -t -i  
short_open_tag   On                                      On
SMTP                     localhost                            localhost
 


@Andi
Okay, hab den error Befehl eingefügt, es kommt keine Meldung.
Auch die beiden anderen Varianten (weglassen, bzw Mailadresse einsetzen) haben nichts gebracht!  :cry

Irgendwie ist das ganze zum durchdrehen!
CMS-Version: pragmaMx 0.1.11, 1.33.2.12.2.9/2009-05-10   
PHP-Version: 5.2.0-8+etch5~pu1
MySQL-Version: 5.0.32-Debian_7etch1
Server-Version: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c

JensWagenknecht

Das machst Du doch auf Deinem Server.

Wurde die Mail an den Mailserver übergeben, so gibt es auch eine Logdatei.

Schau mal was die sagt.

Oder gib mal eine Mailadresse von dem localen Server an.

Ralf_W

Hmmm, das ganze läuft aber unter Linux, oder?

_Gerry_

Ja ich mache es auf dem Server, also nicht Local.
Auf die Logdatein hab ich leider im Moment keine Einsicht.

Ja ess handelt sich dabei um ein Linux Serversystem.
CMS-Version: pragmaMx 0.1.11, 1.33.2.12.2.9/2009-05-10   
PHP-Version: 5.2.0-8+etch5~pu1
MySQL-Version: 5.0.32-Debian_7etch1
Server-Version: Apache/2.2.3 (Debian) mod_ssl/2.2.3 OpenSSL/0.9.8c

jubilee

Hallo !
Sach mal, Du übergibts das mit
...../mail.php?to=$mail
Da kommt aber gar kein mail in deinem Formular
vor sondern nur email ???
 
Zitat <td>
   <input type="text" name="email" maxlength="50" size="25">
  </td>


Das würd ich mal anpassen ....
MfG
jubilee


[Editiert am 24/8/2003 von SiteAdmin jubilee]

[Editiert am 24/8/2003 von SiteAdmin jubilee]

JensWagenknecht

Ich habe es mal auf meinem schwachbrüstigen Linuxserver ausprobiert.

Exim schimpft:

2003-08-24 19:51:36 19qz1c-0002Nn-00 Rewrite of www-data@wagenknecht.home yielded unparseable address: empty address in address
2003-08-24 19:51:36 19qz1c-0002Nn-00 Rewrite of www-data@wagenknecht.home yielded unparseable address: empty address in address
2003-08-24 19:51:36 19qz1c-0002V3-00 <= <> R=19qz1c-0002Nn-00 U=mail P=local S=1077
2003-08-24 19:51:36 19qz1c-0002V3-00 ** jwagenknecht@t-online.de: unrouteable mail domain "t-online.de"
2003-08-24 19:51:36 19qz1c-0002V3-00 Frozen (delivery error message)

----------------------------------------------------------
Das:
www-data@wagenknecht.home
nimmt T-Offline natürlich nicht an.
Also das "From" Feld müsste noch geändert werden.

Halt nur aus meiner Sicht!