P.H.P: PHP username abrufen

hey leute,
ich habe ein problem. Und zwar:
Ich habe ein LoginScript geschrieben.
Natürlich wird dabei auch eine SESSION erstellt.
Wie kann ich dann auf einer anderen Seite den Usernamen wieder von der DB abrufen?

  1. Wie kann ich dann auf einer anderen Seite den Usernamen wieder von der DB abrufen?

    Indem du ein Query an die Datenbank absetzt und die Rückgabe auswertest

    1. Kannst du mir da Code posten pls? ;)

      1. Tach!

        Kannst du mir da Code posten pls? ;)

        Das wird er nicht machen. Du hast dein Problem zu ungenau beschrieben. Wenn du bereits eine Session eröffnet hast, kannst du darin den vom Anwender mitgeteilten Namen ablegen und in weiteren Scriptaufrufen, die dieselbe Session öffnen, den Namen wieder auslesen. Wie das mit der Session geht, ist in tausend Tutorials beschrieben. Wenn du dir in der Session nur die ID des Benutzers gemerkt hast, dann mach damit eine Datenbankabfrage, steht auch in den Tutorials beschrieben, wie sowas prinzipiell geht. Und wenn du dir gar nichts gemerkt hast, kommst du an den Namen gar nicht mehr ran.

        dedlfix.

        1. ich hab die session so angegeben. $_SESSION['username']

          hoffe das hilft! Brauche das Montag in der Schule

          1. ich hab die session so angegeben. $_SESSION['username']

            Dann hast du ja  die Variable, die du auslesen musst, wo das Problem?

            hoffe das hilft! Brauche das Montag in der Schule

            Lernst du in der Schule nicht, alle relevanten Infos zu geben? Du willst zwar irgendwas aus irgendeiner Datenbank auslesen,sagst aber nicht, welche Art von Datenbank und wie die Datenstruktur aussieht.

            Desweiteren hättest du in der Zeit, in der du hier bettelst, schon lange eine Lösung bei der Suchmaschine deiner Wahl gefunden.

            Ich versteh nicht, dass die Faulheit bei den Hausaufgaben immer in Mehrarbeit beim betteln nach fertigen Code im Forum ausartet. Da frag ich mich doch, ist es Dummheit,sich mehr Arbeit zu machen um andere dazu zu bringen, die eigene zu tun?

            1. Ja du hast recht.
              Also wenn ich jez $_SESSION['username'] habe, wie kann ich dann den Namen wieder ausgeben lassen? Ich habe es schon probiert mit:

                
              $username = $_SESSION['username'];  
              
              

              Allerdings wird mir da die Fehlermeldung angezeigt:

              Fatal error: Function name must be a string in C:\wamp\www\php\project1\home.php on line 5

              Was soll ich machen?

              1. Was soll ich machen?

                Den relevanten Code posten. Denn der Fehler hat mit deiner Codezeile absolut nichts zu tun.

                Wenn du Hilfe willst, rate ich dir, mach sinnvolle Angaben, sonst werde zumindest ich nicht mehr antworten.

                1. Hier ist der Inhalt der LoginPHP:

                    
                  <?php  
                  session_start();  
                    
                    
                  $submit = $_POST['submit'];  
                  $username = $_POST['username'];  
                  $password = $_POST['password'];  
                    
                  //SCHLEIFEN:  
                  if($submit) {  
                    
                  if($username&&$password) {  
                   $connect = mysql_connect('localhost','root','') or die('Es kann derzeit keine Verbindung zur Datenbank hergestellt werden!');  
                   mysql_select_db('project') or die('Es kann derzeit keine Verbindung zur Datenbank hergestellt werden!');  
                    
                   $query = mysql_query("SELECT * FROM users WHERE username='$username'");  
                    
                   $numrows = mysql_num_rows($query);  
                    
                    
                    
                   if($numrows!=0) {  
                  //LoginTeil :D Jz wirds interessant (:  
                    
                    
                  while ($row = mysql_fetch_assoc($query)) {  
                    
                   $activated = $row['activated'];  
                   $dbusername = $row['username'];  
                   $dbpassword = $row['password'];  
                    
                   if($activated=="0") {  
                     die("Ihr Account ist noch nicht aktiviert, bitte überprüfen Sie Ihr EMail-Postfach!");  
                     exit();  
                   }  
                    
                   //Hier wird geprüft ob ein Eintrag mit der E-Adresse vorhanden ist.  
                    
                   if($username==$dbusername&&$password==$dbpassword) {  
                       echo "Du wurdest erfolgreich eingeloggt. Klicke <a href='home.php'>hier</a> um zur Hauptseite zu gelangen!";  
                       $_SESSION['username']=$username;  
                    }  
                    
                    
                  else {  
                   echo "Falsches Passwort!! <a href='login.php'>Zurück</a>";  
                  }  
                    
                    
                    
                  }  
                    
                    
                    
                  //Ende des LoginTeils :(  
                   }  
                   else {  
                    echo "Es ist kein Benutzer mit dem von ihnen angegeben Usernamen($username)vorhanden! <a href='javascript:history.go(-1);'>Zurück</a>";  
                   }  
                    
                   }  
                    
                  else{  
                       echo "Bitte geben Sie Ihren Usernamen und Ihr Passwort ein, um sich einzuloggen. <a href='javascript:history.go(-1);'>Zurück</a>";  
                  }  
                    
                  }  
                  ?>  
                    
                  
                  
                    
                  <html>  
                  <head>  
                  <h1 align="center">Einloggen:</h1>  
                  <br>  
                  <form action="login1.php" method="post">  
                  <table>  
                  <tr><td>Username: </td><td><input type="text" maxlength="15" name="username"></td> <tr><td> Passwort: </td><td><input type="password" maxlength="25" name="password"></td></tr><br>  
                  </table>  
                  <input type="submit" value="Einloggen!" name="submit">   </form> <a href="register.php">Registrieren!</a>  
                  </head>  
                  </html>
                  

                  Inhalt der home.php:

                  [~~~php <?php
                        session_start();
                  //-------------

                  $query = mysql_query("

                  SELECT * FROM users WHERE username='$_SESSION['username']';

                  ");

                  //if ($accrls=="0"){

                  //echo $_SESSION['username']."Sie haben die Regeln noch nicht akzeptiert! Klicken Sie <a href='rulez.php'>HIER</a>, um dies jetzt zu tun!";

                  //}

                  if($_SESSION['username']==FALSE) {

                  echo "Sie müssen eingeloggt sein, um diese Seite zu sehen!";

                  } else
                        echo "Hallo, ".$_SESSION['username']."!";
                  ?>

                    
                    
                    
                  Ich möchte dann über einen SUBMIT-BUTTON den Account freischalten, und dafür brauche ich das mit dem Auslesen
                  
                  1. Wenn ich dein Lehrer wäre, würdest du für den Code durchfallen. Das geht bei unnützen Code bist zu Sicherheitsproblemen bist zum Ignorieren von erzeugten Notices und Warnings (und das sehe ich,obwohl ich den Code nichtmal ausprobiert hab)

                      
                    $query = mysql_query("  
                      
                    SELECT * FROM users WHERE username='$_SESSION['username']';  
                      
                    ");  
                    
                    

                    Befasse dich mit dem Kontextwechsel. Ausserdem versuchst du zwar Daten auszulesen aber machst nichts damit.

                    Da du, trotz mehrfacher Nachfragen, nicht alle Infos rausgibst (Die Datenbankstruktur fehlt), halte ich dich für Lernresistent und bin hiermit entgültig raus.
                    Ich hab echt was anderes zu tun als dir jeden Furz aus der Nase zu ziehen nur um zu sehen, dass dir völlig egal ist, was ich sage.

          2. Hello,

            ich hab die session so angegeben. $_SESSION['username']

            hoffe das hilft! Brauche das Montag in der Schule

            Und Du meinst, dass Du die Session Montag in der Schule auch auslesen kannst, wenn Du sie heute zuhause gebaut hast? ;-O

            Spaß beiseite, wie gut hast Du dich schon über das HTTP-Protokoll und Client-Server-Anwendungen im Internet schlau gelesen?

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Hmm.. naja schon. Wie kann ich mir den jetzt mithilfe der Variable
              $_SESSION['username'] den usernamen ausgeben lassen?

              Brauche das dann für:

                
              $query = mysql_query("  
                
              SELECT * FROM users WHERE username="$username";  
              ALTER TABLE users SET active="1";  
                
              ");  
                
                
              
              

              ;)

          3. Liebe(r) P.H.P,

            Brauche das Montag in der Schule

            na, dann hast Du ja noch eine ganze Menge Zeit, das nachzulernen, was Du im Unterricht immer so schön durch Nichtaufpassen, Nichtfragen oder Nichtdasein versäumt hast*...

            Liebe Grüße,

            Felix Riesterer.

            * nur so ein paar Standardvermutungen eines typischen Lehrers

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hello,

    Ich habe ein LoginScript geschrieben.

    Wie lautet das Konzept?
    Bitte keinen Code posten, sondern "nur" das Konzept erklären!

    Natürlich wird dabei auch eine SESSION erstellt.

    Das ist weder natürlich noch selbstverständlich.
    Es gibt mehrere Arten ein "Login" zu emulieren, da HTTP selber gar kein Login zulässt.

    Wie kann ich dann auf einer anderen Seite den Usernamen wieder von der DB abrufen?

    Was meinst Du mit "auf einer anderen Seite"? Könnte es sein, dass Du einen der nächsten Requests meinst? Das würde also dann heißen:

    Wie kann man errreichen, dass der Server beim nächsten Request den Client wiedererkennen kann?

    War das Deine Frage?

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de