Variablenübergab funzt nicht!

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

  • Variablenübergab funzt nicht!

    Hi Leute,
    ich glaub die Lösung ist relativ simpel, aber ich komm nicht drauf. Ich möchte nachdem Login der Username als Variable an Main.php übergeben. ...wo liegt der Wurm?Thx

    Login.php
    PHP-Code:
    <?php
    $username 
    $_POST["username"];
    $password $_POST["password"];
    if

    (
    $username=="ww" AND $password=="123")
    OR 
    (
    $username=="ss" AND $password=="345")
     
     
    )
     
    {
    echo
    '
    <form action=Main.php method=post>
    <input type="hidden" name='
    .$username.'></form>
    <META HTTP-EQUIV=REFRESH CONTENT="2; URL=Main.php">'
    ;
    }
    else
    {
    echo
    '<META HTTP-EQUIV=REFRESH CONTENT="0; URL=wrong.php">'
    ;}
    ?>
    Main.php
    PHP-Code:
    <? echo $_POST["username"];?>

  • #2
    Du machst eine einfache Weiterleitung. Da werden keine Formulardaten übermittelt.
    Möglichkeit 1: hängt den Usernamen als Parameter an die URL an. Aber! Ganz böse.
    Möglichkeit 2: Arbeite mit Sessions. Das ist der richtige Weg.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Dein HTML-Code ist fehlerhaft.

      <meta> Tags gehören übrigens in den HTML-Header.

      Außerdem musst du HTML-Attribute in Anführungszeichen schreiben.

      Das sind aber HTML-Grundlagen, die du kennen solltest, bevor du anfängst PHP zu programmieren.

      Kommentar


      • #4
        Ich hab jetzt die Sache mit Sessions angefangen, aber der gibt mir trotzdem noch nicht den username aus über post..kann jdm helfen?danke

        PHP-Code:
        <?php
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        session_start();
        $username $_POST['username'];
        $passwort $_POST['passwort'];
        $hostname $_SERVER['HTTP_HOST'];
        $path dirname($_SERVER['PHP_SELF']);
        // Benutzername und Passwort werden überprüft
        if ($username == 'benjamin' && $passwort == 'geheim') {
        $_SESSION['angemeldet'] = true;
        // Weiterleitung zur geschützten Startseite
        if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (
        php_sapi_name() == 'cgi') {
        header('Status: 303 See Other');
        }
        else {
        header('HTTP/1.1 303 See Other');
        }
        }
        header('Location: http://'.$hostname.($path == '/' '' $path).'/MAIN.php');
        exit;
        }
        }
        ?>
        MAIN.PHP
        PHP-Code:
        <?php
        session_start
        ();
        $hostname $_SERVER['HTTP_HOST'];
        $path dirname($_SERVER['PHP_SELF']);
        if (!isset(
        $_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {

        $username $_POST['username'];

        header('Location: http://'.$hostname.($path == '/' '' $path).'/MAIN.php');
        exit;
        }
        ?>
        <?
        echo $username;
        ?>

        Kommentar


        • #5
          Zitat von tinasharma18hh Beitrag anzeigen
          Ich hab jetzt die Sache mit Sessions angefangen, aber der gibt mir trotzdem noch nicht den username aus über post..kann jdm helfen?
          PHP: Registrierung einer Variablen mit $_SESSION. - Manual
          Ich denke, dass Du Dich in das Thema Sessions ersteinmal einlesen solltest. Dein Codebeispiel macht in Bezug auf Sessions mal so gar keinen Sinn.
          MM Newmedia | MeinBlog

          Kommentar


          • #6
            ich möchte einfach nur den Usernam aus dem Login an die Main.php geben. Kann mir jdm bitte einen Tipp geben über den Session Code?
            Würde extrem dankbar sein.
            Danke

            Kommentar


            • #7
              Das ist tinnef.
              PHP-Code:
              $_SESSION['angemeldet'] = true
              mach das so:
              PHP-Code:
              $_SESSION['user'] = $_POST['username']; 
              und in der Main.php machst du dann mal ein
              PHP-Code:
              print_r($_SESSION); 
              Außerdem ist diese ganze Weiterleitungsorgie überflüssig wie ein Kropf.

              Peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                es geht leider so auch nicht:???ich brech gleich zusammen

                Index.php
                PHP-Code:
                <?php
                if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                session_start();
                $username $_POST['username'];
                $passwort $_POST['passwort'];
                $hostname $_SERVER['HTTP_HOST'];
                $path dirname($_SERVER['PHP_SELF']);
                // Benutzername und Passwort werden überprüft
                if ($username == 'benjamin' && $passwort == 'geheim') {
                $_SESSION['user'] = $_POST['username']; 
                // Weiterleitung zur geschützten Startseite
                if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
                if (
                php_sapi_name() == 'cgi') {
                header('Status: 303 See Other');
                }
                else {
                header('HTTP/1.1 303 See Other');
                }
                }
                header('Location: http://'.$hostname.($path == '/' '' $path).'/Main.php');
                exit;
                }
                }
                ?>
                Main.php
                PHP-Code:
                <?php
                session_start
                ();
                $hostname $_SERVER['HTTP_HOST'];
                $path dirname($_SERVER['PHP_SELF']);
                if (!isset(
                $_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {

                $username $_POST['username'];

                header('Location: http://'.$hostname.($path == '/' '' $path).'/Main.php');
                exit;
                }
                ?>
                <? print_r($_SESSION); ?>
                Bitte bitte helft mir weiter (

                Kommentar


                • #9
                  Wie wäre es mal, wenn du ein wenig mitdenkst? Dann wirst du sehen, dass in der Main.php kein $_SESSION['angemeldet'] existiert. Du musst auf $_SESSION['user'] prüfen. Also pack das print_r direkt unter session_start(): und kommentier die Weiterleitung aus. Dann siehst auch, was du in der Session hast. Und das mit dem $_POST in der Main.php ist sowieso völlig sinnfrei. Da gibt es keine Post-Werte!

                  Peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Schon mal die links angeschaut zu Sessions?

                    PHP: Sessions - Manual
                    PHP: session_start - Manual

                    schreibt bei der index.php das session_start(); in die 1. Zeile und sag bitte, genau, was nicht geht, oder ob es Fehler gibt, wenn ja welche usw.! Wofür hast Du das POST in der main.php??

                    Streuner
                    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                    Kommentar


                    • #11
                      ok also es geht fast..das problem ist jetzt nur noch die ausgabe. ich habs mit echo und auch print versuch, aber kommt nix..

                      PHP-Code:
                      <?php
                      session_start
                      ();
                      print_r($_SESSION); 
                      $hostname $_SERVER['HTTP_HOST'];
                      $path dirname($_SERVER['PHP_SELF']);
                      if (!isset(
                      $_SESSION['user']) || !$_SESSION['user']) {
                      exit;
                      }
                      ?>
                      PHP-Code:
                      <? print_r($_SESSION); ?>
                      es tut mir so leid, wenn ich mich "anstelle"
                      Ich zieh mir auch am We mal das Manual rein

                      Soll ich die Ausgabe anders formulieren?LG

                      Kommentar


                      • #12
                        das problem ist jetzt nur noch die ausgabe
                        Was für eine Ausgabe?

                        Peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Zitat von Kropff Beitrag anzeigen
                          Was für eine Ausgabe?

                          Peter
                          Ich möchte nur den Username ausgeben was da jetzt steht ist:
                          Array ( [angemeldet] => 1 [user] => Peter)

                          aber ich will 'Peter' ausgeben..hattes es ja mit
                          PHP-Code:
                          <? print_r($_SESSION); ?>
                          [COLOR=#ff0000][COLOR=#ff0000]versucht ...
                          [/COLOR]
                          [/COLOR]

                          Kommentar


                          • #14
                            Du schaust dir jetz sofort die Grundlagen von assoziativen Arrays an. Bei Sessions funktioniert das genau so. Und bei Post- und Get-Werten ebenso!

                            Peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar

                            Lädt...
                            X