variable übergeben wenn globals=off

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • variable übergeben wenn globals=off

    hallo - leider kann ich die variable $user nicht von login.php nach test.php übermitteln. globals ist off und ich benötige die variable $user in den meisten anderen scripten auch, doch ich bin auch nach langem lesen und probieren zu keinem resultat gekommen. bitte helft mir!

    login.php

    ausser der ganzen passwortabfrage mit sql u.s.w. starte ich schliesslich die session und überprüfe testhalber mit echo $user; ob der username richtig ausgegeben wird, was auch gelingt. Schliesslich erfolgt die weiterleitung auf test.php!

    <?
    session_start();
    $user = $_POST['user'];
    $password = $_POST['password'];
    $hostname = $_SERVER['HTTP_HOST'];
    $path = dirname($_SERVER['PHP_SELF']);
    $_SESSION['angemeldet'] = true;
    echo $user;
    ?>
    <p><a href="./test.php" target="_top">Sie werden weitergeleitet</a></p>


    test.php

    in test.php möchte ich nun prüfen, ob und welcher user angemeldet ist und anschliessend den usernamen $user anzeigen, was leider nicht gelingt:

    <?
    session_start();
    $hostname = $_SERVER['HTTP_HOST'];
    $path = dirname($_SERVER['PHP_SELF']);
    $user = $HTTP_POST_VARS["user"];
    $password = $HTTP_POST_VARS["password"];
    if (!isset($_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
    die ("Sie müssen sich einloggen!");
    exit;
    }
    echo "$user";
    ?>

  • #2
    wenn Du die Variable $user mit session_register anmeldest, dann steht sie Dir doch auf jeder Seite in der session_start steht zur Verfügung.

    Kommentar


    • #3
      ich seh gerade, daß Du $user ja $POST zugeordnet hast, allerdings hast Du nicht durchgehend die gleiche Schreibweise ($POST) - daran wirds wohl liegen.

      ähm - und was sind das für Unterstriche $_ POST ?
      Zuletzt geändert von Koala; 21.01.2006, 23:23.

      Kommentar


      • #4
        Danke für die rasche Antwort.

        session_register funktioniert nur mit globals = on

        sehe leider die verschiedenen schreibweisen nicht! *augenreib*

        Kommentar


        • #5
          Original geschrieben von Koala

          ähm - und was sind das für Unterstriche $_ POST ?
          ich würde sagen, du hast Nachholbedarf, was PHP angeht, denn:

          $HTTP_POST_VARS -> alt
          $_POST -> neu und global, d.h. überall im Script verfügbar

          Kommentar


          • #6
            @sunflower_alida, du kannst Daten aus $_POST nur holen, wenn sie auch in einer form sind. In deinem Fall aber nicht.

            Kommentar


            • #7
              Nabend,

              Session_register wird nicht mehr benutzt.
              Du brauchst einfach nur deine Variable ins Session-Array zu schreiben.
              $_SESSION['user'] = $user;

              Gruß Thomas

              Kommentar


              • #8
                und wieso hast Du hier doppelte Tüttelchen????

                $user = $HTTP_POST_VARS["user"];

                besser

                $user = $_POST['user'];

                Kommentar


                • #9
                  auch hier doppelte:

                  $password = $HTTP_POST_VARS["password"];



                  muß so sein:

                  $password = $_POST['password'];

                  Kommentar


                  • #10
                    aktueller stand: (funktioniert nicht!) - so nebenbei $user steht natürlich auch in der form im login.php...


                    login.php

                    session_start();
                    $user = $_POST['user'];
                    $password = $_POST['password'];
                    $hostname = $_SERVER['HTTP_HOST'];
                    $path = dirname($_SERVER['PHP_SELF']);
                    $_SESSION['user'] = $user;
                    echo $user;
                    ?>
                    <p><a href="./test.php" target="_top">Sie werden weitergeleitet</a></p>


                    test.php

                    <?
                    session_start();
                    $hostname = $_SERVER['HTTP_HOST'];
                    $path = dirname($_SERVER['PHP_SELF']);
                    $user = $_POST["user"];
                    $password = $_POST["password"];
                    if (!isset($_SESSION['user']) || !$_SESSION['user']) {
                    die ("Sie müssen sich einloggen!");
                    exit;
                    }
                    echo "Hallo ";
                    echo "$user";
                    ?>

                    Kommentar


                    • #11
                      ist immer noch falsch:

                      $user = $_POST["user"];
                      $password = $_POST["password"];

                      keine doppelten Anführungszeichen!!

                      Kommentar


                      • #12
                        ...leider wird mir auch mit den " (doppelten gänsefüsschen) in test.php kein $user ausgegeben.

                        Kommentar


                        • #13
                          das hier kann wieder raus, macht ja keinen Sinn:

                          $_SESSION['user'] = $user;

                          und den Link kannst auch vergessen, Du schickst die Daten ja per Formular weiter.

                          Kommentar


                          • #14
                            Du sollsr die doppelten WEG machen, nicht reinschreiben

                            Kommentar


                            • #15
                              Original geschrieben von asp2php
                              @sunflower_alida, du kannst Daten aus $_POST nur holen, wenn sie auch in einer form sind. In deinem Fall aber nicht.
                              gelesen und verstanden?
                              wenn du den user so weiterleitest
                              PHP-Code:
                              <p><a href="./test.php" target="_top">Sie werden weitergeleitet</a></p
                              wo bitte wird da ein form gePOSTet?

                              rischtisch ... garnicht. also entweder den user an den aufruf anhängen => test.php?user=$_POST['user'] und in test.php mit $_GET weiterarbeiten oder das ganze session-basiert machen (<= besser ist das)
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X