Securisation page membre

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 avr. 2011, 18:26

manque le session_start(); ...

le plus simple c'est que tu reprenne ton script ligne a ligne afin que tu comprenne ce qu'il fait ;)

tu peut relire les tutos sur les espaces membres ;)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 67 Messages

09 avr. 2011, 20:04

J'ai trouvé.

En indiquant sur ma page une condition voici la page membre pour ceux qui veulent :
<?php
include('config.php');
include('verif.php');
?>
<html>
<head>
<title>Page Membres</title>
</head> 
<?php
$LoginOK = $_SESSION['LoginOK'];
 //récupération de l'identifiant de la personne:
$Login  = $_GET["Login"] ;
if($LoginOK==$Login)
{
$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
$sql=$connexion->query("SELECT * FROM membres WHERE Login = '$Login' ");// on va chercher tous les membres
$sql->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet

if( $result = $sql->fetch() ) // on récupère la liste des membres

       echo(
           "<div align=\"center\">"
           
           ." <a href=\"modifmembres.php?Login=".$result->login."\">modifier</a></div>\n"
       ) ;


?>
    
   
   <table border="0" align="center" cellspacing="2" cellpadding="2">
   <tr align="center">
 <td>Login : </td>
<td><?php  echo($result->login) ;?></td>
</tr>
<tr align="center">
<td>Mot De passe : </td>
<td><?php echo($result->pwd) ; ?></td>
</tr>
<tr align="center">
<td>Date D'entree : </td>
<td><?php echo($result->dateentree) ; ?></td>
</tr>
<tr align="center">
<td>Sexe : </td>
<td><?php echo($result->sexe) ; ?></td>
</tr>
<tr align="center">
<td>Ville : </td>
<td><?php echo($result->ville) ; ?></td>
</tr>
<tr align="center">
<td>Code Postal : </td>
<td><?php echo($result->codepostal) ; ?></td>
</tr>
<tr align="center">
<td>Mail : </td>
<td><?php echo($result->mail) ; ?></td>
</tr>
<tr align="center">
<td>Age : </td>
<td><?php echo($result->age) ; ?></td>
</html>
<?php
}
else
{
echo "<html><center>Tentative de hack bloqué accès non autorisé ! </center></html>";
}
?>

Eléphant du PHP | 59 Messages

09 avr. 2011, 21:39

bonsoir,juste pour te dire que
<?php
session_start();
    if(isset($_POST['tbx_login'])==true) // On verifie que le champ a bien été posté, si oui on continue
    {
                $login=$_POST['tbx_login']; // Recuperation du login entré dans le champ ( On le met dans une variable )
                $pass=$_POST['tbx_pass'];  // Pareil que le login
est faux car session_start doit etre avant tout code html,exemple
[b]<?php
session_start();
?[/b]>
<?php
    if(isset($_POST['tbx_login'])==true) // On verifie que le champ a bien été posté, si oui on continue
    {
                $login=$_POST['tbx_login']; // Recuperation du login entré dans le champ ( On le met dans une variable )
                $pass=$_POST['tbx_pass'];  // Pareil que le login
cordialement

Eléphant du PHP | 59 Messages

09 avr. 2011, 21:42

bonsoir,juste pour te dire que
<?php
session_start();
    if(isset($_POST['tbx_login'])==true) // On verifie que le champ a bien été posté, si oui on continue
    {
                $login=$_POST['tbx_login']; // Recuperation du login entré dans le champ ( On le met dans une variable )
                $pass=$_POST['tbx_pass'];  // Pareil que le login
est faux car session_start doit etre avant tout code html,exemple
[color=#0000FF]<?php
session_start();
?>[/color]

<?php
    if(isset($_POST['tbx_login'])==true) // On verifie que le champ a bien été posté, si oui on continue
    {
                $login=$_POST['tbx_login']; // Recuperation du login entré dans le champ ( On le met dans une variable )
                $pass=$_POST['tbx_pass'];  // Pareil que le login
cordialement

Eléphant du PHP | 67 Messages

09 avr. 2011, 21:42

J'y ai modifier comme sa entre temps :
<?php
    if(isset($_POST['tbx_login'])==true) // On verifie que le champ a bien été posté, si oui on continue
    {
		$login=$_POST['tbx_login']; // Recuperation du login entré dans le champ ( On le met dans une variable )
		$pass=$_POST['tbx_pass'];  // Pareil que le login
	
		if(VerifLogin($login,$pass)==true) // On regarde dans la fonction si elle nous retourne true
		{
		    session_start();
			$_SESSION['LoginOK']=$login;			// Si la fonction retourne true alors on autorise le login et on redirige sur la page membre
			header("Location:membres.php?Login=".$login.""); 		
		}
		else
		{
			$_SESSION['LoginOK']=0; // Sinon on refuse le login.
			
		}
		
		

    }
?>
<html>
<form action="login.php" method="post">
<center><img src="images/login.png"></center>
<center><TABLE BORDER="1"><tr><th><center>Login : </center><input type="text" name="tbx_login" value="<?php if(isset($_POST["tbx_login"])){echo $_POST['tbx_login'];}?>" /></th></tr><br />
    <tr><th><center>Mot De Passe : </center><input type="password" name="tbx_pass" value="" /></th></tr><br />
    <tr><th><input type="submit" value="envoyer"></tr></th>
</form><center></TABLE> </center>
</html>
<?php
function VerifLogin($login,$pass)
{
        include('config.php');
		$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
		$sql=$connexion->query("SELECT login,pwd FROM membres"); // on va chercher tous les membres de la table qu'on trie par ordre croissant
		$sql->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
		while( $data = $sql->fetch() ) 
	
        {
           if($data->login==$login) // On recupere le login et on le met dans la variable Login
           {
             if($data->pwd==$pass) // On recupere pwd et on le met dans la variable pass
              {
               $sql->closeCursor(); // On libère la connexion du serveur, permettant ainsi à d'autres requêtes SQL d'être exécutées
		       return true;
		      }
			  else
			  {
			   echo("Le mot de passe n'est pas correct");
			  }
		   }
		    else
		   {
		    echo("Le nom d'utilisateur n'est pas correct");
		   }
				
		}
	
		$sql->closeCursor(); // On libère la connexion du serveur, permettant ainsi à d'autres requêtes SQL d'être exécutées
		return false;
}

?>

Eléphant du PHP | 59 Messages

09 avr. 2011, 21:43

bonsoir,juste pour te dire que
<?php
session_start();
    if(isset($_POST['tbx_login'])==true) // On verifie que le champ a bien été posté, si oui on continue
    {
                $login=$_POST['tbx_login']; // Recuperation du login entré dans le champ ( On le met dans une variable )
                $pass=$_POST['tbx_pass'];  // Pareil que le login
est faux car session_start doit etre avant tout code html,exemple
<?php
session_start();
?>

<?php
    if(isset($_POST['tbx_login'])==true) // On verifie que le champ a bien été posté, si oui on continue
    {
                $login=$_POST['tbx_login']; // Recuperation du login entré dans le champ ( On le met dans une variable )
                $pass=$_POST['tbx_pass'];  // Pareil que le login
cordialement

Eléphant du PHP | 67 Messages

09 avr. 2011, 21:53

Ok merci j'y ai modifié mais sa change quoi ?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 avr. 2011, 23:34

met le session_start() avant tes deux include et seulement la !

@romantica c'est incompréhensible tes 3 messages !

@+
Il en faut peu pour être heureux ......