User abfrage

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

  • diebo
    antwortet
    Es wird doch jetzt "nur" sein Nutzername in Session gehalten, ich habe jetzt nach dem Login sein Namen und die Bestätigung das er eingeloggt ist in der Session. Ich nehme ja über input sein Nutzername oder seine Email auf

    PHP-Code:
    WHERE
                            LOWER
    (`user`)     = '" .mysql_real_escape_string($username). "' OR
                            `
    email`           = '" .mysql_real_escape_string($username). "' 
    hiermit ermögliche ich das er sich mit beiden einloggen kann und dann hol ich mir erst sein namen aus der Datenbank und lagere ihn in der Session. Also habe ich nur sein Namen oder verkenne ich da was?

    Einen Kommentar schreiben:


  • combie
    antwortet
    Zitat von diebo Beitrag anzeigen
    Vielen Dank das ist genau das was ich gesucht habe.

    Das mag sein!
    Aber willst du das wirklich?

    Ich halte es für falsch den Usernamen und seine Email in Session zu halten.
    Wie will man ihn umtaufen?
    Seine Email ändern?
    Alle unangenehmen Seiteneffekte, der doppelten Datenhaltung, drohen...

    Es wäre völlig ausreichend, die UserID in Session zu halten.

    Einen Kommentar schreiben:


  • diebo
    antwortet
    Vielen Dank das ist genau das was ich gesucht habe.

    Einen Kommentar schreiben:


  • arclight
    antwortet
    PHP-Code:
    $link mysql_connect(bla,blubb..);
    mysql_select_db(tri_tra_trullala);

    $query  "SELECT `user`,`password`,`aktiviert`,`email`
                    FROM `login`
                    WHERE
                    (LOWER(`user`)     = '" 
    mysql_real_escape_string ($username) . "'
                        OR `email`     = '" 
    mysql_real_escape_string ($username) . "')
                    AND
                    `password`         = '" 
    mysql_real_escape_string ($password) . "'
                    AND `aktiviert`       = 1
                    LIMIT 0,1;"
    ;
    $result mysql_query ($query,$link);
    if (
    is_resource ($result))
    {
        
    $row              mysql_fetch_row ($result);
        
    $_SESSION['user'] = $row[0];
        
    mysql_free_result ($result);
    } else
    {
        
    //kein db treffer

    ich glaube, sollte ich dein problem richtig verstanden haben, mit diesem lösungsansatz kommst du zu deinem gewünschten ergebnis.

    Einen Kommentar schreiben:


  • diebo
    antwortet
    hmm vllt versteht ihr nicht so ganz was ich meine also nochmal

    ich möchte das die Leute sich mit ihrem Benutzernamen sowie mit der Email Adresse anmelden können, so wie ich das nun habe klappt es auch. Aber da das in meinen Fall nach dem eingeben und abschicken in eine Variable kommt und ich die Variable in die Session speicher um den Benutzer direkt ansprechen zu können z.b. so Hallo Diebo, entspricht das nicht ganz mein Vorstellung weil wenn man sich mit der Email Adresse einloggt würde da stehen Hallo diebo@muster.de
    und dewegen wollte ich denn den Benutzernamen aus der Datenbank ziehen. Nur wie bekomme ich genau seinen Namen und nicht irgendeinen?

    Einen Kommentar schreiben:


  • diebo
    antwortet
    Ja aber vorher muss ich ja den Benutzernamen aus der Datenbank holen, ich habe das ja nun so das aus dem input mit dem der Benutzer sich einloggt (benutzernamen/email) die Variable gemacht. Das in die Session gebracht um die Nutzer ansprechen zu können mit z.b. Hallo Felix, wenn er sich nun aber mit der email anmeldet würde da Hallo felix.mustermann@gmx.de stehen. Also dachte ich kann ich ja den Nutzernamen aus der Datenbank holen in eine variable packen und den ausgeben und das bekomme ich nicht ganz hin.

    Hier mal der code, nicht meckern das ist nur ein übungsprojekt von mir

    PHP-Code:
    <?php
    session_start
    ();                                                      

    $_SESSION['login'] = FALSE;                                         
    $username          $_POST['username'];
    $password          $_POST['password'];
    $error             '';
    $_SESSION['user']  = $username;

    function 
    db_connect()                                                 
    {
        
    $dbhost      ='localhost';
        
    $dbuser      ='';
        
    $dbpassword  ='';
        
    $dbname      ='testlogin';


        
    $conid mysql_connect($dbhost$dbuser$dbpassword)
           or die (
    'Verbindungsfehler!');

        if (
    is_resource($conid))
        {
            
    mysql_select_db($dbname$conid)
              or die (
    'Datenbankfehler');
        }
        return 
    $conid;
    }

    if (isset(
    $_COOKIE['userlogin']))                           
    {
        
    $conid db_connect();
        
    $sql "SELECT
                      `id`
                FROM
                      `login`
                WHERE
                      `cookie_hash` = '" 
    .mysql_real_escape_string ($_COOKIE['userlogin'])
                      .
    "' AND `aktiviert` = 1";

        
    $result mysql_query($sql$conid);

        if (
    mysql_num_rows ($result) == 1)
        {
            
    $_SESSION['login'] = TRUE;
            
    header('location: ../index.php');
            exit;
        }
    }

    if (isset(
    $_POST['login']))
       {
           if (
    get_magic_quotes_gpc())
            {
                
    $_POST array_map('stripslashes',$_POST);
            }

            
    $username strtolower(trim($_POST['username']));
            
    $password md5(trim($_POST['password']));

            
    $conid db_connect();
            
    $sql   "SELECT
                            `user`,`password`,`aktiviert`
                      FROM
                            `login`
                      WHERE
                            LOWER(`user`)     = '" 
    .mysql_real_escape_string($username). "' OR     //Betroffene Stelle
                            `email`           = '" 
    .mysql_real_escape_string($username). "'
                            AND
                            `password`        = '" 
    .mysql_real_escape_string($password). "' AND
                            `aktiviert`       = 1"
    ;




           
    $result mysql_query($sql ,$conid);

           if (
    mysql_num_rows($result) == 1)
           {
               
    $usercookie mysql_fetch_assoc($result);
               
    $_SESSION['login'] = TRUE;
               
    setcookie ('userlogin'$usercookie['cookie_hash'], time() +600);
               
    header('location: ../index.php');
               exit;
           }
           else
           {
               
    $error '<h3>Die Anmeldung war fehlerhaft</h3>';
           }
        }


    print_r(mysql_error())
    ?>
    Zuletzt geändert von diebo; 26.03.2013, 10:00.

    Einen Kommentar schreiben:


  • Marcus-24-D
    antwortet
    Dann musst du das entsprechend aufteilen oder dich für einen entscheiden.
    Du kannst ja mit email überprüfen aber dennoch der Session den Usernamen zuweisen oder überschreiben.

    $_SESSION['userName'] = $username;
    $_SESSION['email'] = $email;

    Zeig mal deinen kompletten Code

    Einen Kommentar schreiben:


  • diebo
    hat ein Thema erstellt User abfrage.

    User abfrage

    Hallo,

    ich möchte das die Nutzer sich mit dem Benutzernamen sowie der Email Adresse einloggen können, das funktioniert auch wunderbar mit
    PHP-Code:
     $sql   "SELECT
                            `user`,`password`,`aktiviert`,`email`
                      FROM
                            `login`
                      WHERE
                            LOWER(`user`)     = '" 
    .mysql_real_escape_string($username). "' OR
                            `email`           = '" 
    .mysql_real_escape_string($username). "'
                            AND
                            `password`        = '" 
    .mysql_real_escape_string($password). "' AND
                            `aktiviert`       = 1"

    Problem ist jetzt nur da ich in dem fall email und benutzername aus der selben variable nehme, das mein $_SESSION['user'] = $username; mir auf allen seiten die Email Adresse anzeigt wenn sich mit der einloggt, wenn ich die Nutzer anspreche.

    Meine frage ist nun wie kann ich das lösen, ich habe schon den ganzen tag versucht den Benutzernamen aus der Datenbank zu ziehen und den anzeigen zu lassen aber irgendwie bekomme ich das nicht hin, das der Benutzer auftaucht der sich eingeloggt hat. Hoffe das war soweit verständlich.
    Ich bedanke mich voraus

    Hab die SuFu benutzt und ganz viel gegooglet auch Sachen gefunden aber die waren von 2005 usw. php.net war ich auch und habe probiert aber nichts ging.
Lädt...
X