Alex: Parameterübergabe im Link funzt net

Hallo Leute,

hab da ein Uni-Projekt abzugeben und folgendes Problem:

-------------------------
echo <<<MENU
    ....
    <a href="logged_user.php?userstatus=12">Film suchen</a>
    ....
MENU;
----------------------------

An dieser Stelle verlinke ich auf die selbe Seite wieder ändere dabei aber $userstatus
Bei mir auf dem Rechner übergibt der Link ganz lieb seine Variable und der Status wechselt von was auch immer zu 10. Ich verwende das relativ häufig und fange $userstaus dann in if-Anweisungen auf.

Jetzt hab ich die php-Dateien auf den Uni-Rechner gepackt und will da fröhlich testen und da bekommt keine einzige der Variablen (manchmal hängen noch IDs etc mit & dran) ihren Wert und sind demnach alle 0. Und wenn Userstatus 0 ist wird ausgeloggt. Sehr unpraktisch. :)

Liegt das evtl. an irgend einer komischen PHP-Version auf dem Server oder an mir bzw. meinem Code?
Ich hab gesehen, das andere Projekte auch mit Parameterübergabe im Link arbeiten, da scheint es zu laufen.

Wäre für schnelle Hilfe dankbar.
Die URL-führt zu meinem Projekt auf dem Uni-Rechner.
http://www-wbs.upb.de/sksp/sksp_149/start.php
Testlogin: hs PW:hs
MfG
Alex

  1. Hallo,

    kurze Frage: Hast du auf deinem Rechner vielleicht _noch_ REGISTER_GLOBALS an, was aktuelle PHP-Versionen nicht mehr haben (Register globals sorgt - kurz gesagt - dafür, dass z.B. URL-Variablen direkt in PHP-Variablen übernommen werden.)
    Wenn dem so wäre, dann würde auf deinem System aus userstatus=12 natürlich direkt ein
    $userstatus = 12
    ohne, dass du was machen musst.
    Kommst du jetzt aber in ein REGISTER_GLOBALS=off, dann passiert genau das nicht.
    Hier brauchst du dann, je nach Versand-Methode, ein _manuelles_
    $userstatus = $_GET['userstatus'];
    $userstatus = $_POST['userstatus'];

    MfG
    Rouven

    --

    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Hallo,

    logged_user.php?userstatus=12

    => Der Wert steht in aktuellen PHP-Versionen in:
    $_GET['userstatus']
    und
    $_REQUEST['userstatus']

    In aelteren Versionen musste man schreiben:
    $HTTP_GET_VARS['userstatus']

    Und nur, wenn register_globals=on ist, steht der
    Wert auch in $userstatus.

    Darauf kann man sich aber - wie Du siehst - nicht verlassen.
    Programmiere sauber und zeitgemaess - mit $_GET.

    Liegt das evtl. an irgend einer komischen PHP-Version auf dem Server oder an mir bzw. meinem Code?

    Welche Version dort laeuft und wie sie konfiguriert ist,
    siehst Du, wenn Du die Funktion phpinfo() mal ihr
    geballtes Wissen ausspucken laesst...

    Ich hab gesehen, das andere Projekte auch mit Parameterübergabe im Link arbeiten, da scheint es zu laufen.

    Dann haben diese Jungs bessere Quellen.
    Oder besser aufgepasst ;-)

    Dir empfehle ich zur Lektuere:
    http://www.dclp-faq.de/ch/ch-webvariablen.html
    http://www.php.net/manual/de/language.variables.predefined.php
    http://www.php.net/manual/de/reserved.variables.php

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
  3. Besten Dank,

    werd mir den Rat zu Herzen nehmen :)
    Ist jetzt ganz schön was aufzuräumen und in 10 Stunden ist Abgabe.

    MfG
    Alex