![]() |
[PHP] $HTTP_SERVER_VARS nicht gefunden
Hallo PHP Spezialisten,
im Gästebuch meiner Homepage greife ich in PHP auf den Array HTTP_SERVER_VARS zu. Das hat bisher auch problemlos funktioniert, aber jetzt bekomme ich die Fehlermeldung: Zitat:
|
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Unterschiedliche PHP-Version vlt.? Mal $_SERVER probiert?
|
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Ja, je nach PHP-Konfiguration könnte es sein, dass die alten, "langen" Array-Namen nicht mehr unterstützt werden. Aus $HTTP_POST_VARS wurde $_POST, aus $HTTP_GET_VARS wurde $_GET und bei den Server-Vars ist es nicht anders. Du kannst diese Einstellung ermitteln, indem Du Dir mal phpinfo() anzeigen lässt und dort im Abschnitt "Configuration" nach "register_long_arrays" schaust.
|
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Hatte da mal was gelesen (wenn ich mich jetzt nicht arg täusche), dass $HTTP_X_VARS eh als deprecated galten und bald rausfliegen sollten. Vielleicht hat dein Host ja die PHP-Version aktualisiert, wo das eben der Fall ist.
|
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Hallo,
danke erstmal, das hat mir schon weitergeholfen. Ich habe jetzt $HTTP_SERVER_VARS durch $_SERVER ersetzt und das funktioniert. Zusätzlich kann ich aber auch nicht mehr auf die Formularvariablen zugreifen. So kennt der PHP Parser offensichtlich $name, $submit und ähnliches nicht mehr. Ich habe dazu gelesen, dass man, wiederum abhängig von den Einstellungen in der php.ini nicht direkt auf die Variablen zugreifen kann, und stattdessen mit (in der Kurzform) $_GET darauf zugreifen soll.
Delphi-Quellcode:
funktioniert aber nicht. Der Parser kennt den Index "name" nicht. :gruebel:
$_GET["name"]
|
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
:shock:
Hui, das heißt, bei Deiner bisherigen PHP-Installation war das Flag "register_globals" auf 'on' gesetzt? Das gilt als großes Sicherheitsrisiko und wurde in neueren PHP-Installationen per Standard deaktiviert. Deine Formulardaten kommen vermutlich via HTTP-POST, das heißt, Du wirst Deine Daten wohl unter $_POST['name'] finden. Sollte es Dir egal sein, ob POST oder GET, dann kannst Du auch einfach $_REQUEST nehmen, da ist alles drin (... wie in Opas alter Cordhose *g*). Wenn ich eine Variable suche, dann lasse ich mir die Daten gern mit
Code:
ausgeben. Irgendwo finden sie sich dann immer wieder an. :-)
echo "<pre>", print_r($_POST), "</pre>";
|
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Wenn die Daten per Post übetragen werden, muss es
Code:
heißen
$_POST["name"]
alternativ funktioniert sowohl für per POST als auch per GET übertragene Variablen
Code:
$_REQUEST["name"]
|
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Übergibst Du auch mit get oder vielleicht doch mit post?
[edit] Mist, zu langsam :? [/edit] |
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Hhhm. Also ich übergebe die Daten mit POST.
ABER das Script ist so aufgebaut, dass zunächst die PHP Routinen kommen, die das Formular auswerten. Dann kommt das Formular. Also etwa so:
Code:
Das print_r habe ich mal wie von Daniel empfohlen eingefügt und es gibt mir einen leeren Array zurück. Ist ja uch irgendwie klar, weil das Formular ja noch gar nicht erstellt wurde..
<?php
$fehler= 0; echo "<pre>", print_r($_REQUEST), "</pre>"; $fehlermeldungStart = '<table width="600" border="0" bgcolor="#000000" cellpadding="5" cellspacing="1" align="center">'."\n"; $fehlermeldung = "<tr>\n<td bgcolor=\"#227CAC\" colspan=\"2\" align=\"center\"><span class=\"header\">Oooops! Es traten Fehler auf!</span></td>\n</tr>\n"; $fehlermeldungEnde = "<tr>\n<td bgcolor=\"#227CAC\" colspan=\"2\" align=\"center\">Klicke bitte auf <a href=\"javascript:history.back()\">Zurück</a> und ändere Deine Angaben!</td>\n</tr>\n"; $fehlermeldungEnde .= "</table>\n"; if($_REQUEST["name"] == "") { $fehler = 1; $fehlermeldung .= "<tr>\n<td width=\"190\" bgcolor=\"#227CAC\">Dein Name:</td>\n"; $fehlermeldung .= "<td width=\"410\" bgcolor=\"#dedede\"><span class=\"fehler\">Du hast noch keinen Namen eingegeben!</span></td>\n</tr>\n"; } ... Denn erst danach kommt:
Code:
vorher hieß es nur
<?php
if(!$_REQUEST["submit"]) { ?> <form action="eintragen.php" method="post"> <table width="700" border="0" bgcolor="#000000" cellpadding="5" cellspacing="1" align="center"> <tr> ... if (!$submit) aber die Variable findet er auch nicht. |
Re: [PHP] $HTTP_SERVER_VARS nicht gefunden
Lass dir doch mal $_REQUEST ausgeben.
Code:
echo "<pre>"; print_r ($_REQUEST); echo "</pre>";
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz