Elvis: Problem mit $HTTP_POST_VARS nach Serverumzug

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.

  1. 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

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. HTTP_POST_VARS ist m.W. seit längerem deprecated

      ereg_replace() it ebenfalls deprecated.

      Das gesamte Script sieht etwas antik aus.

  2. 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!

    1. 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

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|