php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.09.2009, 19:36  
Neuer Benutzer
 
Registriert seit: 23.09.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
C++freak befindet sich auf einem aufstrebenden Ast
Standard Cookies für Login-Skript?

Hallo,
Ich bin schon seit einiger zeit am rum fuchteln an einem
Problem, undzwar brauche ich zwei sachen für meinen Login - Skript
der so aussieht:

PHP-Code:
<?php
//....
if(isset($_POST['login']))
{
$username $_POST['username'];
$passw $_POST['password'];
$md5 md5($passw);
$query mysql_query("SELECT * FROM `members` WHERE `username` = '$username' AND `password` = '$md5'");
$mnr mysql_num_rows($query);
if (
$mnr == 1)
{
$row mysql_fetch_object($query);
$_COOKIE['logg'] = true;
$_COOKIE['userID'] = $row->user_id;
setcookie('logg''userID'time()+2419200); 
echo 
"$row->username: <br> <a href=\"http://meineseite.de/geheimbereich\">Bereich</a>";
}
else
{
echo 
"Dein Benutzername oder dein Passwort ist falsch";
}
}
?>
und die, mysql.php
PHP-Code:
if(isset($_COOKIE['logg']))
{  
    
$uid $_COOKIE['userID'];
    
$user_query mysql_query("SELECT * FROM `members`
    WHERE `user_id` = '$uid'"
);
    
$user mysql_fetch_object($user_query);
}

?> 
So, was mir fehlt ist die möglichkeit das nach einem neuen
Seitenaufruf man eingeloggt bleibt, was zurzeit nicht funktionieren
will und ein geheimer Bereich der nur von eingeloggten
Usern betreten werden kann leider gibt es immer wieder ein problem
das mich hindert weiter zu kommen...
Der geheim bereich sieht so aus:
PHP-Code:
<?php
session_start
();
if(!isset(
$_SESSION["logg"]))
   {
   echo 
"Bitte erst <a href=\"http://www.meineseite.de/home\">einloggen</a>";
   exit;
   }
    else {
echo 
"-Nur für eingeloggte User zu sehen-";
?>
-- Funktionieren tuts aber nicht.

Ich bin dankbar für jede Hilfe!
ps.: Ich hab natürlich davor schon unzählige sachen versucht
geklappt hat aber nichts richtig.
C++freak ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.09.2009, 19:45  
Benutzer
 
Registriert seit: 13.08.2009
Beiträge: 32
PHP-Kenntnisse:
Anfänger
Larkin befindet sich auf einem aufstrebenden Ast
Standard

Hallo C++Freak,

Du solltest Usereingaben unbedingt mit "mysql_real_escape_string" oder ähnlichem escapen, sonst kann man eine SQL-Injection durchführen.

Gibt es einen Grund das Du nicht mit Sessions arbeitest?
Larkin ist offline  
Alt 23.09.2009, 20:41  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
-- Funktionieren tuts aber nicht.
Kein Wunder, wenn Du $_COOKIE setzt und $_SESSION abfragst…
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 25.09.2009, 19:14  
Neuer Benutzer
 
Registriert seit: 23.09.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
C++freak befindet sich auf einem aufstrebenden Ast
Standard :D

Danke! Jetzt funktioniert der bereich, hätte mir eigentlich selber
einfallen können.

Das einzige Problem wo ich echt keine ahnung hab ist
das der Text: "'username' Meinbereich"
also diese Spalte:
PHP-Code:
echo "$row->username: <br> <a href=\"http://meineseite.de/geheimbereich\">Bereich</a>"
Die soll auch nach erneuten Aufruf der Adresse da stehen, aber
irgendwie funktioniert das leider nicht.

Hab natürlich die gleiche Art wie bei dem "bereich" versucht, um
dieses Problem zu lösen aber aus irgendeinen grund will das echt nicht funktionieren.
C++freak ist offline  
Alt 25.09.2009, 19:27  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja ist ja auch kein Wunder wenn du jedes mal abfragst ob mysql_num_rows ein Ergebnis liefert
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline  
Alt 26.09.2009, 08:24  
Neuer Benutzer
 
Registriert seit: 23.09.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
C++freak befindet sich auf einem aufstrebenden Ast
Standard

Tut mir leid, du meinst doch das
bei einem neuen Adressen aufruf wegen der if schleife wieder abgefragt
wird ob "mnr==1" ist und die Schleife wegen dem Hinderniss nicht
wieder drauf zugreifen kann da "mnr" nach einem neuen Adress aufruf
nicht mehr 1 ist. Oder?

Aber nur weiß ich halt nicht was ich anstelle "mnr" machen soll
weil ja mnr auch das Passwort abprüft, ich steh echt gerade
auf nem schlauch.

Geändert von C++freak (26.09.2009 um 08:28 Uhr).
C++freak ist offline  
Alt 26.09.2009, 15:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

nikosch an Forumleitung: Wir bräuchten mal wieder neue Schläuche..

http://www.php.de/beitragsarchiv/468...-schleife.html (Mythos IF-Schleife)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 26.09.2009, 19:39  
Neuer Benutzer
 
Registriert seit: 23.09.2009
Beiträge: 16
PHP-Kenntnisse:
Anfänger
C++freak befindet sich auf einem aufstrebenden Ast
Standard

Lol
Naja dann eben Kontrollstruktur
Weiß aber leider immer noch nicht die Lösung..
C++freak ist offline  
Alt 27.09.2009, 12:58  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.733
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Von der Ablauflogik grob so.

Aber: Was hält mich davon ab, mir manuell einen Cookie mit den Werten logg=true und userID=1 zu basteln und mich so als User 1 einzuloggen? Verwende lieber Sessions.

PHP-Code:
<?php
//....
if(isset($_POST['login'])) {
    
$username $_POST['username'];
    
$passw $_POST['password'];
    
$md5 md5($passw);
    
$query mysql_query("SELECT * FROM `members` WHERE `username` = '$username' AND `password` = '$md5'");
    
$mnr mysql_num_rows($query);
    if (
$mnr == 1) {
        
$row mysql_fetch_object($query);
        
$_COOKIE['logg'] = true;
        
$_COOKIE['userID'] = $row->user_id;
        
setcookie('logg''userID'time()+2419200);
        echo 
'Eingeloggt';
    } else {
        echo 
"Dein Benutzername oder dein Passwort ist falsch";
    }
}

if(isset(
$_COOKIE['logg'])) {
    
$uid $_COOKIE['userID'];
    
$user_query mysql_query("SELECT * FROM `members`
    WHERE `user_id` = '$uid'"
);
    
$user mysql_fetch_object($user_query);
    echo 
"$user->username: <br> <a href=\"http://meineseite.de/geheimbereich\">Bereich</a>";
}
mermshaus ist offline  
Alt 27.09.2009, 15:29  
Neuer Benutzer
 
Registriert seit: 26.09.2009
Beiträge: 11
PHP-Kenntnisse:
Anfänger
micros befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
setcookie('logg''userID'time()+2419200); 
Setzt das nicht einen Cookie mit dem Namen "logg" und dem Inhalt "userID"? Ergibt für mich jetzt keinen Sinn, wenn dann doch eher
PHP-Code:
setcookie('logg''true'time()+2419200); 
setcookie('userID'$row->user_idtime()+2419200); 
Aber mermshaus hat schon Recht. Wenn du das mit einem Cookie statt mit einer Session machst, dann musst du irgendwie überprüfen, ob der Benutzer überhaupt ehrlich an diesen Cookie gekommen ist.
Das geht zum Beispiel über die md5-Summe des Passworts, besser noch mit einem Salt.
Allerdings wäre es dann wirklich einfacher, das über Sessions zu lösen. Dann sparst du dir den Aufwand mit dem Setzen von Cookies, da du dann einfach die Session starten kannst und dann den Variablen einen Wert zuweisen kannst.

Gruß
micros ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Login mit Session und Cookies? Sicherste Möglichkeit? DarkSky25 PHP-Fortgeschrittene 20 04.04.2009 12:19
Dauerhafter Login durch Cookies TeazY PHP Tipps 2009 19 18.02.2009 12:39
Cookies gehen verloren yield PHP Tipps 2009 8 07.01.2009 14:53
Forum Login per curl leb0rtran PHP Tipps 2008 1 19.03.2008 12:47
[Erledigt] Login funktioniert nicht wenn cookies deaktiviert drotz sess PHP Tipps 2006 3 31.10.2006 13:34
Etwas komplexerer Login --> Keine Angst, Suche benutzt dethlef14 PHP Tipps 2006 7 02.10.2006 00:35
Login Cookies löschen, aber wie? eQuin PHP Tipps 2006 4 09.06.2006 03:26
Login Script mit Cookies Disasterp1ece PHP Tipps 2006 2 21.03.2006 13:40
Login Skript test022 Beitragsarchiv 13 11.11.2005 01:23
Sitzungsvariablen, Abfrage-Zeichenketten, Cookies dethlef14 PHP Tipps 2005-2 2 16.08.2005 15:42
Skript &amp;amp;amp;quot;tarnen&amp;amp;amp;quot;? Off-Topic Diskussionen 17 07.08.2005 19:42
login mit cookies - Server schuld? PHP Tipps 2005 19 03.06.2005 01:12
Login + Cookies PHP Tipps 2005 14 11.01.2005 13:35
[Erledigt] problem mit login skript | mysql | cookie PHP Tipps 2004-2 13 07.12.2004 19:01
Session Login funkt nicht, wenn Cookies immer aus sind schifti PHP-Fortgeschrittene 18 06.09.2004 07:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
login mnr, login setcookie mysql_fetch_object

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum