Hallo allen,
Ik zit met een probleem!! Ik wil graag binnen mijn check.php pagina gegevens controleren en variabelen er mee vullen en die in een sessie plaatsen. het vreemde is, dat het lijkt of mijn sessie niet werkt en niet gevuld wordt!!
Dit is de code:
<?php
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
session_start();
$log = "$gebruikersnaam";
$userlvl = "$obj->userlevel";
$iduser = "$obj->userid";
session_register("userlvl");
session_register("userid");
session_register("log");
echo "$log</br>";
echo "$userlvl</br>";
echo "$iduser</br>";
if ($userlvl == 1)
{
echo "<script>document.location.href='admin/index.php'</script>";
}
if ($userlvl == 2)
{
echo "<script>document.location.href='admin/index.php'</script>";
}
if ($userlvl == 3)
{
echo "<script>document.location.href='index.php'</script>";
}

}


?>
snap er niets van!! Wie kan mij helpen!??
<?
session_start();
?>
MOET helemaal boven aan...
en een sessie zet je beter zo:
<?
$_SESSION['sessienaam'] = $waarde;
?>
session start moet vanboven. het moet samen met de headers verzonden worden.
Te lui om in te loggen, dus editen gaat niet...


<?
echo "<script>document.location.href='index.php'</script>";
?>


Dat zal niet goed werken...

Ten eerste omdat niet in elke browser javascript standaard script is, fuck IE trouwens, en ten tweede, niet iedereen heeft javascript enabled...
ik combineer die twee,

<?
session_start();
include 'connect.php';

$sql = mysql_query("SELECT * FROM leden1 WHERE username='$username' AND password = '$password'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach($row AS $key => $val){
$$key = stripslashes($val);
}

session_register('userid');
$_SESSION['userid'] = $userid;
session_register('username');
$_SESSION['username'] = $username;
session_register('email');
$_SESSION['email'] = $email;
session_register('gender');
$_SESSION['gender'] = $gender;
session_register('country');
$_SESSION['country'] = $country;
session_register('level');
$_SESSION['level'] = $level;
ik combineer die twee,


Zo moet het dus niet...
Lieven schreef op 05.11.2004 15:08
ik combineer die twee,

<?
session_start();
include 'connect.php';

$sql = mysql_query("SELECT * FROM leden1 WHERE username='$username' AND password = '$password'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach($row AS $key => $val){
$$key = stripslashes($val);
}

$_SESSION['userid'] = $userid;
$_SESSION['username'] = $username;
$_SESSION['email'] = $email;
$_SESSION['gender'] = $gender;
$_SESSION['country'] = $country;
$_SESSION['level'] = $level;
?>

Sessies kosten dataverkeer hoor :)..
doe gewoon 1 sessie, en haal de rest van de gegevens uit de db..

voor een andere pagina:
<?
header("Location: pagina.php");
?>
alvast bedankt voor jullie input!!! (vooral dat van dat java script, dat wist ik nog niet!!)
Maar nu het volgende:
<?php
session_start();
include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
if ($userlvl == 1)
{
echo "$userlvl<br>";
echo "$log<br>";
echo "$user_id<br>";
// header("Location: admin/index.php");
}
if ($userlvl == 2)
{
header("Location: admin/index.php");
}
if ($userlvl == 3)
{
header("Location: index.php");
}

}


?>
(Code is dus nu veranderd naar wat jullie zeggen!!)
Hij doet het op zich wel, maar dan moet ik eerst op F5 drukken om het scherm te vernieuwen. Ik heb nu gewoon het uitlezen van de variabelen die in de sessie komen geplaatst onder userlevel 1. Hoe komt het dat ik dan eerst nog op F5 moet drukken!??
doe es
<?
echo $userlvl;
?>
ergens bovenaan en kijk of het een waarde heeft...

Ik geloofk nl. dat je helemaal die waarde nergens opgegeven hebt :P...
en haal de while loop weg, met where doe je maar 1 tje uit db pakken ;)..
<?php
session_start();
if (empty($_SESSION['log']))
{

include('connect.php');
$query = "SELECT * FROM user WHERE username='$gebruikersnaam' AND password='$wachtwoord'";
$result = mysql_query($query) or die ("Er is een error opgetreden bij het uitvoeren de opdracht. Probeer het later weer eens.");
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo "$userlvl";
}
}
else
{
if ($_SESSION['userlvl'] == 1)
{
echo "$userlvl";
}
if ($_SESSION['userlvl'] == 2)
{
header("Location: admin/index.php");
}
if ($_SESSION['userlvl'] == 3)
{
header("Location: index.php?id=recensietoevoegen");
}
}

?>

Dit is tot dusver mijn laatste code voor mijn check.php. Ik begrijp er werkelijk helemaal niets van! Zodra je inlogt, als beheerder met userlevel 1, dan moet de sessie userlvl gevuld worden met een 1. Vervolgens controleerd hij of hij een waarde heeft waarna er gecontroleerd wordt wat er dan moet gebeuren. In dit geval moet hij de uitkomst van de sessie userlvl als uitkomst geven dmv de echo "$userlvl"
Maar dit doet ie de eerste keer niet. Druk ik op F5, dan krijg ik de juiste waarde te zien.

HELP ME!!!!!
while($obj = mysql_fetch_object($result))
{
$_SESSION['log'] = $obj->username;
$_SESSION['userlvl'] = $obj->userlevel;
$_SESSION['user_id'] = $obj->userid;
echo "$userlvl";
}


Waar wordt $userlvl geset... ?

Reageren