Server übergibt keine ? Anhänge

Bash, Shell, PHP, Python, Perl, CGI
schani
Posts: 75
Joined: 2003-05-12 13:36

Server übergibt keine ? Anhänge

Post by schani »

Woran kann es liegen das mein Apache 1.3 keine PHP Anhänge weitergibt.
Von einem Formaular aus gebe ich eine UserID und ein Passwort weiter.

Das geht als Anfrage an das login.inc.php4 File raus.
http://www.domain.de/login.inc.php4?name=***&passwort=***

Aber alles nach dem ? kommt nicht an. Habe ich da was falsch in der httpd.conf ? PHP Scripte werden richtig ausgeführt. Bis auf Sessions die ja die Session ID nach dem ? übergeben.

Besten Dank für einen Tipp

Christian
mstuebner
Posts: 184
Joined: 2002-06-19 00:05
Location: 84424 Isen

Re: Server übergibt keine ? Anhänge

Post by mstuebner »

schani wrote:Das geht als Anfrage an das login.inc.php4 File raus.
http://www.domain.de/login.inc.php4?name=***&passwort=***

Aber alles nach dem ? kommt nicht an. Habe ich da was falsch in der httpd.conf ? PHP Scripte werden richtig ausgeführt. Bis auf Sessions die ja die Session ID nach dem ? übergeben.
Was heisst "kommt nicht an"? Werden sie nicht übergeben (angehängt) oder im empfangenden Skript übernommen? Wie sendest Du die Daten, POST oder GET?
steffz
Posts: 84
Joined: 2003-04-13 13:07
Location: Hamburg

Re: Server übergibt keine ? Anhänge

Post by steffz »

Möglicherweise ist das Script auch einfach nur schlecht programmiert. echo $name wird mit PHP-Versionen >= 4.2 nicht mehr ohne weiteres gehen. Versuch mal $_POST[name].
schani
Posts: 75
Joined: 2003-05-12 13:36

Re: Server übergibt keine ? Anhänge

Post by schani »

Ich hatte die Ganze Domain auf einem Server mit PHP 4.2.3 laufen und bin jetzt auf einen Server mit 4.2.2 umgezogen.


> Was heisst "kommt nicht an"? Werden sie nicht übergeben (angehängt) oder im empfangenden Skript übernommen?

Ob sie nicht angehängt werden kann ich nicht sagen. Aber auch wenn ich das annehmende PHP Script so Aufrufe:

login.inc.php4?name=***&passwort=***

und lasse mir dann die Variablen im login.inc.php4 so anzeigen:

print $name;
print $passwort;

wird nichts ausgegeben.


>echo $name wird mit PHP-Versionen >= 4.2 nicht mehr ohne weiteres gehen

Warum sollte das nicht gehen ? Habs gerade nochmal überprüft, auf dem alten Server unter PHP 4.2.3 geht das schon.

Das Formular funktioniert.
Es kann eigentlich nur an einer Einstellung am neuen Server liegen.

Christian
Last edited by schani on 2003-06-03 16:05, edited 1 time in total.
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz

Re: Server übergibt keine ? Anhänge

Post by static »

Hi,
die Einstellung "register_globals" bestimmt das. Ist das auf "on" kannst du mit $name und $passwort arbeiten - was aber nicht mehr empfohlen wird und AFAIK eigentlich auch standardmässig auf "off" steht.
Daher: alle Variablen, die über URL gereicht werden mit $_GET['variable'] ansprechen und Daten aus einem Formular je nach method="POST" oder method="GET" entsprechend mit $_POST['variable'] bzw $_GET['variable'] aufrufen.

so long
static
schani
Posts: 75
Joined: 2003-05-12 13:36

Re: Server übergibt keine ? Anhänge

Post by schani »

Im httpd.conf oder ?
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz

Re: Server übergibt keine ? Anhänge

Post by static »

nee, in der php.ini
Aber naja - ich würde eher das Script umschreiben...

so long
static
gamecrash
Posts: 339
Joined: 2002-05-27 10:52

Re: Server übergibt keine ? Anhänge

Post by gamecrash »

Du tust Dir nen Gefallen, wenn Du das Script umschreibst und nicht die php.ini änderst... weil register_globals auf on ist bei schlechtem Programmierstiel eine potentielle Sicherheitslücke... und da ausserdem immer mehr Server PHP aktualisieren, wirst Du über Kurz oder Lang Dein Script sonst auf keinem anderen Server mehr zum Laufen bringen...
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin

Re: Server übergibt keine ? Anhänge

Post by [tom] »

mstuebner wrote: Wie sendest Du die Daten, POST oder GET?
Da sie in der URL übergeben werden: GET.

Du mußt nicht das ganze Script umschreiben. Einfach am Anfang ein

Code: Select all

$name = $_GET['name'];
$passwort = $_GET['passwort'];
Allerdings ist es nicht so die gute Idee, Passwörter so zu übermitteln.

[TOM]