php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.01.2006, 21:58  
Benutzer
 
Registriert seit: 24.11.2005
Beiträge: 65
250Euro
Standard session id

ich hab ein Problem mit meinem loginscript und zwar ich log mich ein, starte die session. dann bin ich auf meiner geschützten seite, lassen mir die session und die sid ausgebe.
->1.Problem: die sid wird nur ausgegeben wenn der cookie noch nicht existiert sonst wird 'array' ausgegeben. wieso?
2.Prob: wenn ich jetz auf einen link zu einer anderen Seite klicke (oder zur gleichen) werde ich zurück gesetzt zu meinm loginformular.

ich hab mich jetz den ganzen tag mit dem problem beschäfftigt und habe auf im forum einge beiträge gefunden wo das selbe problem beschrieben war, abeer ich bin nicht draus schlau geworden.
PHP-Code:
<?php
class auth 
{
  
 private 
$hashkey;
 
 private 
$redirect;

 public function 
__construct($hashkey$redirect
 {
  
$this->hashkey $hashkey;
  
$this->redirect $redirect;
  
$this->sess();
 }

 private function 
sess() 
 {
 
//preft ob schon eine session vorhanden ist
  
if (isset($_SESSION['login_hash'])) {
   
$this->confirmauth();
  } else {
   
$this->login();
  }
 }
 private function 
login()
 {
  
//POST variablen pr&uuml;fen
  
if (empty($_POST['nick']) || empty($_POST['pw'])) {
   
$this->redirected('leer');
  }
  if (!isset(
$_POST['nick']) || !isset($_POST['pw'])) {
   
$this->redirected('Notset');
  }
   
//variablen fuer die Datenbank abfrage maskieren
   
$nickmysql_escape_string($_POST['nick']);
   
$pw md5($_POST['pw']);
   
$pw mysql_escape_string($pw);
   
//DB Daten includen
   
include ('connect.php');
   
//DB Abfrage ob nuer ein user mit dieser pw/nick kombination vorhanden ist
   
$sql "SELECT * FROM benutzer 
          WHERE nick = '$nick' AND
                pw = '$pw'"
;
   
$result mysql_query($sql);
   
$zeilen mysql_num_rows($result);
  
//zuruecksetzen falls nicht exakt ein Eintrag vorhanden ist
  
if ($zeilen != 1) {
   
$this->redirected('DBProb');
  }
  
//sonst session setzen
  
else {
   
$this->storeauth($nick$pw);
  } 
 } 
 
//setzt session variablen
 
public function storeauth($nick$pw)
 {
  
session_start(); 
   
$_SESSION['loggedin'] = true;
   
$_SESSION['nick'] = $nick;
   
$_SESSION['pw'] = $pw;
   
$hashkey md5($this->hashkey $nick $password);
   
$_SESSION['login_hash'] = $hashkey;
 }
 
//ueberprueft einen besteheden login
 
private function confirmauth() {
  
$nick $this->get('nick');
  
$pw $this->get('pw');
  
$hashkey $this->get('login_hash');
   if (
md5($this->hashkey $nick $password) != $hashkey) {
    
$this->logout();
   }
 } 
  private function 
get($name) {
  if (isset(
$_SESSION[$name])) {
    return 
$_SESSION[$name];
  } else {
    return 
false;
  }
 }
 public function 
logout() {
  unset(
$_SESSION['pw']);
  unset(
$_SESSION['login_hash']);
  unset(
$_SESSION['nick']);
  
$_SESSION['loggedin'] = false;
  
$this->redirected();
 } 
 private function 
redirected($fehler
 { 
  if (
$fehler) {
    
header('Location:' $this->redirect '?fehler=' $fehler); 
  } else {
    
header('Location:' $this->redirect);
  }
  exit (); 
 }
}
?>
meine geschütze seite wo ich auth.php(siehe oben)einbinde
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>News </title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<link rel="stylesheet" type="text/css" href="../schule/style.css">
<body>
<?php
//log einbinden
require_once 'auth.php';

//log instanziieren
$auth = new auth('secret', 'login2.php');
echo SID;
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
?>
<table border="0" cellspacing="0" cellpadding="0">
	<tr>
		<td background="../schule/spacer.png" width="100"></td>
		<td height="30" background="../schule/news_tst.png" width="200"><div align="center"><?php echo 'News'?></div></td>
		<td height="30" background="../schule/oben_pers_daten.png" width="200"><div align="center">Pers. Daten</div></td>
		<td background="../schule/spacer.png" width="100">Logout</td>
	</tr>
	<tr>
		<td colspan="4" width="400"></td>
	</tr>
</table>
</body>
</html>
250Euro ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.01.2006, 22:18  
Gast
 
Beiträge: n/a
Standard

der nickname das script kommt mir doch bekannt vor.

du hast zwar etwas verändert, aber das script ist einfach zu schlecht geschrieben um einzelne sachen zu verändern oder dir dazu tipps zu geben.
also mach uns und dir bitte den gefallen und schreib dein login-script komplett neu und lies dir dazu ein paar tutorials durch.
klick bitte hier
gleich der erste link (quakenet:#php Tutorial) scheint auf den ersten blick ganz brauchbar.
 
Alt 08.01.2006, 01:04  
Benutzer
 
Registriert seit: 24.11.2005
Beiträge: 65
250Euro
Standard

is das script wirklich so scheiße??
naja ichhabs jetz zum glück zum laufen gebracht.
danke für den Link er hat mir sehr geholfen
mfg 250
250Euro 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
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Session Logout Login Navigation TailerD PHP Tipps 2006 10 24.06.2006 17:12
session array Timo Trallala PHP Tipps 2006 18 22.04.2006 13:45
Frage zur Anwendung einer Session mehrfach... GELight PHP Tipps 2006 10 12.03.2006 16:47
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Session abschaltbar?? Probleme mit Objekten in Session! becks123 PHP-Fortgeschrittene 3 19.09.2005 15:47
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
Session error nach Umstellung auf PHP 5 PHP Tipps 2005 15 13.05.2005 14:35
verliere Session Sonja PHP Tipps 2005 3 27.04.2005 09:32
Session Problem PHP-Fortgeschrittene 3 18.02.2005 14:37
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
hash key nick

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:11 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.