php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-08-2007, 10:45
KageMurai
 Newbie
Links : Onlinestatus : KageMurai ist offline
Registriert seit: Aug 2007
Beiträge: 27
KageMurai ist zur Zeit noch ein unbeschriebenes Blatt
KageMurai eine Nachricht über ICQ schicken
Standard SESSION Frage

Hallo,

ich habe mal ein einfaches Session Skript gemacht.

PHP-Code:
<?

include ("configs.php");

if (!isset(
$_POST['name']) || !isset($_POST['pw'])) {
     echo 
'<form action="login2.php" method="POST">';
     echo 
'Name: <input type="text" name="name"/><br/>';
     echo 
'Passwort: <input type="text" name="pw"/><br/>';
     echo 
'<input type="submit" value="OK">';
     echo 
'</form>';
}
else {
     if (
$_POST['name'] == "") {
     echo 
"Bitte geben Sie einen Namen ein!";
     }
     elseif (
$_POST['pw'] == "") {
     echo 
"Bitte geben Sie ein Passwort ein!";
     }
     else {
     
$connection=mysql_connect($server,$user,$pass) or die (mysql_error());
     
mysql_select_db("nedias",$connection) or die (mysql_error());
     
     
$user_pass md5($_POST['pass']);
     
$query mysql_query("SELECT pass FROM user WHERE nick = '".$_POST['name']."'") or die('Auswählen fehlgeschlagen!');
     
     
$ergebnis=mysql_fetch_array($query);
     
           if(
md5($_POST['pw']) == $ergebnis['pass']) {
           
$_SESSION['username'] = $_POST['name'];
           echo 
"Erfolgreich eingeloggt!";
           
session_id();
           }
           else {
           echo 
"Ihr Passwort ist falsch!";
           }
     }
}
?>
Jetzt wird ja $_SESSION['username'] dann der Wert zugewiesen. Wie aber gebe ich jetzt die Session weiter, so dass ich in den folgenden Seiten einfach überprüfen kann mit:

if(session_is_registered('username'))

ob die SEssion gesetzt ist. Wie geht das?

KageMurai
Mit Zitat antworten
  #2 (permalink)  
Alt 21-08-2007, 10:51
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Du mußt lediglich vor dem ersten Zugriff auf eine Session-Variable ($_SESSION['varname']) die Funktion session_start() aufrufen. Im Manual steht genau beschrieben, wie der Transport der Session abläuft.
Mit Zitat antworten
  #3 (permalink)  
Alt 21-08-2007, 10:55
KageMurai
 Newbie
Links : Onlinestatus : KageMurai ist offline
Registriert seit: Aug 2007
Beiträge: 27
KageMurai ist zur Zeit noch ein unbeschriebenes Blatt
KageMurai eine Nachricht über ICQ schicken
Standard

Hallo,

session_start() habe ich schon. Ich benutze PHP ja auch, um "Frames nachzubilden". Will heißen vorher wird die Datei navi.php eingebunden, die session_start() ganz oben beinhaltet. Das geht doch, oder?

KageMurai
Mit Zitat antworten
  #4 (permalink)  
Alt 21-08-2007, 10:57
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja


error_reporting(E_ALL);
mal in die erste Zeile schreiben~
Mit Zitat antworten
  #5 (permalink)  
Alt 21-08-2007, 11:03
KageMurai
 Newbie
Links : Onlinestatus : KageMurai ist offline
Registriert seit: Aug 2007
Beiträge: 27
KageMurai ist zur Zeit noch ein unbeschriebenes Blatt
KageMurai eine Nachricht über ICQ schicken
Standard

Gut, danke. Dann habe ich noch eine letzte Frage:

Das einloggen funktioniert jetzt. In einer Datei überprüfe ich das hiermit:

if(session_is_registered('username'))

Da sagt der auch richtig, dass ich eingeloggt bin und gibt mir den gesicherten Text. Wenn ich aber diesen Quellcode benutze, verweist der mich IMMER auf die Login Seite:

if(!session_is_registered('username')) {
header("location:index.php?page=login");
die;
}

Warum? Kann das damit zusammenhängen, dass header nicht ganz oben im code steht, sondern davor ja noch die ganze Navi kommt?

Danke!

KageMurai
Mit Zitat antworten
  #6 (permalink)  
Alt 21-08-2007, 11:24
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Könnte daran liegen, dass session_is_registered() veraltet ist, siehe session_is_registered
Mit Zitat antworten
  #7 (permalink)  
Alt 21-08-2007, 11:25
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

session_is_registered() ist veraltet (steht auch im Manual)
PHP-Code:
if(isset($_SESSION['username']))
//oder
if(!isset($_SESSION['username'])) 
wären zu bevorzugen.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #8 (permalink)  
Alt 21-08-2007, 14:08
KageMurai
 Newbie
Links : Onlinestatus : KageMurai ist offline
Registriert seit: Aug 2007
Beiträge: 27
KageMurai ist zur Zeit noch ein unbeschriebenes Blatt
KageMurai eine Nachricht über ICQ schicken
Standard

Sehr gut - funktioniert jetzt alles. Noch ne Frage. Ich will natürlich noch ein Logout Skript haben.

Ich habe bisher die Funktion session_destroy() verwendet. Ist die jetzt auch veraltet, oder kann ich die noch vewenden?

Danke!

kageMurai
Mit Zitat antworten
  #9 (permalink)  
Alt 21-08-2007, 14:11
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Auch veraltet ! Besser unset() verwenden
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #10 (permalink)  
Alt 21-08-2007, 14:22
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von jahlives
Auch veraltet ! Besser unset() verwenden
So ein Bullshit!

Dummer Junge, weißt du eigentlich nach 3 Jahren und 5000 Postings immer noch gar nichts?!


Abgesehen davon ist unset in falscher Benutzung tödlich, siehe Manual.
Mit Zitat antworten
  #11 (permalink)  
Alt 21-08-2007, 15:20
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

ein einfaches
PHP-Code:
$_SESSION = array(); 
reicht meist
__________________
Wir werden alle sterben
Mit Zitat antworten
  #12 (permalink)  
Alt 21-08-2007, 15:21
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aus Gründen der Sicherheit bezüglich SID ist eindeutig zu session_destroy zu raten!
Genaugenommen sollte man session_destroy() sogar vor dem Login auch machen, damit der User eine saubere Session erhält und ein eventueller Mitwisser der SID, nichts mehr damit anfangen kann.
Mit Zitat antworten
  #13 (permalink)  
Alt 21-08-2007, 15:29
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Quark!!
Session_destroy() macht genau Null Komma gar nichts mit der SID!!
__________________
Wir werden alle sterben
Mit Zitat antworten
  #14 (permalink)  
Alt 21-08-2007, 16:06
KageMurai
 Newbie
Links : Onlinestatus : KageMurai ist offline
Registriert seit: Aug 2007
Beiträge: 27
KageMurai ist zur Zeit noch ein unbeschriebenes Blatt
KageMurai eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von ghostgambler
So ein Bullshit!

Dummer Junge, weißt du eigentlich nach 3 Jahren und 5000 Postings immer noch gar nichts?!


Abgesehen davon ist unset in falscher Benutzung tödlich, siehe Manual.
Also ich habe jetzt shcon unset() benutzt. Was soll ich denn deiner Meinung nach benutzen?

KageMurai
Mit Zitat antworten
  #15 (permalink)  
Alt 21-08-2007, 16:12
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

http://php.net/session_destroy (Text lesen, Beispiel nachvollziehen, dann bleiben keine Fragen offen.)
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:49 Uhr.