User Login Script Id Problem

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

  • User Login Script Id Problem

    moin

    ich habe eine Frage:

    Ich habe eine einfache User Registrierungseite gemacht,die mit session funktionert.


    hier die Datei reg.html
    PHP-Code:


    <form name="form1" method="post" action="signupck.php">

      <
    p>User id
        
    <input type="text" name="user">
      </
    p>
      <
    p>passss 
        
    <input type="text" name="pass">
      </
    p>
      <
    p>
        <
    input type="submit" name="Submit" value="Abschicken">
      </
    p>
    </
    form
    und die Datei signupck.php

    PHP-Code:
    [list]

    <?
    $dbservertype='mysql';
    $servername='localhost';
    // username and password to log onto db server
    $dbusername='user';
    $dbpassword='user';
    // name of database
    $dbname='db';


    connecttodb($servername,$dbname,$dbusername,$dbpassword);
    function connecttodb($servername,$dbname,$dbuser,$dbpassword)
    {
    global $link;
    $link=mysql_connect ("$servername","$dbuser","$dbpassword");
    if(!$link){die("Could not connect to MySQL");}
    mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
    }

    ?>

    <?


    $user_id=$_POST["user"];
    $user_password=$_POST["pass"];

    $query=mysql_query("insert into member_user(user_id,user_password) VALUES ('$user_id',PASSWORD('$user_password'))");

    echo "<font face='Verdana' size='2' color=green>Welcome, You have successfully signed up<br><br><a href=login.php>Click here to login</a><br></font>";

    ?>[/list]


    Die Datei login.php



    PHP-Code:

    <?
    session_start(); 

    $errorMessage = ''; 
    if (isset($_POST['User']) && isset($_POST['Password'])) { 

        require("library/config.php");
         
        $userId   = $_POST['User']; 
        $password = $_POST['Password']; 
         
      require("library/opendb.php");
        dbconnect();
    $mysql_link = mysql_connect($dbhost, $dbuname, $dbpass);
        $sql = "SELECT user_id 
                FROM member_user 
                WHERE user_id = '$userId' AND user_password = PASSWORD('$password')"; 
         
        $result = mysql_query($sql) or die('Query failed. ' . mysql_error()); 
         
        if (mysql_num_rows($result) == 1) { 
            $_SESSION['user_is_logged_in'] = true; 
            header('Location: main.php'); 
            exit; 
        } else { 
            $errorMessage = 'Sorry, wrong user and-or password'; 
        } } 
    ?>

    Die Datei logout.php

    PHP-Code:

    <?php 
    session_start
    (); 

    if (isset(
    $_SESSION['user_is_logged_in'])) { 
        unset(
    $_SESSION['user_is_logged_in']); 

    header('Location: login.php'); 
    ?>


    Meine Frage ist :


    Wenn sich der Benutzer einloggt er wird zu der Seite
    PHP-Code:
    header('Location: main.php'); 
    weitergeleitet was der Sinn das Login System ist.

    Aber wie kann ich aktuellen Daten von dem Benutzer von dem Datenbank rausholen und in der main.php Seite ausgeben.

    ZB:

    lDu bist eingelogt:

    Dein Name ist : bla bla

    Kennung: pass ........ usw. (Die Datenbak Einträge)


    Ich habe versucht mit : $_POST["user"] und $_GET["user"]; (von reg.html)

    Z.B. $user_id=$_POST["user"];


    Aber das ging nicht weil ich die Werten von der Postform in der Datei reg.html Sind,die mit signupck.php verknüft ist.

    Wie soll ich es machen wenn ich nicht da zugreiffen kann.

    Wenn ich reg.html include geht alles durcheinander weil die Methode wird doppelt ausgeführt.


    Bitte um Hilfe


    Danke

  • #2
    Ich habe mir deinen Code nur flüchtig angesehen.

    Zu deiner primären Frage. Der Sinn ist es, bei einem erfolgreichen Login die SESSION_ID in die Datenbank einzuspeisen. Du benötigst ein Datenbankdesign, welches dir erlaubt anhand der SESSION den User zu identifizieren.

    PS: Schau mal unter Tutorials das Beispiel von MrHappiness an. Das sollte das Prinzip verdeutlichen.

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #3


      login.php
      PHP-Code:
      if (mysql_num_rows($result) == 1
      {        
       
      $_SESSION['user_is_logged_in'] = true
       
      $_SESSION['userID'] = $userID;

       
      header('Location: main.php'); 
       exit; 

      main.php
      PHP-Code:
      session_start();

      echo 
      $_SESSION["userID"]; 
      gruss Chris

      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

      Kommentar


      • #4
        Original geschrieben von xManUx
        Der Sinn ist es, bei einem erfolgreichen Login die SESSION_ID in die Datenbank einzuspeisen.
        Warum wollen eigentlich so viele Leute hier immer die Session-ID in der Datenbank ablegen?
        Ich verstehe nicht, was der Käse soll - an so einer Stelle m.E. absolut überflüssig.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          hhcm Danke dür den Vorlschlag aber es geht nicht so.

          wenn ich

          ############
          <?
          session_start();
          echo $_SESSION["userID"];
          ?>
          ############

          in der main.php seite einfüge kommte folgedne Fehlermeldung raus.

          Notice: A session had already been started - ignoring session_start() in c:\WAMP\www\user\.......\main02.php
          Notice: Undefined index: userID in c:\WAMP\.........

          Kommentar


          • #6
            Zu:wahsaga

            Ok wenn nicht über SESSION

            Was schlägst du vor damit ich das Problem lösen kann.

            grüss

            Kommentar


            • #7
              Vielleicht postest du mal deinen Aktuellen Quellcode (bitte nicht wieder alles)

              main.php sagtest du in deinem letzen Post, die Fehlermeldung (welche übrigens keine ist) sagt aus das in datei main02.php bereits eine Session gestartet wurde..

              Was weiss ich wie du dir deinen Code zusammenwürfelst.


              header('Location: main.php');

              Wenn du in der Datei main.php BEVOR irgendetwas anderes kommt ein session_start() einfügst sollte das funktionieren.
              EVTL mit require oder include eingebundene Dateien brauchen kein session_start()....
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #8
                Die Datai main.php

                PHP-Code:

                <?php 
                require("protect.php"); 
                include(
                'header.php');
                ?> 

                <p> <strong>Benutzerdaten</strong></p> 



                <?
                session_start(); 
                echo $_SESSION["userID"]; 
                ?>



                ?>

                die protect.php datei


                PHP-Code:

                <?
                session_start(); 
                if (!isset($_SESSION['user_is_logged_in']) || $_SESSION['user_is_logged_in'] !== true) { 
                    header('Location: login.php'); 
                    exit; 
                } ?>

                und in der Datei header.php stehen nun 2 links mehr nicht.

                Grüss

                Kommentar


                • #9
                  Wie ich schon sagte du kannst dir bei includeten dateien das session_start sparen...

                  MUSS die datei protect.php wirklich sein?

                  Die 2 zeilen kannst du auch in deine main packen...

                  PHP-Code:
                  <?php
                  session_start
                  (); 
                  if (!isset(
                  $_SESSION['user_is_logged_in']) || $_SESSION['user_is_logged_in'] !== true) {     header('Location: login.php'); 
                      exit; 

                  include(
                  'header.php'); // Da wird etwas drinstehen was nicht funktionieren kann
                  ?> <p> <strong>Benutzerdaten</strong></p> <?
                  echo $_SESSION["userID"]; 
                  ?>
                  gruss Chris

                  [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                  Kommentar


                  • #10
                    an HHCM

                    ok soweit so gut aber

                    Das problem ist :

                    Notice: Undefined index: userID in c:\WAMP\www\user\\temp\main02.php on line 5

                    Die Werten der SESSION
                    PHP-Code:
                     echo $_SESSION["userID"]; 
                    können nicht geholt werden.

                    Wie soll ich SESSION["userID"] definieren damit sie den Wert von der Postform in "reg.html" hat.

                    Kommentar


                    • #11
                      Und schon wieder main02.php

                      Was erzählst du denn hier immer von main.php... Ich sehe nirgens main02 !!!!!!!!!!!!
                      gruss Chris

                      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                      Kommentar


                      • #12
                        1.) solltest du oben mal den code umbrechen
                        2.) vielleicht hilft dir das:
                        PHP-Code:
                        session_start();
                        $_SESSION["user_id"] = $die_id_aus_der_datenbank 
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Kommentar


                        • #13
                          Zu HHCM

                          Die main.php seite enhät nun die Code was du mir gegeben hast


                          PHP-Code:


                          <?php
                          session_start
                          (); 
                          if (!isset(
                          $_SESSION['user_is_logged_in']) || $_SESSION['user_is_logged_in'] !== true) {     header('Location: login.php'); 
                              exit; 

                          include(
                          'header.php'); // Da wird etwas drinstehen was nicht funktionieren kann
                          ?> <p> <strong>Benutzerdaten</strong></p> <?
                          echo $_SESSION["userID"]; 
                          ?>
                          Jetzt kommt keine Fehlermeldung aber

                          wenn ich echo $_SESSION["userID"]; kommt komischerweise nichts raus ??

                          weiss nicht warum
                          Zuletzt geändert von shekky1; 05.11.2005, 18:08.

                          Kommentar


                          • #14
                            zu :tontechniker

                            Danke habe ich schon hinbekommen
                            Zuletzt geändert von shekky1; 05.11.2005, 21:42.

                            Kommentar

                            Lädt...
                            X