[PHP]Session variabelen niet gelezen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 13:09
Hoi mensen,

Misschien is dit wel een ontzettende n00b vraag maar ik vraag het toch even. Ik ben nu met een scriptje bezig waarbij ik een sessie start als iemand succesvol ind e database voorkomt (ingelogt dus).

Daarna heb ik een script gemaakt dat de sessie moet uitlezen en dat variabel moet bekijken en een actie moet doen als het variabel een bepaalde waarde heeft in mijn geval 'admin'. Dus als variabel a == admin dan bla bla bla }else{ iets anders.. maar dat doet ie dus niet.

Op eenof andere manier kijkt het script niet naar de variabel maar zegt ALTIJD dat het een admin is (en ja dan kan iedereen dus adminfuncties aanroepen..

Dit is het script (inlog)

PHP:
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
34
35
36
37
38
39
40
41
42
<?PHP
include("connect.php");

db_connect();
session_start();

$gebruikersnaam = $_POST["login"];
$wachtwoord = $_POST["password"];



    if( $gebruikersnaam == "" ){
        echo("U heeft geen gebruikersnaam ingevuld probeer <a href=index.php>opnieuw</a>");
    }else{
        if( $wachtwoord == "" ){
            echo("u heeft geen wachtwoord ingevuld probeer <a href=index.php>opnieuw</a>");
            die;
        }else{
            
            $sql_query = "SELECT username, password FROM gebruikers WHERE username = '$gebruikersnaam'";
            //echo $sql_query;
            $result = mysql_query ($sql_query) or die;
            $row = mysql_fetch_array($result);
            
            if($row['username'] == ""){
                die("Je gebruikersnaam is niet gevonden <a href=registratie.php>registreert</a> u zich aub");               
            }else{
                $password = $row["password"];
            }

            if( $password != $wachtwoord ){
                echo(" wachtwoord is niet juist");
                die;
            }else{
                $_SESSION['LOGIN'] = $gebruikersnaam;
                echo("welkom $gebruikersnaam, klik <a href=gebruikers.php>hier</a> om naar de site gaan. ");
            }
                
        }
    }
                
?>


en dit is het script wat er moet worden uitgevoerd om te kijken of hij daadwerkelijk admin is of niet..

PHP:
1
2
3
4
5
6
7
8
 <?php
                session_start();
                if( $_session['LOGIN'] != 'admin'){
                    echo("dit is geen admin paneel");
                    }else{
                    echo("dit is wel een adminpaneel");
                    }
                    ?>


Er staat nog niet veel in mara ja wil het eerst werkende hebben.. Ik snap in ieder geval niet waarom hij die sessie niet doorstart en dus daar iets mee gaat doen..

wie weet de oplossing?

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

wat geeft de
PHP:
1
echo("welkom $gebruikersnaam, klik <a href=gebruikers.php>hier</a> om naar de site gaan. ");
dan weer? als je inlogt met test geeft deze test weer en bij admin admin :?

[ Voor 118% gewijzigd door Spider.007 op 11-06-2003 18:47 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

die variabele heet toch $_SESSION en geen $_session...

Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 13:09
thanx nokia, maar dat is het dus niet. Als ik een scriptje neer gooi dat uit moet lezen wat er in de session staat:
PHP:
1
2
3
4
5
6
7
8
      <?php
                
                    
                        session_start(["LOGIN"]);
                        print("$gebruikersnaam");
                        
                    ?>
   


dan doet ie niks. ik krijg niks te zien.

en spider.. ik weet niet helemaal wat je bedoelt met je vraag. MAar als je bedoelt of daar gewoon de gebruikersnaam wordt ingevuld als je inlogt dan doet ie dat idd. Hij geeft aan als ik admin invul (en die staat in de dabase etc) Welkom admin bla bla bla maar als ik een andere gebruiker invul dan geeft ie die aan.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Da Monkey schreef op 12 June 2003 @ 07:05:
thanx nokia, maar dat is het dus niet. Als ik een scriptje neer gooi dat uit moet lezen wat er in de session staat:
PHP:
1
2
3
4
<?php
session_start(["LOGIN"]);
print("$gebruikersnaam");
?>

dan doet ie niks. ik krijg niks te zien.
Ik hoop dat je begrijpt dat deze twee regels inderdaad niets doen? De eerste regels start de sessie; maar daar kun je geen argumenten aan mee geven. Als je de gebruikersnaam opslaat in de sessie onder de naam LOGIN; dan moet je hem ook onder die naam opvragen. Dus dit moet wel werken:

PHP:
1
2
3
session_start();
$_SESSION['login'] = "test";
echo $_SESSION['login'];


Klopt het dat dit werkt bij jou?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 13:09
Dat doet ie maar het gaat er dus om dat hij naar een andere pagina moet gaan en daar wat er in de sessie staat uit moet lezen om er vervolgens een ifje mee te maken.

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Probeer eens in het eerste script de session_start(); echt bovenaan de pagina te zetten. (boven de include) Misschien dat er toch ergens iets van output gegenereerd wordt waardoor de sessie niet geregistreerd wordt.

Probeer daarnaast ook even een print_r($_SESSION); op de tweede pagina om te kijken wat er nu precies in je sessie variabele staat.

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 13:09
We hebben het al gevonden. Er stond een foutje in de php.ini (welke weten we niet) heb de php.ini vanaf een andere pc naar deze pc gekopieert en nu doet ie het. (maar ja straks thuis niet want daar heb ik dezelfde foutmelding)

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

Verwijderd

moet je niet ook session_register gebruiken?

http://nl.php.net/manual/nl/function.session-register.php

Acties:
  • 0 Henk 'm!

Verwijderd

session_register is de oude methode om sessies aan te maken nu doe je $_SESSION['var'] = "bla";

Acties:
  • 0 Henk 'm!

Verwijderd

oeps, dat staat er zelfs nog bij in de manual!

If you want your script to work regardless of register_globals, you need to use the $_SESSION array. All $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where register_globals is disabled.
Verwijderd schreef op 12 June 2003 @ 16:32:
session_register is de oude methode om sessies aan te maken nu doe je $_SESSION['var'] = "bla";
Pagina: 1