Ik ben bezig met het maken van een simpel nieuws post scripts in PHP. Dit nieuwsscript zal de waarden welke worden ingevuld in een normaal HTML form posten in een mysql database.
In mijn postnews.php code check ik ten eerste of er is ingelogd. Is dit niet het geval dan verschijnt er gelijk een foutmelding en stopt het script.
Vervolgens check ik of er is ingelogd maar de value Submit niet is gepost. Als dit het geval is is user dus voor het eerst op de pagina en volgt de form om in te vullen:
Ten slotte check ik of er is ingelogd en de pagina is gesubmit. Als dit het geval is worden de waarden in de MySQL DB geplaatst.
Het probleem is nu het volgende:
Het laten zien van de form aan een ingelogde user werkt.
Het posten van info door een ingelogde user werkt.
Helaas verschijnt na het succesvol submitten van nieuws altijd het bericht dat men niet is ingelogd.
Dit php bestand wordt opgeroepen vanuit een index.php waar session_start(); in is opgenomen. De sessie loopt dus wel dacht ik.
Hoe werkt dit nou precies met die sessies? Is de sessie info bij het posten ineens weg oid? Of maak ik er doordat ik maar net met php ben begonnen een puinhoop van?
In mijn postnews.php code check ik ten eerste of er is ingelogd. Is dit niet het geval dan verschijnt er gelijk een foutmelding en stopt het script.
PHP:
1
2
3
4
5
6
| <?php if (!(session_is_registered('Login'))) { echo "You are not logged in (<a HREF=\"http://www.test.nl/index.php?page=login\">login</a>)  "; } ?> |
Vervolgens check ik of er is ingelogd maar de value Submit niet is gepost. Als dit het geval is is user dus voor het eerst op de pagina en volgt de form om in te vullen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| if ( (session_is_registered('Login')) && (!(isset($_POST['Submit']))) ) { echo "<form action='postnews.php' method='post' name='postnews' id='postnews'>"; echo "Title<br><input type=text name=title size=25 maxlength=25><br>"; echo "Content<br><TEXTAREA name=content COLS=60 ROWS=6></TEXTAREA><br>"; echo "Userid<br><input type=text name=user_id size=4 maxlenght=4><br><br>"; echo "<input type='submit' name='Submit' value='NewsPost'>"; echo "</form>"; } ?> |
Ten slotte check ik of er is ingelogd en de pagina is gesubmit. Als dit het geval is worden de waarden in de MySQL DB geplaatst.
PHP:
1
2
3
4
5
| <?php if ( (session_is_registered('Login'))&&(isset($_POST['Submit'])) ) { ... code omitted ... } ?> |
Het probleem is nu het volgende:
Het laten zien van de form aan een ingelogde user werkt.
Het posten van info door een ingelogde user werkt.
Helaas verschijnt na het succesvol submitten van nieuws altijd het bericht dat men niet is ingelogd.
Dit php bestand wordt opgeroepen vanuit een index.php waar session_start(); in is opgenomen. De sessie loopt dus wel dacht ik.
Hoe werkt dit nou precies met die sessies? Is de sessie info bij het posten ineens weg oid? Of maak ik er doordat ik maar net met php ben begonnen een puinhoop van?
[ Voor 14% gewijzigd door Bor op 09-10-2003 17:46 ]
Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum