PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Absender in der ankommenden Email ist unbekannt


NelliB.
22.03.2005, 20:56:29
Hi!

Ich bin schon echt verzweifelt, weil ichs nicht hinkriege, bin noch dazu echt kein php-Experte. Nachdem ich nun 2 Stunden lang dieses Forum durchforstet habe, nach einem ähnlichen Problem, aber nicht fündig geworden bin, hoffe ich mir kann jemand helfen!

Lange Rede:

Ich habe mir jetzt nur mal zu Testzwecken von Dr. Web folgenden Code kopiert (habe nämlich schon x verschiedene Codes ausprobiert, habe aber immer dasselbe Problem):

<?php
$admin = "meineemailadresse@irgendwas.at";
$subject = "PHP-Mail";
$message = "Nachricht fuer $admin von $email:nn";

while(list($name,$value)=each($HTTP_POST_VARS)) {
$message.="$name: $valuenn";
}

mail("$admin","$subject","$message","From: $email");
?>

Von einem HTML-Formular kommt man auf diese php-Seite, und die Daten werden an meine Emailadresse geschickt. Soweit so gut, alles klar, funktioniert wunderbar.

Allerdings eine Sache nicht: Im Kopf der Email soll die Emailadresse aufscheinen, die der User angegeben hat, ich bekomme immer nur Nachrichten in denen "Absender unbekannt" steht. An die angegebene Emailadresse wird nämlich automatisch eine Nachrich generiert, das funktioniert logo aber nicht, wenn im Kopf kein Absender angegeben ist.

Muss ich irgendwas im Outlook umstellen? An was kann es liegen, hat irgendjemand eine Idee!

Danke schon im Voraus für eure Zeit und Hilfe!

LG N

xabbuh
22.03.2005, 21:11:56
Hast du dir die Variable $email ausgeben lassen? Wie sieht die Ausgabe aus? Außerdem solltest du möglichst mit den superglobalen Arrays (http://de3.php.net/manual/de/language.variables.predefined.php#language.variables.superglobals) arbeiten.

NelliB.
22.03.2005, 22:42:23
Wie gesagt, ich bin kein php-Experte :). Was meinst du mit deiner Frage, ob ich mir die Variable $email habe ausgeben lassen????? Stehe am Schlauch. Ich habe im Kontaktformular das Feld email benannt, im php-Script sind die Variablen wie angeführt definiert. Was habe ich da falsch gemacht?


Was die superglobalen Arrays betrifft, davon versteh ich ehrlich gesagt auch nicht viel. Könntest du bitte so lieb sein und ganz konrekt sagen, was ich noch ausprobieren könnte? Und wo ich diese Änderungen genau vornehmen soll?

Verzeihung, aber wie gesagt, ich verstehe nicht viel von php. Möchte nur dass dieses Formular wie vom Kunden gewünscht funktioniert.

Danke für die Tipps im Voraus!

LG, N

|Coding
22.03.2005, 23:05:16
<?php
echo $_POST['email'];
?>

das meinte xabbuh mit ausgabe und $_POST ist eines der superglobalen arrays. infos hierzu: http://de2.php.net/manual/de/language.variables.predefined.php

xabbuh
23.03.2005, 08:55:18
Was die superglobalen Arrays betrifft, davon versteh ich ehrlich gesagt auch nicht viel. Könntest du bitte so lieb sein und ganz konrekt sagen, was ich noch ausprobieren könnte? Und wo ich diese Änderungen genau vornehmen soll?
In alten PHP-Versionen wurde nicht unterschieden, auf welchem Wege Variablen an ein Script übermittelt wurden (also URL, Formualr, Session, Cookie etc.). Der Wert eines Formularfeldes mit dem Namen foo konnte im verarbeitenden Script mit $foo angesprochen werden, egal ob das Formular mit der Methode POST oder GET gesendet wurde. Das ist nicht mehr möglich, wenn register_globals deaktiviert ist. Nun muss der Wert mit $_GET['foo'] (bei der Methode GET) bzw. $_POST['foo'] bei der Methode POST angesprochen werden. $foo hat nur dann einen Wert, wenn diese Variable im Script explizit einen Wert zugewiesen bekommt.

NelliB.
23.03.2005, 14:43:40
Vielen Dank, ihr habt mich wie immer auf den richtigen Weg gebracht! Ich verstehe war vieles von dem, was ihr mir so nett beschrieben habt, immer noch nicht so ganz, aber für meine Zwecke reichts :).

Ich habe folgenden Code eingefügt:

$email=$HTTP_POST_VARS['email'];

Diese Zeile wars, und das Formular kommt perfekt an, so wie ich es will.

Danke, Danke.

LG, N

xabbuh
23.03.2005, 14:46:25
Ich habe folgenden Code eingefügt:

$email=$HTTP_POST_VARS['email'];
Wenn du dann jetzt noch die superglobalen Arrays verwendest. :-)

|Coding
23.03.2005, 14:53:06
hi,

mit:
$email=$HTTP_POST_VARS['email'];
hast du in funktionen aber ein problem. in eine funktione müsstest du sie erst dem global scope zuweisen:
function foo(){
global $HTTP_POST_VARS;
echo $HTTP_POST_VARS['email'];
}
mit $_POST, $_GET... also den superglobalen, kannst du dir das sparen:
function foo(){
echo $_POST['email'];
}
die superglobalen sind also überall im script verfügbar, ander wie die $HTTP_*_VARS, diese sind im script nicht überall nutzbar ohne voherige globalisierung.