[PHP & MySQL] Login Funktioniert nach DB refresh nicht mehr

cille

Erfahrenes Mitglied
Hi ho,
ick habe ein Problem!

Mein Login Script funktioniert nicht mehr seit ich die DB resetet habe und neu erstellt habe.
Ich arbeite mit rechten und mit Passwordverschlüsselung (md5).

Einloggen tut er sich, aber nur soweit das ausgegeben wird:
Sie sind nicht berechtigt dies Seite aufzurufen!

Obohl die rechtevergabe und ermittlung korekkt sind.

Könntet ihr mal bitte rüberschaun:
system/login.php
PHP:
<?php  
ob_start();
// Datenbankverbindung aufbauen  
include("../config.php"); 
if(!mysql_select_db("$dbname", $dbconnect)) {  
  die ("Keine Verbindung zur Datenbank");  
}  
$sql = "SELECT * FROM users WHERE username='".mysql_real_escape_string($_REQUEST["username"])."'";
$result = mysql_query($sql);   

if(mysql_num_rows($result) > 0) {   
	// Benutzerdaten in ein Array auslesen.   
	$data = mysql_fetch_array($result);
	if($data["pass"] == md5($_REQUEST["pass"])) {
		session_start();
		// Sessionvariablen erstellen und registrieren   
		$_SESSION["user_id"] = $data["id"];
		$_SESSION["user_username"] = $data["username"];
		$_SESSION["user_rights"] = $data["rights"];
			
		header ("Location: ../index.php?profil"); 
  } 
	else {
		header ("Location: ../index.php?fehler=3");
  }
} 
else {
	header ("Location: ../index.php?fehler=2");   
} 
ob_end_flush(); 
?>

show/profil.php
PHP:
if (isset($_GET["profil"]) && isset($_GET["profil"])) {
	include ("system/checkuser.php"); 
	include ("config.php");														// Datenbankzugriff
	
	if ($_SESSION["user_rights"] >= 1) {

users.sql
Code:
-- phpMyAdmin SQL Dump
-- version 2.8.1
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Erstellungszeit: 17. August 2006 um 11:20
-- Server Version: 5.0.21
-- PHP-Version: 5.1.4
-- 
-- Datenbank: `trummel`
-- 

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `users`
-- 

CREATE TABLE `users` (
  `id` tinyint(10) unsigned NOT NULL,
  `kdnr` varchar(255) default NULL,
  `username` varchar(255) default NULL,
  `pass` varchar(255) default NULL,
  `vorname` varchar(255) default NULL,
  `nachname` varchar(255) default NULL,
  `firma` varchar(255) default NULL,
  `strasse` varchar(255) default NULL,
  `plz` varchar(255) default NULL,
  `ort` varchar(255) default NULL,
  `tel` varchar(255) default NULL,
  `fax` varchar(255) default NULL,
  `handy` varchar(255) default NULL,
  `email` varchar(255) default NULL,
  `hp` varchar(255) default NULL,
  `rights` varchar(1) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;

Würde mich riesig auf hilfe freun

mfg, cille
 
hast du dir mal alles "echo'n" lassen?

Login / Passwort / md5(Passwort) ... die Session-Felder (insbesondere die rights)?
 
Hi ho,
danke für deine Antwort,
habe mit:
PHP:
<?php
// DATENBANK ECHO
		include("config.php");
		$sql = "SELECT * FROM users";
		$result = mysql_query($sql);
		while ($row = mysql_fetch_assoc($result)) {
			echo "$row[username] $row[pass], $row[email], $row[rights] <br>\n";
		}
?>

mir die wichtigsten felder auslesen lassen und das Funktioniert er listet alles schön auf. :(
die $_SESSION["rights"] sind eigentlich auch korrekt gesetzt, da es ja vorher funktioniert hat
 
ich logge mich mit dem admin ein der hat 3

und
if ($_SESSION["user_rights"] >= 1) {
echo "Blablub";
}

bedeutet ja user mit höher als 1 oder gleich 1 sind berechtigt dies zu sehen.
 
jo, dem stimm ich dir zu..

vielleicht kannst du ja noch die Teile vom Code posten, wo die eigentliche Fehlermeldung geworfen wird? So vom überfliegen des Codes seh ich keinen Fehler..
 
Hier mal der Komplette LOGIN CODE:
es wird alles über die url gesteuert das heist:
index.php?login
index.php?profil usw.

Code:

show/login.php
PHP:
<?php
if (isset($_GET["login"])) {
	session_start ();
	
	if(!isset($_SESSION["user_id"])) {
?>
<form action="system/login.php" method="post"> 
	<table border="0" align="left" cellpadding="0" cellspacing="2">
		<tr>
			<td>Name:</td>
			<td><input type="text" name="name" size="20"></td>
		</tr>
		<tr>
			<td>Kennwort:</td>
			<td><input type="password" name="pass" size="20"></td>
		</tr>
		<tr>
			<td><input type="submit" value="Login"></td>
		</tr>
	</table>
</form>
<?php
	}
	else {
		header ("Location: index.php?profil");
	}
}
?>
show/profil.php
PHP:
<?php 
if (isset($_GET["profil"]) && isset($_GET["profil"])) {
	include ("system/checkuser.php"); 
	include ("config.php");														// Datenbankzugriff
	
	if ($_SESSION["user_rights"] >= 1) {
?> 
  <div style="text-align:right"><a href="system/logout.php">Ausloggen</a></div>
	<hr />
	<a href="index.php?news=show">News</a> | <a href="rechner/" target="_blank" \>Preisrechner</a> | <a href="index.php?infos=show">Infos</a> | <a href="index.php?profil">Ihr Profil</a>
	<hr /> 
<?php
		$sql = "SELECT * FROM users WHERE id = '".mysql_real_escape_string($_SESSION["user_id"])."'";
		$result = mysql_query($sql);
		$data = mysql_fetch_array($result);
	
		echo "<b>Username: </b>".$_SESSION[user_username]."<br>".						// Passende Inhald wird angezeigt
				 "<b>Vorname: </b>".$data["vorname"]."<br>".
				 "<b>Nachname: </b>".$data["nachname"]."<br>".
				 "<b>E-Mail: </b><a href=\"mailto:".$data["email"]."\" value=\"Ihre E-Mail Adresse\">".$data["email"]."</a>".
				 "<br><br>";
				 
		if ($_SESSION["user_rights"] ==1) {
			echo "<hr><b>Offene Rechnungen</b><hr>".
				 	 "<div style=\"color: green\">Sie haben zurzeit keine offenen Rechnungen.</div>".
				 	 "<div style=\"color: red\">Sie haben noch [  ] offene Rechnungen!</div>".
					 "<br><br><br><hr>";
		}
		
		if ($_SESSION["user_rights"] >=2) {
?>
<hr />
<b>Admin Bereich:</b><hr />
<a href="index.php?admin=news">News</a> | <a href="index.php?admin=infos">Infos</a> | <a href="index.php?admin=user">User</a> | <a href="index.php?admin=rechnung">Rechnung</a>
<?php
		}
	}
}
?>
system/checkuser.php
PHP:
<?php 
ob_start ();
session_start();
if (!isset ($_SESSION["user_id"])) { 
	header ("Location: index.php?profil");
}
ob_end_flush (); 
?>
system/login.php
PHP:
<?php  
ob_start();
// Datenbankverbindung aufbauen  
include("../config.php"); 
if(!mysql_select_db("$dbname", $dbconnect)) {  
  die ("Keine Verbindung zur Datenbank");  
}  
$sql = "SELECT * FROM users WHERE username='".mysql_real_escape_string($_REQUEST["username"])."'";
$result = mysql_query($sql);   

if(mysql_num_rows($result) > 0) {   
	// Benutzerdaten in ein Array auslesen.   
	$data = mysql_fetch_array($result);
	if($data["pass"] == md5($_REQUEST["pass"])) {
		session_start();
		// Sessionvariablen erstellen und registrieren   
		$_SESSION["user_id"] = $data["id"];
		$_SESSION["user_username"] = $data["username"];
		$_SESSION["user_rights"] = $data["rights"];
			
		header ("Location: ../index.php?profil"); 
  } 
	else {
		header ("Location: ../index.php?fehler=3");
  }
} 
else {
	header ("Location: ../index.php?fehler=2");   
} 
ob_end_flush(); 
?>
system/logout.php
PHP:
<?php 
// Wird ausgeführt um mit der Ausgabe des Headers zu warten. 

session_start (); 
session_unset (); 
session_destroy (); 

header ("Location: ../index.php?logout"); 
?>
system/accept.php
PHP:
<?php 

if (isset($_GET['accept']) && $_GET['accept'] == 1 ) {
  echo "<b>Ihre Mitteilung wurde abgesendet!</b>";
}

if (isset($_GET['accept']) && $_GET['accept'] == 2 ) {
    echo "<b>User erfolgreich gelöscht!</b>";
} 

if (isset($_GET['accept']) && $_GET['accept'] == 3 ) {
    echo "<b>News erfolgreich eingetragen!</b>";
} 

if (isset($_GET['accept']) && $_GET['accept'] == 4 ) {
    echo "<b>News erfolgreich geändert!</b>";
} 

if (isset($_GET['accept']) && $_GET['accept'] == 5 ) {
    echo "News erfolgreich gelöscht klicken Sie [ <a href='index.php?profil'>HIER</a> ] um zum Profil zurück zu kehren!";
} 

if (isset($_GET['accept']) && $_GET['accept'] == 6 ) {
    echo "ACCEPT #6";
}

if (isset($_GET['logout'])) {
    echo "<b>Sie haben sich erfolgreich ausgeloggt!</b>";
} 
?>
system/fehler.php
PHP:
<?php 

if (isset($_GET['fehler']) && $_GET['fehler'] == 1 ) {
    echo "<b>Daten konnten nicht gesendet werden, es ist ein schwerwiegender fehler aufgetreten!</b>";
}

if (isset($_GET['fehler']) && $_GET['fehler'] == 2 ) {
    echo "<b>Sie sind nicht berechtigt dies Seite aufzurufen</b>!";
} 

if (isset($_GET['fehler']) && $_GET['fehler'] == 3 ) {
    echo "<b>Username/Password falsch, versuchen Sie es bitte noch einmal oder benachichtigen Sie uns!</b>";
}

if (isset($_GET['fehler']) && $_GET['fehler'] == 4 ) {
    echo "FEHLER #4";
} 

if (isset($_GET['fehler']) && $_GET['fehler'] == 5 ) {
    echo "FEHLER #5";
} 

if (isset($_GET['fehler']) && $_GET['fehler'] == 6 ) {
    echo "FEHLER #6";
} 
?>

Hoffe es hilft weiter, habe alles gepostet was zum eigentlichen LOGIN gehört
 
Habe es geschaft,
fehler ist gelöst, war ein kleiner fehler,
es ist so als wenn man eine Nadel im Heuhaufen sucht.

Bei show/login.php stand bei <input> statt "username" nur "name"!

PHP:
<?php
if (isset($_GET["login"])) {
	session_start ();
	
	if(!isset($_SESSION["user_id"])) {
?> 
<form action="system/login.php" method="post"> 
	<table border="0" align="left" cellpadding="0" cellspacing="2">
		<tr>
			<td>Name:</td>
			<td><input type="text" name="username" size="20"></td>    // Hier war der Fehler, da stand nur name, musste aber username hin ^^
		</tr>
		<tr>
			<td>Kennwort:</td>
			<td><input type="password" name="pass" size="20"></td>
		</tr>
		<tr>
			<td><input type="submit" value="Login"></td>
		</tr>
	</table>
</form>
<?php
	}
	else {
		header ("Location: index.php?profil");
	}
}
?>
 

Neue Beiträge

Zurück