Sessie die niet werkt??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Douwe Hoogeveen

Douwe Hoogeveen

05/11/2004 14:58:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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!??
 
PHP hulp

PHP hulp

04/05/2024 05:40:42
 

05/11/2004 15:01:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
session_start();
?>

MOET helemaal boven aan...
en een sessie zet je beter zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
$_SESSION
['sessienaam'] = $waarde;
?>
 
Glenn

Glenn

05/11/2004 15:02:00
Quote Anchor link
session start moet vanboven. het moet samen met de headers verzonden worden.
 

05/11/2004 15:07:00
Quote Anchor link
Te lui om in te loggen, dus editen gaat niet...

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
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...
 

05/11/2004 15:08:00
Quote Anchor link
ik combineer die twee,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
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;
 

05/11/2004 15:10:00
Quote Anchor link
Quote:
ik combineer die twee,


Zo moet het dus niet...
 
Jorik

Jorik

05/11/2004 15:19:00
Quote Anchor link
Lieven:
ik combineer die twee,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
header("Location: pagina.php");
?>
 
Douwe Hoogeveen

Douwe Hoogeveen

05/11/2004 16:06:00
Quote Anchor link
alvast bedankt voor jullie input!!! (vooral dat van dat java script, dat wist ik nog niet!!)
Maar nu het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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!??
 
Jorik

Jorik

05/11/2004 17:24:00
Quote Anchor link
doe es
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
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 ;)..
 
Douwe Hoogeveen

Douwe Hoogeveen

10/11/2004 16:04:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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!!!!!
 
Alfred -

Alfred -

10/11/2004 16:11:00
Quote Anchor link
Quote:
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... ?
 
Douwe Hoogeveen

Douwe Hoogeveen

10/11/2004 17:33:00
Quote Anchor link
Hoe bedoel je!?
$_SESSION['userlvl'] = $obj->userlevel;
hier toch!? Hij krijgt de waarde aangereikt vanuit de database!
 
Alfred -

Alfred -

10/11/2004 17:39:00
Quote Anchor link
Op die plek zet je $_SESSION['userlvl']
Maar daarom $userlvl zelf toch niet?
 
Douwe Hoogeveen

Douwe Hoogeveen

10/11/2004 18:52:00
Quote Anchor link
Ik begrijp je echt niet!! Copy paste een stuk van mijn code... en geef aan wat je bedoeld!!
 
Alfred -

Alfred -

10/11/2004 18:54:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
while($obj = mysql_fetch_object($result))
        {
    
            $_SESSION['log'] = $obj->username;
            $_SESSION['userlvl'] = $obj->userlevel;
            $_SESSION['user_id'] = $obj->userid;
            echo $obj->userlevel;
        }

?>


Try this, en euhm, als het jouw code was,
zou je me best begrijpen...
Maar soit, succes ermee...
 
Douwe Hoogeveen

Douwe Hoogeveen

18/11/2004 17:19:00
Quote Anchor link
Allereerste, de code is van mij!!! Nergens weg gejat. Als je nou es gewoon in normale woorden omschrijft wat je bedoelde, dan had dit niet gehoefd. De uitkomst van wat je hierboven hebt aangegeven is al bekend. Dat gegeven haalt ie namelijk uit de database. de echo regel. Maar op een één of te andere manier krijg je dus niet de inhoud van $_SESSION['userlvl'] te zien. En zodra je deze oproept om er een actie (if statement) mee uit te voeren krijg je ook niets.
Dus... het lijkt of de sessie gewoon niet goed wordt gevuld. Kan het te maken hebben met mijn database? Of heeft het andere punten...
Ik hoor het nog wel.
Gr. Douwe
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.