login  Naam:   Wachtwoord: 
Registreer je!
 Forum

form submit knop werkt niet

Offline lolll - 21/01/2012 17:21
Avatar van lolllLid Beste,
ik heb volgend eenvoudig formuliertje gemaakt om mensen te laten inloggen, echter loop ik al direct vast met te controleren of er op de submit knop geklikt is of niet. Ik heb nu dit:

  1. <?php
  2. if(!isset($_POST['login']) || !$_SESSION['auth']){
  3. ?>
  4. <form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  5. <label for="email">E-mail adres:</label>
  6. <input id="email" name="email" class="input" type="text" maxlength="75" />
  7. <label for="password">Wachtwoord:</label>
  8. <input id="password" name="password" class="input" type="text" maxlength="15" />
  9. <input type="submit" class="button" name="login" value="Log in" />
  10. <a href="#">Wachtwoord vergeten?</a>
  11. <a href="page.php?page=register">Registreren</a>
  12. </form>
  13. <?php
  14. }else{
  15. if(!$_SESSION['auth']){
  16. //verbinding maken met db, sessie opzetten, foutmeldingen... (hier komt het nooit)
  17. }
  18. }
  19. ?>


Deze code zit in een div in de pagina header_inc.php. En header_inc.php wordt op elke pagina van de site geïncluded. Maar ook al voer ik niets in in het formulier en druk op login, er verschijnt geen foutmelding of iets anders, het formulier komt gewoon weer terug.

Wat is het probleem?

Lolll

Ps: in $_Session['auth'] wordt true gezet wanneer de gebruiker actief bezig is/aangemeld is en false wanneer de gebruiker 1 uur niets doet/niet aangemeld is.

5 antwoorden

Gesponsorde links
Offline ibmos2warp - 21/01/2012 17:37
Avatar van ibmos2warp PHP interesse Controleer of een formulier gepost is met if($_SERVER['REQUEST_METHOD'] == 'POST'... Doordat je die isset gebruikt heb je volgens mij het probleem.
Waarom multipart formulier?
Die if binnen die else is niet "mooi".
Offline lolll - 21/01/2012 20:34
Avatar van lolll Lid Ok,zal ik proberen.
Hoe moet het dan wel met het formulier en die if in die else ?
Offline icemar - 22/01/2012 12:12
Avatar van icemar Lid Je kan ook elseif() gebruiken
Offline lolll - 23/01/2012 21:27 (laatste wijziging 26/01/2012 22:10)
Avatar van lolll Lid (ok, heb ondertussen het probleem ontdekt:
Het ligt niet aan de $_Post['login'] , maar aan de $Session['auth']. Als ik die laatste weg laat werkt het wel, het probleem is dan wel dat het formulier terug komt ook al ben je aangemeld. Hoe moet ik nu controleren of $Session['auth'] bestaat en als het bestaat of het true of false is?)

EDIT:
Probleem met form is opgelost, maar nu heb ik het volgende probleem:
  1. if(isset($_SESSION)){
  2. echo "sessie";
  3. if($_SESSION['timeout'] < time())
  4. $_SESSION['auth'] = false;
  5. if(!$_SESSION['auth']){
  6. header("Location: http://touchtennisexample.xoomsite.com/logout.php");
  7. }
  8. }

Deze code staat bovenaan de header die ik op elke pagina include. Mijn bedoeling is dus 1st om te controleren of er een sessie bestaat, en als er een is kijken of de gebruiker al te lang niets doet (timeout) en kijken of de sessie afgemeld moet worden of niet (auth). Alleen werkt de 1ste controle niet. Ik heb al geprobeerd met !is_null($_Session) maar met dat en ook met deze code werkt het niet en komt er telkens te staan sessie (van de echo) hoewel er geen sessie is. Hoe moet ik dit controleren?

alvast bedankt, Lolll

P.s: in logout.php staat dit:
  1. <?php
  2. $_SESSION = array();
  3. header("Location: http://touchtennisexample.xoomsite.com/");
  4. ?>
Offline ibmos2warp - 29/01/2012 11:55
Avatar van ibmos2warp PHP interesse Ga even lezen hoe sessions werken:
PHP.net: book.session.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.341s