Fout in session

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 4 volgende »

Paul Oosting

Paul Oosting

09/06/2011 12:41:55
Quote Anchor link
kijk eens helemaal bovenaan, daar staat de hele code, er staat een else waarin een database.php wordt geinclude, niets meer niets minder, het ligt niet aan de post, er gebeurt iets wazigs met mijn SESSION aangezien hij de namen verandert of zomaar uitlogt
 
PHP hulp

PHP hulp

25/04/2024 22:03:23
 
Dennis meijer

dennis meijer

09/06/2011 12:44:00
Quote Anchor link
@Paul

Je moet eens hulp accepteren want er staat een foutmelding dat je post niet gevuld is of gewoon niet bestaat.

Je moet dus even in je formulier kijken of je een input veld hebt met de naam actie.

En kijken of deze gevuld word.

Als dit het geval is kunnen we een andere oorzaak opzoeken maar dit is de meest voor de hand liggende oorzaak.

Jammer dat je geen hulp accepteert zoals je het nu zegt.

Succes.
 
- SanThe -

- SanThe -

09/06/2011 12:44:54
Quote Anchor link
Zet session_start() eens in het geposte bestand. Maakt dat uit?
 
Paul Oosting

Paul Oosting

09/06/2011 12:46:32
Quote Anchor link
Ik accepteer elke hulp, maar ik heb het gevoel dat jij mij niet begrijpt o.i.d.
Bovendien staat er geen 'foutmelding' maar 'notice', niks ernstigs dus. Als je alles hebt gelezen zou je het totale plaatje moeten begrijpen

Toevoeging op 09/06/2011 12:46:57:

- SanThe - op 09/06/2011 12:44:54:
Zet session_start() eens in het geposte bestand. Maakt dat uit?


Nee geen verschil
 
- SanThe -

- SanThe -

09/06/2011 12:49:05
Quote Anchor link
Paul Oosting op 09/06/2011 12:46:32:
- SanThe - op 09/06/2011 12:44:54:
Zet session_start() eens in het geposte bestand. Maakt dat uit?


Nee geen verschil


Je hebt wel session_start() ook in dat andere bestand staan? Dan moet je een error krijgen. Krijg je die niet dan wordt er geen include() gedaan.
 
Paul Oosting

Paul Oosting

09/06/2011 12:51:38
Quote Anchor link
Beide session_starts waren er nog, geen verschil. Maar ik heb het gevoel dat de webserver de session verkracht. Moet ik misschien session_save_path gebruiken?
 
- SanThe -

- SanThe -

09/06/2011 12:54:37
Quote Anchor link
Error_reporting staat aan. Twee keer session_start(). Dat MOET een 'headers already send' error geven. Doet ie dat niet dan wordt er slechts één keer session_start() gedaan en wordt dus het bestand niet geinclude().
 
Paul Oosting

Paul Oosting

09/06/2011 12:58:16
Quote Anchor link
Je bedoelt de database.php dat die niet geinclude wordt?
 
Ozzie PHP

Ozzie PHP

09/06/2011 13:00:20
Quote Anchor link
Paul Oosting op 09/06/2011 11:36:26:
Ik gebruik session_destroy voor het uitloggen, hier is de code die ik tot nu heb (hij is bij lange na nog niet af)

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
34
35
36
37
38
39
40
41
42
43
44
<?
if ($_POST['actie']=='Opslaan'){
    include "../database.php";

}


else{
    include "database.php";
    
    $filiaal=$_SESSION['filiaal'];
    $sql="SELECT naam,user_id FROM medewerkers WHERE filiaal='$filiaal'";
    $r=mysql_query($sql);
    
    echo"
    
        <table cellspacing='0'>
            <tr>
                <th>
                    Verantwoordelijke
                </th>
                <th>
                    Taken
                </th>
                <th>
                    Omschrijving
                </th>
            </tr>
            <tr>
                <td class='border-left border-bottom'>"
;
                    while ($row=mysql_fetch_array($r)){
                        $id=$row['user_id'];
                        $naam=$row['naam'];
                        echo "<a href='index.php?page=taken/overzicht&map=taken&id=$id'>".$naam."</a><br>";
                    }

    echo"            
                </td>
            </tr>
        </table>
        
    
    "
;
}


?>



als je hier refresht, verandert hij dus de $_SESSION naam.

Deze pagina, heet overzicht.php. In de index.php include ik deze pagina die hij uit een $_GET haalt: index.php?page=overzicht.php , de index is zeg maar de opmaak.

En in de database.php staat session_start()

het kan zijn dat ik er overheen kijk, maar ik zie nergens $_SESSION['naam']. Ik zie wel een $_SESSION['filiaal'].

Zet eens ergens bovenin (na session_start):

echo '<br>**';
var_dump($_SESSION['filiaal']);
echo '**<br>';

Wat komt er dan in beeld te staan, en wat gebeurt er als je de pagina refresht?
 
Paul Oosting

Paul Oosting

09/06/2011 13:02:46
Quote Anchor link
Ozzie PHP op 09/06/2011 13:00:20:
Paul Oosting op 09/06/2011 11:36:26:
Ik gebruik session_destroy voor het uitloggen, hier is de code die ik tot nu heb (hij is bij lange na nog niet af)

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
34
35
36
37
38
39
40
41
42
43
44
<?
if ($_POST['actie']=='Opslaan'){
    include "../database.php";

}


else{
    include "database.php";
    
    $filiaal=$_SESSION['filiaal'];
    $sql="SELECT naam,user_id FROM medewerkers WHERE filiaal='$filiaal'";
    $r=mysql_query($sql);
    
    echo"
    
        <table cellspacing='0'>
            <tr>
                <th>
                    Verantwoordelijke
                </th>
                <th>
                    Taken
                </th>
                <th>
                    Omschrijving
                </th>
            </tr>
            <tr>
                <td class='border-left border-bottom'>"
;
                    while ($row=mysql_fetch_array($r)){
                        $id=$row['user_id'];
                        $naam=$row['naam'];
                        echo "<a href='index.php?page=taken/overzicht&map=taken&id=$id'>".$naam."</a><br>";
                    }

    echo"            
                </td>
            </tr>
        </table>
        
    
    "
;
}


?>



als je hier refresht, verandert hij dus de $_SESSION naam.

Deze pagina, heet overzicht.php. In de index.php include ik deze pagina die hij uit een $_GET haalt: index.php?page=overzicht.php , de index is zeg maar de opmaak.

En in de database.php staat session_start()

het kan zijn dat ik er overheen kijk, maar ik zie nergens $_SESSION['naam']. Ik zie wel een $_SESSION['filiaal'].

Zet eens ergens bovenin (na session_start):

echo '<br>**';
var_dump($_SESSION['filiaal']);
echo '**<br>';

Wat komt er dan in beeld te staan, en wat gebeurt er als je de pagina refresht?




Die $_SESSION['naam'] staat in de index.php waar de opmaak van de website in is opgemaakt, neem van mij aan dat die hem laat zien, en verandert
 
Ozzie PHP

Ozzie PHP

09/06/2011 13:04:13
Quote Anchor link
en wat gebeurt er met $_SESSION['filiaal']? var_dump die eens...
 
Paul Oosting

Paul Oosting

09/06/2011 13:05:54
Quote Anchor link
**string(6) "Lemmer" **
 
Ozzie PHP

Ozzie PHP

09/06/2011 13:07:13
Quote Anchor link
Oke, en die verandert niet als je refresht?
 
Paul Oosting

Paul Oosting

09/06/2011 13:12:47
Quote Anchor link
Nee, maar als je refresht verandert de naam naar een collega hier in het zelfde filiaal, ik zal even zijn filiaal weizigen en dan laat ik het horen

Als ik hem weghaal gaat die collega ook helemaal weg, omdat ik vanuit het database de personen selecteer where filiaal=$filiaal, maar wanneer ik dan refresh gebeurt er niks raars
Gewijzigd op 09/06/2011 13:16:26 door Paul Oosting
 
Ozzie PHP

Ozzie PHP

09/06/2011 13:19:03
Quote Anchor link
Zo te horen ligt het niet aan de sessie, maar eerder aan de gegevens die worden opgehaald uit de database.

Maar wat gebeurt er nu precies... je krijgt meerdere medewerkers in beeld en na het refreshen wijzigt de naam van een van de medewerkers?
 
Paul Oosting

Paul Oosting

09/06/2011 13:27:47
Quote Anchor link
Kan...

Wat er gebeurt is, wanneer je inlogt wordt je naam uit het database gehaalt en daar wordt een $_SESSION['naam'] variabele van gemaakt.

Deze laat ik de hele tijd zien bovenaan de pagina als 'Welkom Paul Oosting' als ik zelf ben ingelogt.

Maar wanneer je refreshed verandert deze naam 'Paul Oosting' in de naam van een collega 'John Doe' (ik ga verder geen namen noemen) maar hij verandert dus die $_SESSION['naam'] op de één of andere manier terwijl daar helemaal niks van staat in het script dat hij die moet veranderen
 
Ozzie PHP

Ozzie PHP

09/06/2011 13:29:41
Quote Anchor link
Laat de code eens zien waar de naam uit de database wordt gehaald en waar hij in de sessie wordt gezet.
 
Paul Oosting

Paul Oosting

09/06/2011 13:30:40
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
34
35
<?php

include "database.php";

$naam=$_POST['naam'];
$wachtwoord=$_POST['wachtwoord'];
$wachtwoord=md5($wachtwoord);

$sql="SELECT * FROM medewerkers WHERE user='$naam' and pass='$wachtwoord'";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result)){
$user_id=$row['user_id'];
$naam=$row['naam'];
$user=$row['user'];
$filiaal=$row['filiaal'];
$email=$row['email'];
}


$count=mysql_num_rows($result);

if ($count==1){
$_SESSION['naam']="$naam";
$_SESSION['user_id']="$user_id";
$_SESSION['user']="$user";
$_SESSION['filiaal']="$filiaal";
$_SESSION['email']="$email";

header ("location:index.php?page=modules");
}


else{
header ("location:index.php");
}


?>
 
Vincent Huisman

Vincent Huisman

09/06/2011 13:32:27
Quote Anchor link
Haal $vars buiten quotes, denk om sql injection, bouw een goede foutafhandeling en stop alleen een id in een session. Dan kan je met een query de rest wel ophalen.
 
Ozzie PHP

Ozzie PHP

09/06/2011 13:40:37
Quote Anchor link
kun je de rest van die pagina (index.php) ook even laten zien?
 

Pagina: « vorige 1 2 3 4 volgende »



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.