SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.05.2008, 16:52:06
Mike3845 Mike3845 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 31
Name anzeigen

Hi,
ich habe mir mit hilfe einer online-anleitung einen Loginbereich mit MySQL erstellt. Der login erfolgt mit einer login.php:
Code:
<? 
session_start(); 
include 'sessionhelpers.inc.php'; 
if (isset($_POST['login'])) 
{ 
    $userid=check_user($_POST['username'], $_POST['userpass']); 
    if ($userid!=false) 
        login($userid); 
    else 
        echo 'Ihre Anmeldedaten waren nicht korrekt!'; 
} 
if (!logged_in()) 
    echo '<form method="post" action="login.php"> 
        <label>Benutzername:</label><input name="username" type="text"><br> 
        <label>Passwort: </label><input name="userpass" type="password" id="userpass"><br> 
        <input name="login" type="submit" id="login" value="Einloggen"> 
    </form>'; 
else 
    echo '<a href="logout.php">Ausloggen</a>'; 
echo '<p /><a href="logged_in.php">Check</a>'; 
?>
Die dazugehörige sessionhelpers.inc.php sieht wie folgt aus:
Code:
<? 
error_reporting(E_ALL);
function connect() 
{ 
    $con= mysql_connect('localhost','gergaming_neu','geheim') or die(mysql_error()); 
     mysql_select_db('gergaming_neu',$con) or die(mysql_error()); 
} 

function check_user($name, $pass) 
{ 
    $sql="SELECT UserId 
    FROM member 
    WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') 
    LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()); 
    if ( mysql_num_rows($result)==1) 
    { 
        $user=mysql_fetch_assoc($result); 
        return $user['UserId']; 
    } 
    else 
        return false; 
} 

function login($userid) 
{ 
    $sql="UPDATE member 
    SET UserSession='".session_id()."' 
    WHERE UserID=".$userid; 
     mysql_query($sql); 
} 

function logged_in() 
{ 
    $sql="SELECT UserId 
    FROM member 
    WHERE UserSession='".session_id()."' 
    LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()) ; 
      return ( mysql_num_rows($result)==1); 
} 

function logout() 
{ 
    $sql="UPDATE member 
    SET UserSession=NULL 
    WHERE UserSession='".session_id()."'"; 
     mysql_query($sql); 
} 

connect(); 
?>
Login, logout und so funktioniert auch alles.
Jetzt würde ich gern noch den Namen des angemeldeten Benutzers anzeigen lassen.
Also das da z.B. steht "Hallo Sven" wenn sich Sven gerade angemeldet hat. Wenn man nicht angemeltet ist, soll da stehen "Hallo Gast".
Wie mach ich sowas?
Mit Zitat antworten
  #2  
Alt 13.05.2008, 18:01:52
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Name anzeigen

Hallo und Willkommen im Forum,

Deine Frage hört sich so an als ob Du nicht viel Ahnung von PHP hast.
Also bitte erst die Grundlagen lernen sonst wirst Du nicht weit kommen.
Bitte benutze auch immer die PHP-Tags im Forum. Der Code ist dann wesentlich besser lesbar.

Und zu Deiner Frage: Du hast doch die UserID. Darüber kannst Du einfach den User-Namen herausfinden und in der Variablen $_SESSION["Name"] speichern. Der Rest ist eine einfache IF_Abfrage und echo-Ausgabe.

doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›
Mit Zitat antworten
  #3  
Alt 14.05.2008, 14:56:10
Mike3845 Mike3845 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 31
AW: Name anzeigen

So etwa??

PHP-Code:
if(isset($_GET['UserName'])) { 
    
$_SESSION['Name'] = $_GET['UserName']; 
}elseif(!isset(
$_SESSION['Name'])) { 
    
$_SESSION['Name'] = "gast"

echo 
$_SESSION['Name']."\n"
Wird aber leider gast ausgegeben...

Geändert von Mike3845 (14.05.2008 um 14:57:03 Uhr)
Mit Zitat antworten
  #4  
Alt 14.05.2008, 16:19:59
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Name anzeigen

Wenn der User-Name per Get übertragen wird passt es. Wird der User-Name, wie bei Dir, mit Post übertragen musst Du $_POST['username'] verwenden.
Klappt das auch nicht musst Du den User-Namen anhand der UserId aus der Datenbank auslesen.

doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›
Mit Zitat antworten
  #5  
Alt 14.05.2008, 16:23:21
Mike3845 Mike3845 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 31
AW: Name anzeigen

Mit Post gehts auch nich...
Zitat:
Klappt das auch nicht musst Du den User-Namen anhand der UserId aus der Datenbank auslesen.
Wie mach ich das?
Mit Zitat antworten
  #6  
Alt 14.05.2008, 16:39:02
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Name anzeigen

Mit einer Datenbankabfrage wie Du sie in Deiner sessionhelpers.inc.php auch machst.

Einfacher setzt Du aber die Variabel bei Deiner login-Funktion gleich mit.
PHP-Code:
function login($userid

    
$sql="UPDATE member 
    SET UserSession='"
.session_id()."' 
    WHERE UserID="
.$userid
    
mysql_query($sql);
    
$_SESSION['Name']=$_POST['username'];

doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›
Mit Zitat antworten
  #7  
Alt 14.05.2008, 17:05:01
Mike3845 Mike3845 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 31
AW: Name anzeigen

Oh man ich dreh hier noch durch...Ich bekomm immernoch Gast angezeigt...
Was mach ich den falsch?
Mit Zitat antworten
  #8  
Alt 14.05.2008, 17:43:25
Benutzerbild von doppelklick
doppelklick doppelklick ist offline
Anfänger
 
Registriert seit: Feb 2006
Ort: Niederaichbach
Alter: 61
Beiträge: 120
AW: Name anzeigen

Hast Du als erstes
PHP-Code:
<?php
session_start
();
?>
auf Deiner Seite stehen?

doppelklick
__________________
‹(•¿•)› Wer lesen kann ist klar im Vorteil! ‹(•¿•)›
Mit Zitat antworten
  #9  
Alt 14.05.2008, 18:02:39
Mike3845 Mike3845 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 31
AW: Name anzeigen

Ja hab ich

Vielleicht noch ein kleiner Überblick:
PHP-Code:
<? 
session_start(); 
include 'sessionhelpers.inc.php'; 
if (isset($_POST['login'])) 

    $userid=check_user($_POST['username'], $_POST['userpass']); 
    if ($userid!=false) 
        login($userid); 
    else 
        echo 'Ihre Anmeldedaten waren nicht korrekt!'; 

if (!logged_in()) 
    echo '<form method="post" action="login.php"> 
        <label>Benutzername:</label><input name="username" type="text"><br> 
        <label>Passwort: </label><input name="userpass" type="password" id="userpass"><br> 
        <input name="login" type="submit" id="login" value="Einloggen"> 
    </form>'; 
else 
    echo '<a href="logout.php">Ausloggen</a>'; 
echo '<p /><a href="logged_in.php">Check</a>'; 


echo ('Willkommen '.$_SESSION['Name']."\n");
?>
PHP-Code:
<? 
session_start();
function connect() 

    $con= mysql_connect('localhost','gergaming_neu','auchneu') or die(mysql_error()); 
     mysql_select_db('gergaming_neu',$con) or die(mysql_error()); 


function check_user($name, $pass) 

    $sql="SELECT UserId 
    FROM member 
    WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') 
    LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()); 
    if ( mysql_num_rows($result)==1) 
    { 
        $user=mysql_fetch_assoc($result); 
        return $user['UserId']; 
    } 
    else 
        return false; 


function login($userid) 

    $sql="UPDATE member 
    SET UserSession='".session_id()."' 
    WHERE UserID=".$userid; 
     mysql_query($sql); 
    $_SESSION['Name']=$_POST['UserName'];


function logged_in() 

    $sql="SELECT UserId 
    FROM member 
    WHERE UserSession='".session_id()."' 
    LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()) ; 
      return ( mysql_num_rows($result)==1); 


function logout() 

    $sql="UPDATE member 
    SET UserSession=NULL 
    WHERE UserSession='".session_id()."'"; 
     mysql_query($sql); 


connect(); 
?>

Geändert von Mike3845 (14.05.2008 um 18:18:11 Uhr)
Mit Zitat antworten
  #10  
Alt 14.05.2008, 18:33:35
Mike3845 Mike3845 ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 31
AW: Name anzeigen

OK hat sich erledigt.
Vielen dank für deine Hilfe.

Jemand hat mir folgenden code für die sessionhelper.inc.php gegeben:
PHP-Code:
function getName(){ 
  
$sql="SELECT UserName FROM member  
    Where UserSession='"
.session_id()."'"
     
     
mysql_query($sql);  
   
$resultmysql_query($sql) or die(mysql_error());  
    if ( 
mysql_num_rows($result)>0)  
    {  
        
$user=mysql_fetch_assoc($result);  
        return 
$user["UserName"];  
    }  
  
// Fehler Fall, eher Zeit für ne Exception 
  
return "Kein Name"

und das hab ich dann in die login eingetragen:
PHP-Code:
  echo "Dein Name ".getName(); 
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session übergibt weder name noch id? Anna-Keller PHP Grundlagen 10 08.05.2007 21:47:23
Dateiendung erkennen und entsprechendes Bild anzeigen, aber wie? mp3fritz PHP Grundlagen 2 02.10.2005 10:50:22
Name des eingeloggten Users anzeigen Max_04 PHP Grundlagen 2 26.07.2005 09:21:04
leeren datensatz nicht anzeigen, alten wiederholen Stifler PHP Grundlagen 2 23.09.2004 13:23:54
user anzeigen col7 PHP für Fortgeschrittene und Experten 5 03.03.2003 11:40:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:46:21 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt