Php

Résolu/Fermé
thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008 - 24 juil. 2008 à 10:21
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 - 24 juil. 2008 à 13:10
Bonjour,
je veux controler les champs de mon formulaire avec du php

voici le formulaire

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<style type="text/css">
<!--
.Style1 {
color: #FF6633;
font-weight: bold;
font-size: 24px;
font-family: Geneva, Arial, Helvetica, sans-serif;
}
-->
</style>
</head>

<body>

</SCRIPT>

<form method="post" action="envoie.php" name="formulaire">
</TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="1%"></TD>
<TD width="6%"><img src="logo.gif" width="59" height="56" /></TD>
<TD class=loginheading align=right width="93%"><span class="Style1">CREATION COMPTE</span>    </TD>
</TR>
<TR>
<TD colSpan=3 height=7></TD>
</TR>
<TR></TR>
<TR></TR>
<TR></TR>
<TR>
<TD width="1%">
<TD colSpan=2><IMG height=150 src="login-image-final01.jpg"
width=965></TD>
</TR></TBODY></TABLE>
</TR>
<p> </p>
<p> </p>
<table cellspacing=1 cellpadding=3 width="50%" align=center border=0>
<tbody>
<tr class=tabhead>
<td style="font-weight:bold;color:#444444" align="right" > Login : </td>
<td ><input name=login class="inputtext" onkeypress="noenter(event)" id="login" style="width: 130px;" value="" /></td>
</tr>
<tr>
<td style="font-weight:bold;color:#444444" align="right" > Mot de passe: </td>
<td ><input type=password size=17 name=password onkeypress="noenter(event)"
class="inputtext" id="password" style="width: 130px;" value="" /></td>
</tr>
<tr>
<td style="font-weight:bold;color:#444444" align="right" >confirmer pass: </td>
<td ><input type=password size=17 name=password2 onkeypress="noenter(event)"
class="inputtext" id="password2" style="width: 130px;" value="" /></td>
</tr>
<tr>
<td style="font-weight:bold;color:#444444" align="right" >description: </td>
<td ><input type="text" size=17 name=description onkeypress="noenter(event)"
class="inputtext" id="description" style="width: 130px;" value="" /></td>
</tr>
<tr>
<td colspan="2" align="left"><label> </label>
<p> </p>
<div align="center">
<input type="submit" name="Submit" value="envoyer" />
</div></td>
</tr>
</tbody>
</table>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
</TABLE>
</TR>
</TABLE></TR>
<TR>
<TABLE cellSpacing=0 cellPadding=10 width="98%" align=center border=0>
<TBODY>
<TR>
<TD class=tabcol width="40%"> </TD>

<TD class=tabcol align=right width="60%">@2008 Cameroon all rights
reserved </TD>
</TR></TBODY></TABLE></TR><TR>
<TABLE cellSpacing=0 cellPadding=3 width="97%" align=center border=0>
<TBODY>
<TR>
<TD class=btn1 align=middle bgcolor="#FF6600"><div align="center" ><A class=btn1
onmouseover="this.style.color = 'black';"
onmouseout="this.style.color = '';"
href="https://www.orange.cm/" >http://www.orange.cm/</A></div></TD></TR></TBODY></TABLE></TR></TABLE>

</table>
</form>

</body>
</html>

et voici le code en php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<?php

$bdd = "projet";
$host= "localhost";
$user= "root";
$pass= "";

if (mysql_connect($host,$user,$pass)){
echo'';
}
else {
echo '"Impossible de se connecter à la base de données"'.mysql_error(); }
if(mysql_select_db('projet')){
echo'';
}
else{
echo'"erreur"'.mysql_error();

}

$log =$_POST['login'];
$pass = md5($_POST['password']);
$pass1 = md5($_POST['password2']);
$des =$_POST['description'];
if($log!="" && $pass!=""){
$requete="INSERT INTO user(login,password,description) VALUES ('$log', '$pass','$des')";
if($resultat=mysql_query($requete)&&($log!=""&& $pass!="" ) ){
header("Location:process1.html");
}
else
echo('Erreur'.$requete.''.mysql_error());
}
elseif ($log=="" || $pass=="" )
{
echo 'Vous navez pas renseigné le champ Pseudo ou Pass"';
exit ;
}
elseif(($pass!= "") && ($pass !=$pass1)){
echo'les mots de pass sont différent';
}
else
header("Location:insertion.html" );
?>
</body>
</html>

il ne fait pas ce que je veux
A voir également:

3 réponses

Peux-tu approfondir ton problème STP ?
0
thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
24 juil. 2008 à 11:31
tout d'abord je veux verifier si le login que j'entre n'exsiste pas
apres si mon pass et celui confirmé sont les même
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 juil. 2008 à 10:45
Bonjour.


il ne fait pas ce que je veux
Il faut lui demander gentiment ! :-P

Sérieusement, vu que je n'ai pas envie (en tout cas comme ça de but en blanc) de me taper tout le code :
- Décris ce que tu veux faire.
- Décris un minimum le résultat (message d'erreur, page blanche, le code fonctionne mais ne fonctionne pas comme souhaité, ... ?)

Plus tu seras précis, plus simple ce sera pour t'aider - et plus on le fera de bon coeur...

Merci d'avance.
0
thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
24 juil. 2008 à 10:54
en fait j'ai 3 champs à contrôler(login,password et confirmation password)
et
je veux que
si je n'entre aucun mot de pass j'affiche un message sur la même page
de memme pour le login.
si j'entre le login(qui ne doit pas avoir de caractères spéciaux) et j'entre ensuite deux mots de pass différent,
un message d'erreur s'affiche sur la même page.

en fait tous mes chaps doivent etre remmplis et correctement.

on aurra

login:
pass:
confirmer pass:

merci d'avance
0
thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
24 juil. 2008 à 12:37
veux tu m'aider?


merci d'avance
0
Stof37 Messages postés 601 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 19 janvier 2011 148 > thomason Messages postés 91 Date d'inscription jeudi 10 juillet 2008 Statut Membre Dernière intervention 2 septembre 2008
24 juil. 2008 à 12:54
Sur le site du zero sont expliqué toutes ces étapes, et c'est très bien fait. On va pas réinventer la roue et réécrire un tuto ?
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
24 juil. 2008 à 13:10
if (mysql_connect($host,$user,$pass)){
echo'';
}
else {
echo '"Impossible de se connecter à la base de données"'.mysql_error(); }

Il est largement préférable d'utiliser :
$cn = mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données ".mysql_error());

Pareil pour le select_db :
mysql_select_db('projet') or die ('Erreur à la sélection de la BDD '.mysql_error());

Pour débugger, tu peux faire un echo des variables que tu utilises pour récupérer les $_POST (profites-en pour sécuriser les données que tu récupères; et assure-toi qu'elles existent bien...).
Et ne fais pas tout de suite le md5 : md5("") != ""

Par contre, après c'est du n'importe quoi :
Tu balances l'INSERT avant de tester la cohérence des mots de passe, sans vérifier si le login existe déjà, etc.

Je te conseillerais de bien décomposer tes tests, histoire de faciliter la maintenance.
// J'utilise une variable qui gère le(s) message(s) d'erreur...
$err = "";
// Je commence par vérifier qu'il n'y a pas de problème
if ($login == "") {
   $err .= "Vous navez pas renseigné le champ Pseudo<br />";
}
if ($pass == "") {
   $err .= "Vous navez pas renseigné le champ Mot de passe<br />";
}
if ($pass != $pass1) {
   $err .= "Erreur dans la confirmation du mot de passe<br />";
}
// On regarde si le login existe déjà
// S'il existe déjà, on rajoute un message d'erreur
//
// Et tu peux rajouter tous les tests que tu veux

if ($err != "") {
   // Le code pour gérer les erreurs
   // Et tu mets le md5($pass) dans le INSERT.
}
else {
   // Le code si tout s'est bien passé
}

0