login et password

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : login et password

Re: login et password

par moogli » 23 févr. 2011, 16:32

je vais en remettre une couche mais ce code ne peut fonctionner ainsi car session_start() doit être utilisé avant tout affichage !!!!! et la ce n'est manifestement pas le cas.

Il est possible que cela fonctionne si la bufferisation de sortie est active ce qui n'est pas le cas sur tout les serveurs !

la page doit être structurée ainsi
<?php
// validation du formulaire et session_start() si besoin

?>
<html ...>
<form>
<?php 
// du php pour pré remplir le formulaire si besoin !
?>
</form>
</html>
déja commencer par mettre le code dans ce sens, ensuite :
- Est ce que la table Pret contient Pseudo et Pass Attention la casse est importante (différence majuscule / minuscle).
- Comment à tu entrée le premier enregistrement dans cette table ? (en clair ? md5 / sha1 ? etc).
- Est ce que tu comprend les bout de code fournit ? si ce n'est pas le cas autant le dire maintenant que l'on puisse t'expliquer ce que tu ne comprend pas ou t'orienter vers les bon tutos / articles afin que tu comprenne.

Pour info le code du tuto de AB est indiqué fonctionnel (j'ai pas testé mais je le crois ;) ) donc un simple copier coller doit fonctionner, ensuite adapter à ta structure ne doit pas être compliqué (changement du nom de la table et des noms de champs).

@+

Re: login et password

par Triflip » 23 févr. 2011, 11:27

alors : <form action="index1.php" method='post' >
index1.php doit être le nom de la page de connexion donc ayant pour source ce sript .

echo header("location:index1.php");
là tu doit mettre la page vers laquelle l'utilisateur doit accéder après sa bonne connexion ( pas index)

Es ce que ta base Pret contient bien 2 champs , Pseudo et Pass?
Sinon à tu bien lancé la connexion avec ta BDD.
Moi j'appelle require("fonctions.php"); fichier qui me connecte à ma BDD!
Il est nécessaire d'être connecté à ta base de donnée avant de faire des opérations dessus.

Re: login et password

par Sabrina tech » 23 févr. 2011, 10:20

Bjr Triflip,

Voici ton code que tu m'as donné, et qui ne m'affiche pas le message d'erreur mais il passe tjrs à la page location, Veuillez vérifier avec moi:
Merci
<body>
<div> 
<form action="index1.php" method='post' >
<table class="log">
<tr>
<td>Login :</td>
<td><input type="text" style="width:100px" title="Nom Utilisateur" name="login" maxlength="250"></td>
</tr>
<tr>
<td>Password :</td>
<td><input type="password" style="width:100px" title="Mot de passe" name="pass" maxlength="10"></td>
</tr>
<tr>
</tr>
<tr> 
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" style="background-color:#2BFB4E" value="Connexion"></td>
</tr>
</table>

 <?php
if(isset($_POST['login']) and isset($_POST['pass'])) /* teste si les champs on été bien remplits*/
{

$login = $_POST['login'];
$pwd = $_POST['pass'];

/*COUNT à pour rôle de compter par le biais de NB si il n'y a pas plusieur login identique.
le reste de la requête sert à lier login qui est récupéré du formulaire de saisie et affecté à une variable, idem pour pwd*/

$sql = "select COUNT(*) as NB from Pret where Pseudo='".$login."' and Pass = '".$pwd."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);



if($data['NB'] == 1) //Si NB est égale à 1 (donc il n'y a pas de doublon) et l'utilisateur est connu de la bdd. DATA récupère uniquement le NB du au COUNT (*)
{
session_start();// on initialise la session sql
$_SESSION['Pseudo'] = $login;
echo header("location:index1.php");
}

else
{
echo "<tr><td><div class='erreur'> Mot de passe/Utilisateur incorrect !</td></tr></div>";
}
}

?> 


</form>


</div>
</body>

Re: login et password

par Triflip » 23 févr. 2011, 09:49

Merci Triflip :)
J'ai essayé ce code et j'ai changer les variables mais malheureusement :( le résultat est tjrs le 2ème c à dire qu'il passe à la page location dans tous cas (même si les données saisie sont invalides et inexistante dans ma base ) #-o
Que ce que je dois faire ???? #-o
Je viens de tester le script que je t'ai transmis, il marche très bien.
Bizarre... #-o

Re: login et password

par moogli » 22 févr. 2011, 19:12

au pire fait le reste du code et met un message en attendant, le header vient à la fin c'est pas le plus important.

Sache juste que cette fonction permet d'envoyer des "entetes http" ça peut être pour indiquer le contenu au navigateur (une de tiens c'est du texte, tiens c'est pdf / html une image) mais ça peut aussi envoyer des truc plus "compliqué" comme une erreur 404 ou un redirection de page.

j’attends tes questions sur le début du code on verra pour le header à la fin ;)

@+

Re: login et password

par xTG » 22 févr. 2011, 17:45

Pour la première remarque que tu m'as fais j'ai pas bien compris, tu sais que je suis encre débutante #-o et je sais pas bien comment ca marche les fonction PHP (header), donc merci de m'explique de plus ou me donner la syntaxe de cette fonction.
Le lien fourni par Moogli te redirige vers la documentation qui est pas mal fournie en exemples et explications. ;)

Re: login et password

par Sabrina tech » 22 févr. 2011, 17:29

Pour la première remarque que tu m'as fais j'ai pas bien compris, tu sais que je suis encre débutante #-o et je sais pas bien comment ca marche les fonction PHP (header), donc merci de m'explique de plus ou me donner la syntaxe de cette fonction.

Et pour la deuxième remarque t'as raison et c ce que je pense faire car le code du TUTO est plus intéressant et je suis déjà entrain de le faire en // mais j'ai qqs erreurs dont j'essaye de les corriger.

Merci et @ +

Re: login et password

par moogli » 22 févr. 2011, 17:16

alors déja il faut faire la vérif du formulaire avant l'affichage html, car en cas de succès tu utilise la fonction header pour rediriger vers une autre page. et si c'est pas bon tu peut près remplir le formulaire (au niveau pseudo ;)).

ensuite essai d'appliquer la méthode du tuto a ton script, notamment au niveau de la requete SQL ;)
quand c'est fait si tu but encore fait le savoir :) (nouveau code a l'appui).

@+

Re: login et password

par Invité » 22 févr. 2011, 17:10

Pour le tuto wi, je suis entrai de le suivre,
et pour mon code le voila :

	  <table width="723" height="46" border="0" align="center">
    <tr>
      <td width="713">
	
		<form id="form1" method="post">
		
		  <table width="699" border="0" align="center">
		 
          <tr>
		    
             <td width="65"><span class="Style3">Pseudo</span></td>
             <td width="175"><input type="text" name="textfieldd" /></td>
			 <td width="109"><span class="Style2">Mot de passe</span> </td>
             <td width="147"><input type="password" name="textfieldd2" /></td>
			 <td width="64">
              <div align="right">
                <input type="submit" name="Submit" value="Se connecter"   />
                </div></td>
          </tr>
        </table>
     
       
      </form></td>

    </tr>
</table>




<?php 

include "connexion.php";  // connexion à la base de donnée

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

$P=$_POST['textfieldd'];
$M=$_POST['textfieldd2'];


$requet="SELECT * FROM Pret";
$resultt = mysql_query($requet) or exit(mysql_error().'Echec');
 
  while( $data = mysql_fetch_assoc($resultt)) 
  { 
  
if($P == $data['Pseudo'] && $M == $data['Pass']) 
{
echo"accept";                // ici ca marche mais il ne passe pas à aucune page et si j'ajoute : "action="index.php" au dessus au niveau du formulaire ca marche tjrs càd il ne m'affiche aucun résultat et tjrs il passe à la page index.php
}
else 
{
?>
	    	 <script language="javascript"> 
               alert('Pseudo ou mot de passe incorrect');              // et ici aussi ca marche 
             </script>  
<?php 
}

}
}
?>			

Re: login et password

par moogli » 22 févr. 2011, 17:01

quel est ton dernier code ? (avant celui de triflip qui contient des erreurs :/)

si tu nous fournis le code que tu test à chaque fois on peu t'aider plus facilement ;)

à tu compris le tuto ? (l'a tu essayé ?)

est ce que tu a mis les mots de passe en clair dans la table ou hashé ? (md5 / sha1)

@+

Re: login et password

par Sabrina tech » 22 févr. 2011, 16:56

Merci Triflip :)
J'ai essayé ce code et j'ai changer les variables mais malheureusement :( le résultat est tjrs le 2ème c à dire qu'il passe à la page location dans tous cas (même si les données saisie sont invalides et inexistante dans ma base ) #-o
Que ce que je dois faire ???? #-o

Re: login et password

par Triflip » 22 févr. 2011, 16:34

Voila un script que j'ai fait qui réalise ce que tu demande:
//Formulaire

<form action="index.php" method='post' >
<table class="log">
<tr>
<td>Login :</td>
<td><input type="text" style="width:100px" title="Nom Utilisateur" name="login" maxlength="250"></td>
</tr>
<tr>
<td>Password :</td>
<td><input type="password" style="width:100px" title="Mot de passe" name="pass" maxlength="10"></td>
</tr>
<tr>
</tr>
<tr>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" style="background-color:#2BFB4E" value="Connexion"></td>
</tr>
</table>
<?php
if(isset($_POST['login']) and isset($_POST['pass'])) /* teste si les champs on été bien remplits*/
{

$login = $_POST['login'];
$pwd = $_POST['pass'];

/*COUNT à pour rôle de compter par le biais de NB si il n'y a pas plusieur login identique.
le reste de la requête sert à lier login qui est récupéré du formulaire de saisie et affecté à une variable, idem pour pwd*/

$sql = "select COUNT(*) as NB from Nom_de_ta_table where login='".$login."' and pwd = '".$pwd."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);



if($data['NB'] == 1) //Si NB est égale à 1 (donc il n'y a pas de doublon) et l'utilisateur est connu de la bdd. DATA récupère uniquement le NB du au COUNT (*)
{
session_start();// on initialise la session sql
$_SESSION['login'] = $login;
echo header("location:ta_page.php");
}
}
else
{
echo "<tr><td><div class='erreur'> Mot de passe/Utilisateur incorrect !</td></tr></div>";
}
}
voila :D

Re: login et password

par Sabrina tech » 22 févr. 2011, 16:30

ok, Merci je vais essayer d'utiliser ces fonctions et on verra ce qui ce passera
MERCI et @+

Re: login et password

par xTG » 22 févr. 2011, 16:23

1) j'ai pas bien compris, car le tutorial permet de gérer et d'afficher les erreurs.
2) tournes toi vers la fonction header(), elle te permettra de rediriger l'utilisateur. Tu peux aussi le faire avec un délai via le HTML(balise meta) ou le javascript( setTimeout() et document.location.href = 'url').

Re: login et password

par Sabrina tech » 22 févr. 2011, 16:17

Merci pour votre réponse et Merci pour ce Tuto ca m'a aidé à autre chose, mais il n'y a pas ce que je cherche,
car j'ai vérifier s'il le membre existe ou pas et ca a bien marché, mon problème c'est :
1. l'affichage du message d'erreurs au cas où les données sont invalide et être sur la même page si non :
2. (Comment) Passer à un autre page (où il est connecté)

J'ai essayé mais j'ai pas réussis, j'avais 2 cas il m'affiche le message d'erreur si non il page à une page (et c'est en ajoutant : "action="espacemembre.php"") mais mon but est de les faire les 2 afficher le message et changer la page J'espère que c claire