Auf dem Win-Server stehen die register_globals auf OFF. Das bedeutet, dass du über die Superglobals ($_POST, $_GET,...) "gehen" musst.
Gruss
Jan
Hallo Leute!
Ich habe wieder ein spezielles Problem...
Also, ich hab ein Script zum senden von E-Mails über SMTP etwas überarbeitet. Das ganze Ding funktioniert auf meinem Rechner lokal 1A. Ich bekomme die E-Mail ganz richtig ausgefüllt in mein Postfach. (zur Info: Lokaler Server läuft mit Apache)
Aber, lade ich das ganze Script auf den Webserver (MS IIS) werden die Variablen in dem Mail irgendwie nicht mitübergeben. Was heißen soll: Ich krieg keine Daten die der Besucher eingegeben hat.
hier ist die mail.php, die die Daten von der index.php bekommt...
Schaut euch bitte mal die Variablen an, ob ich da vielleicht irgendwas falsch gemacht habe!
1.000 DANK!PHP-Code:<?php
/***************************************
** Include the class. The header() makes
** the output look lovely.
***************************************/
include('class.smtp.inc');
header('Content-Type: text/plain');
/***************************************
** Setup some parameters which will be
** passed to the smtp::connect() call.
***************************************/
$params['host'] = 'smtp.asdf.net'; // The smtp server host/ip
$params['port'] = 25; // The smtp server port
$params['helo'] = exec('smtp.asdf.net'); // What to use when sending the helo command. Typically, your domain/hostname
$params['auth'] = TRUE; // Whether to use basic authentication or not
$params['user'] = 'asdf'; // Username for authentication
$params['pass'] = 'asdf'; // Password for authentication
/***************************************
** These parameters get passed to the
** smtp->send() call.
***************************************/
$ip = $REMOTE_ADDR;
$browser = $HTTP_USER_AGENT;
$send_params['recipients'] = array("asdf"); // Empfänger
$send_params['headers'] = array(
"From: $firma $email", // Headers
"To: [email]asdf[/email]", "Subject: Bestellung über die Homepage");
$send_params['from'] = $email; // Absender
$send_params['body'] = "Folgende Person wünscht Kontaktaufnahme:
Kdnr: $kdnr
Firma: $firma
Ansprechperson: $ansprechperson
_________________________________________________
Telefon: $tel
Mobil: $mobil
Fax: $fax
E-Mail: $email
_________________________________________________
Bestellung:
asdfasdf: $asdf
Informationsmaterial: $infomaterial
Bildschirmschoner CD: $bildschirmschoner
_________________________________________________
Nachricht: $kommentar
_________________________________________________
IP-Adresse: $ip
Browser: $browser"; // Der Hauptteil der E-Mail (Body-Text)
/***************************************
** The code that creates the object and
** sends the email.
***************************************/
if(is_object($smtp = smtp::connect($params)) AND $smtp->send($send_params)){
$target = "../home.php?page=erfolgreich"; // Auf diese Seite wird man weitergeleitet wenn die E-Mail erfolgreich gesendet werden konnte!
header("Location:$target");
exit;
}else{
$target = "../home.php?page=fehler"; // Auf diese Seite wird man weitergeleitet wenn die E-Mail NICHT erfolgreich gesendet werden konnte!
header("Location:$target");
exit;
}
?>![]()
Geändert von Bernhard_at (08.08.2003 um 10:57 Uhr)
Auf dem Win-Server stehen die register_globals auf OFF. Das bedeutet, dass du über die Superglobals ($_POST, $_GET,...) "gehen" musst.
Gruss
Jan
1. Danke für die schnelle Antwort!
2. Kann man die irgendwo aktivieren? Ich hab eh die Möglichkeit zu einer Fernwartung...
Könntest du in der php.ini. Davon rate ich aber ab. Denn das Ding ist schon mit Absicht so eingestellt (Sicherheit).
Da du hier ja nur ein kleines Script hast, wäre es am schlausten, die Variablen einfach anzupassen:
GrussPHP-Code:Kdnr: $_POST['kdnr']
...
Jan
Ok, dann modifiziere ich mal wieder das Script...
DANKE für die Infos!
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\asdf\bestellen\mail.php on line 35
PHP-Code:
<?php
/***************************************
** Include the class. The header() makes
** the output look lovely.
***************************************/
include('class.smtp.inc');
header('Content-Type: text/plain');
/***************************************
** Setup some parameters which will be
** passed to the smtp::connect() call.
***************************************/
$params['host'] = 'asdf'; // The smtp server host/ip
$params['port'] = 25; // The smtp server port
$params['helo'] = exec('asdf'); // What to use when sending the helo command. Typically, your domain/hostname
$params['auth'] = TRUE; // Whether to use basic authentication or not
$params['user'] = 'asdf'; // Username for authentication
$params['pass'] = 'asdf'; // Password for authentication
/***************************************
** These parameters get passed to the
** smtp->send() call.
***************************************/
$ip = $REMOTE_ADDR;
$browser = $HTTP_USER_AGENT;
$send_params['recipients'] = array("asdf"); // Empfänger
$send_params['headers'] = array(
"From: $firma $email", // Headers
"To: asdf", "Subject: Bestellung über die Homepage");
$send_params['from'] = $email; // Absender
$send_params['body'] = "Folgende Person wünscht Kontaktaufnahme:
Kdnr: $_POST['kdnr']
Firma: $_POST['firma']
Ansprechperson: $_POST['ansprechperson']
_________________________________________________
Telefon: $_POST['tel']
Mobil: $_POST['mobil']
Fax: $_POST['fax']
E-Mail: $_POST['email']
_________________________________________________
Bestellung:
asdf: $_POST['asdf']
Informationsmaterial: $_POST['informationsmaterial']
Bildschirmschoner CD: $_POST['bildschirmschoner']
_________________________________________________
Nachricht: $_POST['kommentar']
_________________________________________________
IP-Adresse: $_POST['ip']
Browser: $_POST['browser']"; // Der Hauptteil der E-Mail (Body-Text)
/***************************************
** The code that creates the object and
** sends the email.
***************************************/
if(is_object($smtp = smtp::connect($params)) AND $smtp->send($send_params)){
$target = "../home.php?page=erfolgreich"; // Auf diese Seite wird man weitergeleitet wenn die E-Mail erfolgreich gesendet werden konnte!
header("Location:$target");
exit;
}else{
$target = "../home.php?page=fehler"; // Auf diese Seite wird man weitergeleitet wenn die E-Mail NICHT erfolgreich gesendet werden konnte!
header("Location:$target");
exit;
}
?>
Geändert von Bernhard_at (08.08.2003 um 11:35 Uhr)
aaah!
Das Zeug muss ich ins Formular einbauen, oder? *ggg*
$_POST['kommentar']
öhm... also ich hab das Ding mal eben per Copy'n'Paste bei mir ausgeführt und den include und den Klassenaufruf auskommentiert und ich bekomme keinen Parse-Error.
Das $_POST darf nicht in deine Formulare.
..strange... tritt nur unter Windows auf... hatte es eben auf nem Linux Rechner probiert - da funzts... auf Win hab ich auch die Fehlermeldung...mom
aha...
Ok... du hast 2 Möglichkeiten:
1. Die singlequotes (') aus dem $_POST-Array entfernen -> $_POST[kommentar]
2. Für jede Variable aus der echo-Anweisung "herausgehen" ->
Kdnr: ".$_POST['kdnr']."
Gruss
Jan
OK, der Fehler kommt jetzt nicht mehr...
Jetzt müsste ich das Zeug nur noch abloaden und am IIS testen...
Mal sehen ob's funktioniert.
Danke soweit!
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)