Probleme de parametres PHP
yahya23
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, chui debutant et voici mon code
la page contenant le formulaire:
<?php
mysql_connect('localhost','yahya','yahya') or die('connexion introuvable');
mysql_select_db('yahya');
if(isset($_POST['Con']))
{
$l=$_POST['log'];
$p=$_POST['PW'];
$req="select * from user where loginuser ="+$l+"and passuser="+$p ;
$res=mysql_query($req);
if(!$res)
{
exit();
}
}
?>
<table align="center" border="0">
<form name="auth" method="post" action="menu.php?var=<?php echo $_POST['log'];?>" >
<tr bgcolor="#000000"><td colspan="2"><font color="#FFFFFF">Veuiller introduire votre Login et Mot de passe</font></td></tr>
<tr bgcolor="#999999"><td><b>Login<b></td><td><input type="text" name="log"/><td></tr>
<tr bgcolor="#999999"><td><b>Password<b></td><td><input type="password" name="PW"/><td></tr>
<tr bgcolor="#999999"><td align="center"><input type="submit" name="Con" value="Connexion"/></td><td align="center"><input type="reset" name="res" value="Annuler" /></td></tr>
</form>
</table>
et voici le code de la page d'arrivé
<h2>Bienvenu Veuiller choisir une opération à partir du menu Bon travail :)</h2>
<h3> vous etes connecté en tant que
<?
$va=$_GET['var'];
echo $va;
?>
</h3>
je veux que le code php verifie si le login existe dans la base si il existe il verifie si il est conforme avec le password si l'autantification est valide alors je veux ouvrir la deuxieme page en envoyant le login merci d'avance
la page contenant le formulaire:
<?php
mysql_connect('localhost','yahya','yahya') or die('connexion introuvable');
mysql_select_db('yahya');
if(isset($_POST['Con']))
{
$l=$_POST['log'];
$p=$_POST['PW'];
$req="select * from user where loginuser ="+$l+"and passuser="+$p ;
$res=mysql_query($req);
if(!$res)
{
exit();
}
}
?>
<table align="center" border="0">
<form name="auth" method="post" action="menu.php?var=<?php echo $_POST['log'];?>" >
<tr bgcolor="#000000"><td colspan="2"><font color="#FFFFFF">Veuiller introduire votre Login et Mot de passe</font></td></tr>
<tr bgcolor="#999999"><td><b>Login<b></td><td><input type="text" name="log"/><td></tr>
<tr bgcolor="#999999"><td><b>Password<b></td><td><input type="password" name="PW"/><td></tr>
<tr bgcolor="#999999"><td align="center"><input type="submit" name="Con" value="Connexion"/></td><td align="center"><input type="reset" name="res" value="Annuler" /></td></tr>
</form>
</table>
et voici le code de la page d'arrivé
<h2>Bienvenu Veuiller choisir une opération à partir du menu Bon travail :)</h2>
<h3> vous etes connecté en tant que
<?
$va=$_GET['var'];
echo $va;
?>
</h3>
je veux que le code php verifie si le login existe dans la base si il existe il verifie si il est conforme avec le password si l'autantification est valide alors je veux ouvrir la deuxieme page en envoyant le login merci d'avance
A voir également:
- Probleme de parametres PHP
- Parametres de mon ordinateur - Guide
- Paramètres dns - Guide
- Easy php - Télécharger - Divers Web & Internet
- Paramètres de confidentialité - Guide
- Le bon coin mon compte parametres - Guide
2 réponses
Bonjour,
Il y a une faute de syntaxe sur la construction de ta requête :
En PHP, ce ne sont pas des '+', mais des '.' qu'il faut utiliser (les '+' c'est ne javascript).
Ton code devient donc :
Ensuite, tu peux très bien avoir le bon login mais le mauvais mot de passe, ton test de validité n'est pas bon, il faut aussi que tu ajoute un contrôle sur le nombre de résultat retourné par ta requête SQL (dans un cas OK, le nombre doit être de 1)
Ton test devient donc le suivant :
Ensuite, tu as oublié de redirigé l'utilisateur sur la seconde page dans le cas où l'authentification est correcte (cas du else de ton if de test)
Ton test devient donc le suivant :
Enfin, dans ton formulaire, tu n'as pas besoin de passer une url avec un paramètre :
Un simple :
suffit.
Déjà ces corrections devraient t'aider, je n'ai parcouru que rapidement la suite.
Il y a une faute de syntaxe sur la construction de ta requête :
$req="select * from user where loginuser ="+$l+"and passuser="+$p ;
En PHP, ce ne sont pas des '+', mais des '.' qu'il faut utiliser (les '+' c'est ne javascript).
Ton code devient donc :
$req="select * from user where loginuser =".$l."and passuser=".$p ;
Ensuite, tu peux très bien avoir le bon login mais le mauvais mot de passe, ton test de validité n'est pas bon, il faut aussi que tu ajoute un contrôle sur le nombre de résultat retourné par ta requête SQL (dans un cas OK, le nombre doit être de 1)
Ton test devient donc le suivant :
if( $res != null && mysql_num_row($res) != 1 ){ exit(); }
Ensuite, tu as oublié de redirigé l'utilisateur sur la seconde page dans le cas où l'authentification est correcte (cas du else de ton if de test)
Ton test devient donc le suivant :
if( $res != null && mysql_num_row($res) != 1 ){ exit(); } else { // --- Redirection sur la page 2 header("chemin d'acces a la page 2 en relatif"); }
Enfin, dans ton formulaire, tu n'as pas besoin de passer une url avec un paramètre :
action="menu.php?var=<?php echo $_POST['log'];?>"
Un simple :
action="menu.php"
suffit.
Déjà ces corrections devraient t'aider, je n'ai parcouru que rapidement la suite.
Bonjour,
Je rejoins notre ami kij_82 et aimerai rajouter
Mettre le formulairedans dans une table n'est pas répandu comme méthode, mettre une table dans un formulaire si.
Donc ton code devient
que vient faire le signe > à la fin de ta balise form ?
Ensuite, il y a un autre pb. dans ta ligne
Une balise <td> doit être terminée par une balise </td> ce sui n'est pas le cas. Idem pour la balise <b> ( balise qui au demeurant est obsolete, utilise <STRONG> à la place.
Cette ligne devient donc
Même chose pour la ligne concernant le Password
Tu devrais utiliser une feuille de style ( Css ) externe. L'pplication des attributs de style dans une balise se fait sous la forme, par exemple
Cdt
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
Je rejoins notre ami kij_82 et aimerai rajouter
<table align="center" border="0">
<form name="auth" method="post" action="menu.php?var=<?php echo $_POST['log'];?>" >
<tr bgcolor="#000000"><td colspan="2"><font color="#FFFFFF">Veuiller introduire votre Login et Mot de passe</font></td></tr>
<tr bgcolor="#999999"><td><b>Login<b></td><td><input type="text" name="log"/><td></tr>
<tr bgcolor="#999999"><td><b>Password<b></td><td><input type="password" name="PW"/><td></tr>
<tr bgcolor="#999999"><td align="center"><input type="submit" name="Con" value="Connexion"/></td><td align="center"><input type="reset" name="res" value="Annuler" /></td></tr>
</form>
</table>
Mettre le formulairedans dans une table n'est pas répandu comme méthode, mettre une table dans un formulaire si.
Donc ton code devient
<form name="auth" method="post" action="menu.php?var=<?php echo $_POST['log'];?>" >
<table align="center" border="0">
<tr bgcolor="#000000"><td colspan="2"><font color="#FFFFFF">Veuiller introduire votre Login et Mot de passe</font></td></tr>
<tr bgcolor="#999999"><td><b>Login<b></td><td><input type="text" name="log"/><td></tr>
<tr bgcolor="#999999"><td><b>Password<b></td><td><input type="password" name="PW"/><td></tr>
<tr bgcolor="#999999"><td align="center"><input type="submit" name="Con" value="Connexion"/></td><td align="center"><input type="reset" name="res" value="Annuler" /></td></tr>
</table>
</form>
que vient faire le signe > à la fin de ta balise form ?
Ensuite, il y a un autre pb. dans ta ligne
<tr bgcolor="#999999"><td><b>Login<b></td><td><input type="text" name="log"/><td></tr>
Une balise <td> doit être terminée par une balise </td> ce sui n'est pas le cas. Idem pour la balise <b> ( balise qui au demeurant est obsolete, utilise <STRONG> à la place.
Cette ligne devient donc
<tr bgcolor="#999999"><td><strong>Login</strong></td><td><input type="text" name="log"/></td></tr>
Même chose pour la ligne concernant le Password
Tu devrais utiliser une feuille de style ( Css ) externe. L'pplication des attributs de style dans une balise se fait sous la forme, par exemple
<tr style = "bgcolor:#000000">
Cdt
En informatique 99% des problèmes se situent entre le fauteuil et le clavier