Dann such im Forum. Das Thema ist nicht neu. Und wenn du gar keinen Plan hast, dann gibts hier auch ein fertiges "Usermanagement"
Session Problem
Einklappen
X
-
Hab das mit dem Login nun gelöst, nur ein Problem gibt es noch. In meiner Tabelle gibt es auch eine Spalte namens "user_level". Ich logge mich also ein und $_SESSION['username'] ist gleich dem Benutzernamen, den man zum einloggen benutzt hat. Diesen kann ich problemlos ausgeben. Nun will ich mit genau diesem Wert in meiner Tabelle "nachschauen" lassen, welchen Wert user_level denn für diesen User entält, um ihm nur bestimmte Sachen anzeigen zu lassen. Und genau das klappt nicht, am Ende ist nämlich $user_level leer, aber warum?
Eine Fehlermeldung gibt es nicht.
PHP-Code:// USER-LEVEL
require('assets/system/mysql.inc.php');
$result = mysqli_query($connectionid, "SELECT user_level FROM user WHERE username='" . $_SESSION['username'] . "'");
while ($zeile = mysqli_fetch_array($result)) {
$user_level = $zeile['user_level'];
}
Kommentar
-
1. error_reporting()
2. mysql_error() abfangen
Müssen wir alles wiederholen, was schon im Regel-Thread steht.
Debuggen gehört zum Programmieren, nicht nur Copy+Paste. Zum Glück ist morgen Montag...
BTW: wozu ne while-schleife. Wie viele Benutzer erwartest du mit dem selben Nutzernamen?
Kommentar
-
Dann hast du die regeln also immer noch nicht befolgt??
PHP-Code:$sql = "SELECT user_level level FROM user WHERE username='" . $_SESSION['username'] . "'";
$result = mysqli_query($connectionid,$sql) or die(mysqli_error())
$user = mysqli_fetch_array($result);
print_r($user); print_r($_SESSION);
Kommentar
-
Wenn print_r($user) nicht ausgibt, dann hast du unsere Regeln immer noch nicht befolgt. Error_reporting auf E_ALL setzen. Wenn ich das jetzt noch mal sagen muss, dann mach ich diesen Thread dicht!
ersetz "user_level level" mal durch "*" (jeweils ohne "")
lösch die where-bedingung mal raus.
Was passiert jetzt?
Kommentar
-
Error_reporting mit $_SESSION['username']
Notice: Undefined variable: _SESSION in /home/khexcurs/public_html/acp/home.php on line 6
print_r($user) => nichts
Error_reporting ohne $_SESSION['username']
Fehler: keiner
print_r($user) => Array ( [0] => Administrator [user_level] => Administrator )
Kommentar
-
session_start(); ist doch da!
PHP-Code:<?php
error_reporting(E_ALL);
// SESSION
session_start();
if (!isset($_SESSION['zugang']) || !$_SESSION['zugang']) {
header('Location: index.php');
exit;
}
if ($_GET['action'] == "logout") {
session_destroy();
$logout = "<h1>Logged out!</h1>\n Thank you for logging out. You will be redirected to the login-form in 6 seconds.\n"."<meta http-equiv=\"refresh\" content=\"6; URL=index.php\" />";
} else $logout = "";
// USER-LEVEL
require('assets/system/mysql.inc.php');
$sql = "SELECT user_level FROM user WHERE username='" . $_SESSION['username'] . "'";
$result = mysqli_query($connectionid,$sql) or die(mysqli_error());
$user_level = mysqli_fetch_array($result);
?>
Kommentar
Kommentar