Session geef verkeerde informatie
Gewijzigd op 01/01/1970 01:00:00 door Lol lol
Gewijzigd op 01/01/1970 01:00:00 door lol lol
if( $_SERVER['REQUEST_METHOD'] == "POST" ) {
//blurb
}
Gewijzigd op 01/01/1970 01:00:00 door lol lol
Gewijzigd op 01/01/1970 01:00:00 door lol lol
Je bent percies ook niet beveiligd tegen SQL injections??? is ook altijd goed he
Matthias schreef op 21.06.2009 12:57:
Je bent percies ook niet beveiligd tegen SQL injections??? is ook altijd goed he
Inderdaad, maar ik had wel wat beveiliging er in, alleen heb dit er even tijdelijk uitgehaald voor het debuggen.
PS:
Mag een action leeg zijn?
Ik heb dit gedaan zodat ik op iedere pagina kan inloggen alleen weet ik niet zeker of dit mag..
Een lege action stuurt je naar de url waarop het formulier wordt getoond.
Gewijzigd op 01/01/1970 01:00:00 door lol lol
Er moet een IF statement vóór die if, dus eerst kijken of de sessie al bestaat, bijv. door een session_id o.i.d. of je checkt gewoon simpelweg of er al een sessie bestaat.
Gewijzigd op 01/01/1970 01:00:00 door lol lol
Aangezien dit probleem weer over sessions gaan, dacht ik dat het beter was om dit topic te gebruiken dan een nieuwe te starten.
(Als het beter was om een nieuwe te starten, mijn excuses.)
Ik ben bezig met een admin pagina waar ik mijn berichten kan zien die ik heb gepost op de voorpagina en daar bij wil ik dan ook gelijk de optie hebben om de berichten te kunnen bewerken en verwijderen.
Nu is het probleem dat ik, als ik op bewerken klik dan ga ik naar een andere pagina die mij dan instaat stelt om mijn bericht te bewerken.
Nu heb ik een beetje zitten na denken over hoe ik kan kijken welk bericht ik heb aan geklikt en kwam ik er op uit dat ik het met sessions moet doen.
Nu heb ik in de pagina waar ik mijn berichten kan zien een query opgesteld dat alle data weer geeft, tijdelijk voor het debuggen ook het ID, nu geef ik het ID, dat van het bericht is die in de database staat en doe ik dat in een session.
Op de pagina bewerken roep ik de session op, maar kom ik op het probleem dat dit continue de zelfde waarde geeft, in dit geval 12, en dat betekend dus dat ik de andere berichten niet kan bewerken.
Misschien allemaal een beetje omslachtig uitgelegd maar ik zal de codes er bij zetten.
PS:
Ik gebruik wel session_start, maar dit staat hier niet in, omdat mijn pagina's worden geincluded.
Pagina die de berichten weer geeft:
Code (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
43
44
45
46
47
48
49
50
51
52
53
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
45
46
47
48
49
50
51
52
53
<?php
include(inc/connect.php);
mysql_select_db("nieuws") or die("COULDNT SELECT DB :" . mysql_error());
$nieuwsquery = mysql_query("SELECT id, titel , bericht, datum, username FROM nieuws ORDER BY datum DESC")or die("COULDNT GET DATA FROM DB : " . mysql_error());
while($rij = mysql_fetch_assoc($nieuwsquery)){
$id = $rij['id'];
$titel = $rij['titel'];
$bericht = $rij['bericht'];
$datum = $rij['datum'];
$user = $rij['username'];
echo '
<table>
<tr>
<td>Titel:</td>
<td><strong>'. $titel . '</strong></td>
</tr>
<tr>
<td valign="top">Bericht:</td>
<td><strong> '. nl2br($bericht) . ' </strong></td>
</tr>
<tr>
<td>Datum:</td>
<td><strong> '. $datum .' </strong></td>
</tr>
<tr>
<td>Door:</td>
<td><strong> ' . $user . ' </strong></td>
</tr>
<tr>
<td> '.$id.'</td>
</tr>
<hr>
<br>
<tr>
<td><a href="?pagina=bewerken&onderdeel=admin">Bewerken</a></td>
<td><a href="">Verwijderen</a></td>
</tr>
</table>
<br>
<br>
';
$_SESSION['adminid'] = $id;
}
?>
include(inc/connect.php);
mysql_select_db("nieuws") or die("COULDNT SELECT DB :" . mysql_error());
$nieuwsquery = mysql_query("SELECT id, titel , bericht, datum, username FROM nieuws ORDER BY datum DESC")or die("COULDNT GET DATA FROM DB : " . mysql_error());
while($rij = mysql_fetch_assoc($nieuwsquery)){
$id = $rij['id'];
$titel = $rij['titel'];
$bericht = $rij['bericht'];
$datum = $rij['datum'];
$user = $rij['username'];
echo '
<table>
<tr>
<td>Titel:</td>
<td><strong>'. $titel . '</strong></td>
</tr>
<tr>
<td valign="top">Bericht:</td>
<td><strong> '. nl2br($bericht) . ' </strong></td>
</tr>
<tr>
<td>Datum:</td>
<td><strong> '. $datum .' </strong></td>
</tr>
<tr>
<td>Door:</td>
<td><strong> ' . $user . ' </strong></td>
</tr>
<tr>
<td> '.$id.'</td>
</tr>
<hr>
<br>
<tr>
<td><a href="?pagina=bewerken&onderdeel=admin">Bewerken</a></td>
<td><a href="">Verwijderen</a></td>
</tr>
</table>
<br>
<br>
';
$_SESSION['adminid'] = $id;
}
?>
Momenteel heb ik voor het debuggen op de pagina bewerken alleen nog maar staan;
Maar deze blijft de waarde 12 hebben.
Mijn vraag is dan ook, hoe kan ik het ID meegeven die in de database staat, zodat ik het bericht dat ik heb geselecteerd kan bewerken.
Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door lol lol
SanThe schreef op 27.06.2009 00:15:
Je zal hierin <a href="?pagina=bewerkenonderdeel=admin" het id mee moeten geven.
Edit: En waarom staat er nu twee keer een = in?
Edit: En waarom staat er nu twee keer een = in?
Ik heb het geedit en waarschijnlijk wat te veel weggehaald, maar de correcte notatie is;
<a href="?pagina=bewerken&onderdeel=admin"></a>
Edit:
Ah, nu heb ik het door, ik heb een variabele aangemaakt voor het id in te zetten, nu heb ik het voor elkaar dat het, juiste, id er instaat.
Alleen nu heb ik het probleem nog, als ik de session echo, dat het nog steeds 12 weergeeft.
Ah, nu heb ik het door, ik heb een variabele aangemaakt voor het id in te zetten, nu heb ik het voor elkaar dat het, juiste, id er instaat.
Alleen nu heb ik het probleem nog, als ik de session echo, dat het nog steeds 12 weergeeft.
Gewijzigd op 01/01/1970 01:00:00 door lol lol
De session waarde wordt steeds overschreven in de loop. Dus dat ie steeds hetzelfde getal geeft is wel logisch.
SanThe schreef op 27.06.2009 12:00:
De session waarde wordt steeds overschreven in de loop. Dus dat ie steeds hetzelfde getal geeft is wel logisch.
Ik begrijp wat je bedoelt, maar kan het niet in praktijk brengen, naja, ik zal de code even meegeven.
Mijn berichten pagina;
Code (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
43
44
45
46
47
48
49
50
51
52
53
54
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
45
46
47
48
49
50
51
52
53
54
<?php
include("inc/connect.php");
mysql_select_db("nieuws") or die("COULDNT SELECT DB :" . mysql_error());
$nieuwsquery = mysql_query("SELECT id, titel , bericht, datum, username FROM nieuws ORDER BY id DESC")or die("COULDNT GET DATA FROM DB : " . mysql_error());
while($rij = mysql_fetch_assoc($nieuwsquery)){
$id = $rij['id'];
$titel = $rij['titel'];
$bericht = $rij['bericht'];
$datum = $rij['datum'];
$user = $rij['username'];
$_SESSION['adminid'] = $id;
echo '
<table>
<tr>
<td>Titel:</td>
<td><strong>'. $titel . '</strong></td>
</tr>
<tr>
<td valign="top">Bericht:</td>
<td><strong> '. nl2br($bericht) . ' </strong></td>
</tr>
<tr>
<td>Datum:</td>
<td><strong> '. $datum .' </strong></td>
</tr>
<tr>
<td>Door:</td>
<td><strong> ' . $user . ' </strong></td>
</tr>
<tr>
<td> '.$id.'</td>
</tr>
<hr>
<br>
<tr>
<td><a href="?pagina=bewerken&adminid='. $_SESSION['adminid'] .'&onderdeel=admin">Bewerken</a></td>
<td><a href="">Verwijderen</a></td>
</tr>
</table>
<br>
<br>
';
}
?>
include("inc/connect.php");
mysql_select_db("nieuws") or die("COULDNT SELECT DB :" . mysql_error());
$nieuwsquery = mysql_query("SELECT id, titel , bericht, datum, username FROM nieuws ORDER BY id DESC")or die("COULDNT GET DATA FROM DB : " . mysql_error());
while($rij = mysql_fetch_assoc($nieuwsquery)){
$id = $rij['id'];
$titel = $rij['titel'];
$bericht = $rij['bericht'];
$datum = $rij['datum'];
$user = $rij['username'];
$_SESSION['adminid'] = $id;
echo '
<table>
<tr>
<td>Titel:</td>
<td><strong>'. $titel . '</strong></td>
</tr>
<tr>
<td valign="top">Bericht:</td>
<td><strong> '. nl2br($bericht) . ' </strong></td>
</tr>
<tr>
<td>Datum:</td>
<td><strong> '. $datum .' </strong></td>
</tr>
<tr>
<td>Door:</td>
<td><strong> ' . $user . ' </strong></td>
</tr>
<tr>
<td> '.$id.'</td>
</tr>
<hr>
<br>
<tr>
<td><a href="?pagina=bewerken&adminid='. $_SESSION['adminid'] .'&onderdeel=admin">Bewerken</a></td>
<td><a href="">Verwijderen</a></td>
</tr>
</table>
<br>
<br>
';
}
?>
Zoals je ziet heb ik toch weer die session in de loop gezet, dit komt omdat anders wordt de session niet gezet en het juiste id komt nu wel in de url te staan.
Mijn bewerk pagina: (waar het nu fout gaat)
Code (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
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
<?php
include("inc/connect.php");
mysql_select_db("nieuws") or die("COULDNT SELECT DB :" . mysql_error());
$nieuwsquery = mysql_query("SELECT id, titel, bericht FROM nieuws WHERE id='".$_SESSION['adminid']."' ")or die("COULDNT GET DATA FROM DB : " . mysql_error());
while($rij = mysql_fetch_assoc($nieuwsquery)){
$id = $rij['id'];
$titel = $rij['titel'];
$bericht = $rij['bericht'];
}
$_SESSION['adminid'] = $id;
echo '
<table>
<tr>
<td><strong>De titel:</strong></td>
<td><input type="text" value="'.$titel.'"></td>
</tr>
<tr>
<td valign="top"><strong>Het bericht:</strong></td>
<td><textarea cols="50" rows="25">'.strip_tags(nl2br($bericht)).'</textarea></td>
</tr>
</table>
';
?>
include("inc/connect.php");
mysql_select_db("nieuws") or die("COULDNT SELECT DB :" . mysql_error());
$nieuwsquery = mysql_query("SELECT id, titel, bericht FROM nieuws WHERE id='".$_SESSION['adminid']."' ")or die("COULDNT GET DATA FROM DB : " . mysql_error());
while($rij = mysql_fetch_assoc($nieuwsquery)){
$id = $rij['id'];
$titel = $rij['titel'];
$bericht = $rij['bericht'];
}
$_SESSION['adminid'] = $id;
echo '
<table>
<tr>
<td><strong>De titel:</strong></td>
<td><input type="text" value="'.$titel.'"></td>
</tr>
<tr>
<td valign="top"><strong>Het bericht:</strong></td>
<td><textarea cols="50" rows="25">'.strip_tags(nl2br($bericht)).'</textarea></td>
</tr>
</table>
';
?>
Maar nu krijg ik nog steeds niet het juiste bericht te zien, continue krijg ik weer het bericht van ID 12 te zien. Nu ziet het er naar uit dat ik misschien niks heb gedaan, maar ik weet niet precies waar ik op moet zoeken, dus mijn excuses voor dat.
Gewijzigd op 01/01/1970 01:00:00 door lol lol
Serieus, waarom maak je al je posts leeg? Zo hebben mensen ook niets aan de zoekfunctie.
roel schreef op 28.06.2009 00:55:
off-topic:
Serieus, waarom maak je al je posts leeg? Zo hebben mensen ook niets aan de zoekfunctie.
Serieus, waarom maak je al je posts leeg? Zo hebben mensen ook niets aan de zoekfunctie.
OT:
Ik wou het wat overzichtelijker maken, maar nu je dit zegt heb je inderdaad gelijk, mijn excuses!