PHP, Login velden blijven staan

Status
Niet open voor verdere reacties.

Gammort

Gebruiker
Lid geworden
12 dec 2006
Berichten
271
Hey allemaal,

Bij het volgende inlogscript heb ik een probleem:

PHP:
<?php
$gebruiker = $_SESSION['username']; 

if($_SESSION['login'] == "true"){
 	?>
    U bent ingelogd als <a href="gebruikerpagina.php"><?php echo $gebruiker ?></a>.<br /><br />
    Wilt u uitloggen? Klik <a href="slogout.php">hier</a> om uit te loggen.    
    <?php
}
else {
     ?>
   <FORM action="index.php" method="post">         
   <table>
  <tr>
  <td> Gebruikersnaam: </td>       
  <td> <INPUT type="text" name="username" size="10">  </td> 
  <td></td>      
   </tr>
   <tr>
    <td>Wachtwoord:   </td>      
   <td><INPUT type="password" name="pass" size="10"></td>
   <td> <input type="submit" value="Login" name="submit" > </td>
   </tr>    
   </table>             
   </form>       
<?php


if(isset($_POST['submit']))
 {

   $username = trim(strtolower($_POST['username']));
   $pass1 = $_POST['pass'];
   $dead = "false";
   $message = "Vul de volgende velden correct in:";
   if(strlen($username) <= 1 or strlen($username) >=15)
   {
      $dead = "true";
      $message .= "Gebruikersnaam (2-14)<br>";
   }
   if(strlen($pass1) < 4 or strlen($pass1) > 9 )
   {
      $dead = "true";
      $message .= "Wachtwoord (4-9)<br>";
   }
   if($dead = "false")
   	 {
      include('config.php');
      $query = mssql_query("SELECT welniet FROM Gebruiker WHERE gebruikersnaam = '$username' and wachtwoord = '$pass1'");
      $rows = mssql_num_rows($query);  
      if($rows > 0)
	  {         
              $row = mssql_fetch_assoc($query);
         //$username = mysql_real_escape_string($username);
         $_SESSION['login']=true;           
         $_SESSION["username"]=$username;
         $_SESSION['rank']   = $row['welniet'];         
      }
      else
	  {
         print "U heeft een onjuiste gebruikersnaam of wachtwoord ingevoerd.";
      }         
      
   }
   else
   {
      print $message;
   }
}
}

?>

Dit zijn een veld voor een naam en wachtwoord rechts bovenin de pagina. Maar als ik ingelogd ben dan moet ik eerst refreshen voordat er komt te staan dat ik ingelogd ben. Hoe zorg ik ervoor dat er meteen komt te staan dat ik ingelogd ben.

Alvast bedank!
 
Door in het inlogscript de pagina te verversen met een header().
 
Even een klein puntje:
PHP:
$dead = "false";
Dat lijkt natuurlijk nergens op :confused:
Booleans moet je niet als string gaan gebruiken.

Dus weg met al die quotes bij de true en false :thumb:
PHP:
$dead = false;
Daarnaast: = betekent een toewijzing, == is een vergelijking

Dat je headers already sent krijgt kun je eenvoudig oplossen door de volgorde te wijzigen.

PHP:
<?php 
$gebruiker = $_SESSION['username'];

if(isset($_POST['submit'])) {
  $username = trim(strtolower($_POST['username'])); 
  $pass1 = $_POST['pass']; 
  $dead = false;
  $message = "Vul de volgende velden correct in:"; 
  if(strlen($username) <= 1 or strlen($username) >=15) { 
    $dead = true; 
    $message .= "Gebruikersnaam (2-14)<br>"; 
  } 
  if(strlen($pass1) < 4 or strlen($pass1) > 9 ) { 
    $dead = true; 
    $message .= "Wachtwoord (4-9)<br>"; 
  }
  if(!$dead) {
    include('config.php'); 
    $query = mssql_query("SELECT welniet FROM Gebruiker WHERE gebruikersnaam = '$username' and wachtwoord = '$pass1'"); 
    $rows = mssql_num_rows($query);   
    if($rows > 0) {
      $row = mssql_fetch_assoc($query); 
      //$username = mysql_real_escape_string($username); 
      $_SESSION['login']=true;            
      $_SESSION['username'] = $username;
      $_SESSION['rank']   = $row['welniet'];
      header('Location: http://iprop-groep01.icasites.nl/index.php');
    } else {
      print "U heeft een onjuiste gebruikersnaam of wachtwoord ingevoerd."; 
    }          
  } else {
    print $message; 
  } 
}

if($_SESSION['login']) {
  ?>
  U bent ingelogd als <a href="gebruikerpagina.php"><?php echo $gebruiker ?></a>.<br /><br /> 
    Wilt u uitloggen? Klik <a href="slogout.php">hier</a> om uit te loggen.     
    <?php 
} else { 
     ?> 
   <FORM action="index.php" method="post">          
   <table> 
  <tr> 
  <td> Gebruikersnaam: </td>        
  <td> <INPUT type="text" name="username" size="10">  </td>  
  <td></td>       
   </tr> 
   <tr> 
    <td>Wachtwoord:   </td>       
   <td><INPUT type="password" name="pass" size="10"></td> 
   <td> <input type="submit" value="Login" name="submit" > </td> 
   </tr>     
   </table>              
   </form>
<?php
}
?>
Zo wordt het dan, lijkt mij :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan