Problem mit $HTTP_POST_VARS nach Serverumzug
Elvis
- php
Ich habe ein Script für den Mailversand. Benutzt wird eine datei namens phpeasymail.lib. Leider bekomme ich nach dem Serverumzug einen Fehler und der Versand geht ohne Feldinhalt ungefähr so: "%Feld%". Register Globals ist an.
Folgene Fehler tauchen auf:
Warning: reset() [function.reset]: Passed variable is not an array or object in /is/htdocs/wp10592299_60PZ4VU5FX/www.xxx.de/lib/common.lib on line 131
Warning: Variable passed to each() is not an array or object in /is/htdocs/wp10592299_60PZ4VU5FX/www.xxx.de/lib/common.lib on line 135
Warning: reset() [function.reset]: Passed variable is not an array or object in /is/htdocs/wp10592299_60PZ4VU5FX/www.xxx.de/lib/common.lib on line 131
Warning: Variable passed to each() is not an array or object in /is/htdocs/wp10592299_60PZ4VU5FX/www.xxx.de/lib/common.lib on line 135
Fehlerhafte Position:
// Function replaces variables into templates
function build_body ($bbody = "") {
global $HTTP_POST_VARS;
reset($HTTP_POST_VARS); //Zeile 131
if (!empty($bbody)) {
// Fill in variables into the template
while (list($header, $value) = each($HTTP_POST_VARS)) { // Zeile 135
$bbody = ereg_replace("%".$header."%", $value, $bbody);
} // endwhile
} else {
// Simply add variables line by line
$bbody = "";
sort($HTTP_POST_VARS);
while (list($header, $value) = each($HTTP_POST_VARS)) {
$bbody = $bbody."\n$header: $value";
} // endwhile
} // endif
return $bbody;
} // endfunc
Weis jemand des Rätsels Lösung? Ich denke es hat was mit dem Server zu tun.
Hi,
Ich habe ein Script für den Mailversand. Benutzt wird eine datei namens phpeasymail.lib. Leider bekomme ich nach dem Serverumzug einen Fehler und der Versand geht ohne Feldinhalt ungefähr so: "%Feld%". Register Globals ist an.
Das solltest Du ändern. Du mußt das Script sowieso anfassen.
global $HTTP_POST_VARS;
HTTP_POST_VARS ist m.W. seit längerem deprecated und in den neuesten PHP-Versionen weg.
$_POST existiert.
Weis jemand des Rätsels Lösung? Ich denke es hat was mit dem Server zu tun.
Nur indirekt. Eher damit, daß Dein Script ziemlich veraltet ist.
cu,
Andreas
HTTP_POST_VARS ist m.W. seit längerem deprecated
ereg_replace() it ebenfalls deprecated.
Das gesamte Script sieht etwas antik aus.
Hi!
Folgene Fehler tauchen auf:
Warning: reset() [function.reset]: Passed variable is not an array or object in
Warning: Variable passed to each() is not an array or object in
Weis jemand des Rätsels Lösung? Ich denke es hat was mit dem Server zu tun.
Du siehst die Ursache, wenn du das error_reporting auf E_ALL stellst. Die Variablen $HTTP_*_VARS existieren per Default-Konfiguration nicht mehr, weil sie abgeschafft werden sollen. Ersatz ist bereits seit langer Zeit vorhanden: $_*
Als Workaround kannst du $HTTP_POST_VARS = $_POST; verwenden, aber besser ist es wirklich, das Script grundlegend zu modernisieren. Neben den auch schon genannten ereg_*-Funktionen sieht while(list(..) = each(..)) auch sehr nach PHP 3 aus. Seit PHP 4 (aktuell ist schon länger die 5er Reihe) kann man foreach verwenden.
Lo!
Mahlzeit dedlfix,
Neben den auch schon genannten ereg_*-Funktionen sieht while(list(..) = each(..)) auch sehr nach PHP 3 aus.
<schwelg in="erinnerungen">Hachja, *das* waren noch Zeiten ...</schwelg>
MfG,
EKKi