login  Naam:   Wachtwoord: 
Registreer je!
 Forum

session probleem

Offline BigBug - 14/05/2005 15:11 (laatste wijziging 14/05/2005 15:11)
Avatar van BigBugPHP expert Hey ik ben bezig met een chatbox (nu nog zwaar primitief) (http://www.members.lycos.nl/mijnchatbox )

Ik heb 4 pagina's:
-Index hier kan je je nickname invullen:
  1. <?php
  2.  
  3. if(isset($_POST['sub'])) { //we kijken of het al is gesubmitted
  4. $_SESSION['nick'] = $_POST['nick']; // we geven $_SESSION['nick'] de waarde van de nickname die ingevuld is
  5.  
  6. }
  7. else {
  8. ?>
  9. <html>
  10. <head>
  11. <title></title>
  12. </head>
  13. <body>
  14. <form name="form" method="POST" action="index2.php">
  15. <input type="text" name="nick" value="nick">
  16. <input type="submit" name="sub" value="Nick It">
  17. </form>
  18. </body>
  19. </html>
  20. <?php
  21. } // we sluiten het else statement af ;-)
  22. ?>


index2, framespagina waarin weer 2 pagina's worden geladen:
  1. <html>
  2.  
  3. <head>
  4. <title>Chatbox</title>
  5.  
  6. </head>
  7.  
  8. <frameset rows="*,10%">
  9. <frame name="hoofd" target="voet" src="bekijk.php">
  10. <frame name="voet" src="writeding.php">
  11. <noframes>
  12. <body>
  13.  
  14. <p>Op deze pagina worden frames gebruikt, maar uw browser ondersteunt geen
  15. frames.</p>
  16.  
  17. </body>
  18. </noframes>
  19. </frameset>
  20.  
  21. </html>


De top (include txtfile)
  1. <html>
  2.  
  3. <head>
  4. <title></title>
  5. <meta http-equiv='refresh' content='2;url=bekijk.php'>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <?php
  11.  
  12. include 'file.txt';
  13.  
  14. ?>
  15.  
  16. </body>
  17.  
  18. </html>


En het submit paginaatje, daar zit waarschijnlijk de fout, of bij de index:

  1. <html>
  2.  
  3. <head>
  4. <title></title>
  5. </head>
  6.  
  7. <body>
  8. <form name="formulier">
  9. <input type="text" name="bericht" value="Hier een bericht.">
  10. <input type="submit" name="sub" value="Voeg Bericht Toe!">
  11. </form>
  12.  
  13. <?php
  14. $bestand="file.txt";
  15. $open = fopen($bestand,"a");
  16.  
  17. if (isset($_GET['sub'])) {
  18. fwrite($open, $_SESSION['nick'].": ".$_GET['bericht']."<br>");
  19. echo ('bericht opgeslagen');
  20. }
  21. else {
  22.  
  23. echo 'mislukt';
  24. }
  25. ?>
  26.  
  27. </body>
  28.  
  29. </html>


Het probleem is dus, dat als je een nickname hebt ingevuld, en je naar de volgende pagina gaat en wat typt, dat er alleen maar een dubbelepunt komt te staan, terwijl de nickname er ook nog bij zou moeten. Weet iemand wat er fout is?:s

11 antwoorden

Gesponsorde links
Offline Legolas - 14/05/2005 15:16
Avatar van Legolas Onbekend Jij doet bij nick ingeven, action = index2.php, en daar vraag je de nickname niet meer op, dus...
Offline freddyboeke - 14/05/2005 15:18 (laatste wijziging 14/05/2005 15:18)
Avatar van freddyboeke HTML beginner in je index moet het form waar je de nick invult eenandere action hebben, nu staat er:
  1. <form name="form" method="POST" action="index2.php">

Maw: De nick wordt niet vastgelegt in de sessie (want de verwerking staat in index.php en niet in index2.php)

Dus verander dit in:
  1. <form name="form" method="POST" action="index.php">


En zet bovenaan in het if-gedeelte onder
  1. $_SESSION['nick'] = $_POST['nick'];

dit:
  1. header ("location: index2.php");


Snap je?

Mvg,
Freddyboeke  
Offline BigBug - 14/05/2005 15:30 (laatste wijziging 14/05/2005 15:32)
Avatar van BigBug PHP expert Ik heb precies gedaan wat freddyboeke zei, maar het werkt nog niet (zie voorbeeld online)
Offline prorsoft - 14/05/2005 15:36
Avatar van prorsoft PHP gevorderde in het submitpaginaatje moet nog session_start(); !!!
zo:
  1. <?php
  2. ?>
  3. <html>
  4.  
  5. <head>
  6. <title></title>
  7. </head>
  8.  
  9. <body>
  10. <form name="formulier">
  11. <input type="text" name="bericht" value="Hier een bericht.">
  12. <input type="submit" name="sub" value="Voeg Bericht Toe!">
  13. </form>
  14.  
  15. <?php
  16. $bestand="file.txt";
  17. $open = fopen($bestand,"a");
  18.  
  19. if (isset($_GET['sub'])) {
  20. fwrite($open, $_SESSION['nick'].": ".$_GET['bericht']."<br>");
  21. echo ('bericht opgeslagen');
  22. }
  23. else {
  24.  
  25. echo 'mislukt';
  26. }
  27. ?>
  28.  
  29. </body>
  30.  
  31. </html>


Ik eet mijn hoed op als het nu nog niet werkt:)
Offline rutgerp - 14/05/2005 15:38 (laatste wijziging 14/05/2005 15:40)
Avatar van rutgerp HTML interesse doe eens
  1. $_SESSION['nick'] = 'nicknamepje';

san kan je kijken of het daar aan ligt of de cookies zijn uitgezet bij jou en mij
:'(

EDIT: ik wou het net zeggen van session start() lol
Offline BigBug - 14/05/2005 15:39 (laatste wijziging 14/05/2005 15:42)
Avatar van BigBug PHP expert w000t het werkt idd prorsoft & yannick (via msn:p), thnx
Offline prorsoft - 14/05/2005 19:42
Avatar van prorsoft PHP gevorderde haha dus hoef ik mijn hoed niet op te eten lol:p
(ik heb sowieso geen hoed hoor^^)

dat probleem had ik ook gehad, en ik kwam er maar niet uit:)
Offline Sjaakmans - 20/05/2005 18:36
Avatar van Sjaakmans Nieuw lid Je moet ff boven $_SESSION['nick'] = $_POST['nick'];
session_register('nick');
zetten

dan moet ie het doen
Offline prorsoft - 20/05/2005 19:08 (laatste wijziging 20/05/2005 19:10)
Avatar van prorsoft PHP gevorderde @Sjaakmans: beetje laat hè, trouwens 't probleem is al opgelost, tkwam door dat session_start().
session_register()? dat hoeft niet! is verouderd

EDIT: kijk maar op de website:
Citaat:
Use of session_register() is deprecated, use $_SESSION instead.
Offline Legolas - 20/05/2005 19:33
Avatar van Legolas Onbekend Je kunt net zo goed met cookies werken -----> langer ingelogd blijven onder zelfde NICK!
Offline prorsoft - 21/05/2005 09:17
Avatar van prorsoft PHP gevorderde @Legolas: wie heeft er nog cookies aan staan in je browser tegenwoordig?
dat betekent dus elke keer als je een pagina wilt bezoeken opnieuw moet inloggen!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.249s