|
|
|
| [php] rajouter une vérification dans mon code par fabrice11901 |
samedi 17 juin 2006 à 10:39:39 |
<?
if ( isset($_POST['pseudo']))
$pseudo=$_POST['pseudo'];
if ( isset($_POST['passe']))
$passe=$_POST['passe'];
if ( isset($_POST['adresse']))
$adresse=$_POST['adresse'];
if ($pseudo && $passe && $adresse) {
echo '<html>
<head>
</head>
<body>';
$dbc = @mysql_connect ("localhost", "zone_zone", "*****");
if(!mysql_errno($dbc)) {
mysql_select_db("zone_bdd");
$requete1 = "insert into v2 values( '' , '".$pseudo."' , '".$passe."' , '".$adresse."')";
mysql_query($requete1);
echo ' <html> Bravo, votre inscription est bien prise en compte. Si vous avez demandé une confirmation par e-mail celle-ci a été envoyé !
</body>
</html> ';
}
else {
echo '<html><head><META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://www.zone-mobile.net/form_inscription.php"></head>';
echo '<body>Merci de remplir tous les champs</body>';
}
}
mysql_close();
$mail=$_POST['mail'];
if ($mail == '1') {mail($adresse,
"Confirmation d'inscription au site zone-mobile.net",
"Bonjour et merci pour votre inscription\r\nVous avez demandé à recevoir par e-mail vos identifiants pour vous connecter au site zone-mobile.net\r\nVoici
vos informations :\r\nPseudo : ".$pseudo ."\r\nMot de passe : ". $passe."\r\n".
"Le webmaster vous souhaite une agréable visite sur zone-mobile.net !\r\nPs : Ce mail a été envoyé automatiquement suite à votre demande d'inscription sur zone-mobile.net. Merci de ne pas y répondre.", "From:inscription@zone-mobile.net\r\nReply-To:inscription@zone-mobile.net");
}
else {
echo "<p></p>";
}
?> <html><a href="http://www.zone-mobile.net/accueil.php">Retour à l'accueil</A></html>
Configuration: carte mere asus k8n4e, processeur : sempron 3300+, disque dur 80go mémoire : 512...
Salut !
Pour vérifier que le pseudo n'est pas déjà dans la base, il faut lancer une requête sur ce pseudo et vérifier que le nombre de résultats est égal à zéro. Voilà donc le code modifié : <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://www.zone-mobile.net/form_inscription.php"> </head> <body> <? if ( isset($_POST['pseudo'])) $pseudo=addslashes(stripslashes($_POST['pseudo'])); if ( isset($_POST['passe'])) $passe=addslashes(stripslashes($_POST['passe'])); if ( isset($_POST['adresse'])) $adresse=addslashes(stripslashes($_POST['adresse'])); // Les addslashes sont nécessaires pour la sécurité du script (pour éviter des "injections SQL") if ($pseudo && $passe && $adresse) { echo '<html> <head> </head> <body>'; $dbc = @mysql_connect ("localhost", "zone_zone", "*****"); if(!mysql_errno($dbc)) { mysql_select_db("zone_bdd"); $requete2 = "SELECT id FROM v2 WHERE pseudo='".$pseudo."'"; // On recherche le pseudo dans la base /* Bien sûr, c'est à adapter (ça suppose que le champ "clé" de ta table s'appelle id, que ta table s'appelle v2 et que le champ qui contient les pseudos s'appelle pseudo) */ $requete2_query = mysql_query($requete2); if (mysql_num_rows($requete2_query)<1) { // Si le pseudo n'existe pas $requete1 = "insert into v2 values( '' , '".$pseudo."' , '".$passe."' , '".$adresse."')"; mysql_query($requete1); echo 'Bravo, votre inscription est bien prise en compte. Si vous avez demandé une confirmation par e-mail, celle-ci a été envoyée !'; } else { // Si le pseudo existe déjà echo 'Vous êtes déjà inscrit.<br> Aussi, votre inscription n\'a pas été prise en compte une seconde fois.'; } mysql_free_result($requete2_query); } else { 'Merci de remplir tous les champs'; } } mysql_close(); $mail=$_POST['mail']; if ($mail == '1') { mail($adresse, "Confirmation d'inscription au site zone-mobile.net", "Bonjour et merci pour votre inscription\r\nVous avez demandé à recevoir par e-mail vos identifiants pour vous connecter au site zone-mobile.net\r\nVoici vos informations :\r\nPseudo : ".$pseudo ."\r\nMot de passe : ". $passe."\r\n". "Le webmaster vous souhaite une agréable visite sur zone-mobile.net !\r\nPs : Ce mail a été envoyé automatiquement suite à votre demande d'inscription sur zone-mobile.net. Merci de ne pas y répondre.", "From:inscription@zone-mobile.net\r\nReply-To:inscription@zone-mobile.net"); } else { echo "<p></p>"; } ?> <a href="http://www.zone-mobile.net/accueil.php">Retour à l'accueil</a> </body> </html> • Deux remarques : 1) J'ai mis les balises <html>, <body>, etc. en dur une fois pour toutes (en début et fin de page), pour ne pas les répéter dans chaque echo. 2) Pour la sécurité de ton script (pour éviter les "injections SQL"), j'ai ajouté addslashes et stripslashes. Ces deux fontions servent respectivement à ajouter et supprimer les antislashes devant les caractères tels que les guillemets (") ou les apostrophes ('). - On supprime d'abord les slashes s'ils ont été ajoutés automatiquement; - On les ajoute ensuite. Comme ça, on est bien sûr qu'ils sont là ;-) A+ :) .:| T h o m @ s |:. |
salut
merci par contre y a un pb j'obtiens si je ne remplis aucun champs warning mysql_close() puis si le pseudo est déjà prix iil envois quand même le mail de confirmation ! merci C'est bizarre, on en apprend tous les jours même quand on ne s'informe pas !!!!
|
re
en fait : si un pseudo est déjà prit j'obtient : Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/zone/domains/zone-mobile.net/public_html/inscription.php on line 19 Désolé, mais ce pseudo existe déjà. Veuillez en choisir un autre. Retour à l'accueil. Si je ne rentre aucun infos dans le formulaire je n'obtiens pas de message d'erreur alors que je devrait avoir : merci de remplir tous les champs" puis je suis r'envoyer vers la page d'inscription... d'où vient le pb? merci à toi t'es sympat C'est bizarre, on en apprend tous les jours même quand on ne s'informe pas !!!!
|
déjà je n'obtiens pas le message d'erreur warning... mais si je ne remplis aucun champs, je n'ai pas le message d'erreur "merci de remplir tous les champs" si le pseudo est déjà utilisé ça met bien le bon message d'erreur.
Code php <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://www.zone-mobile.net/form_inscription.php"> </head> <body> <? if ( isset($_POST['pseudo'])) $pseudo=addslashes(stripslashes($_POST['pseudo'])); if ( isset($_POST['passe'])) $passe=addslashes(stripslashes($_POST['passe'])); if ( isset($_POST['adresse'])) $adresse=addslashes(stripslashes($_POST['adresse'])); // Les addslashes sont nécessaires pour la sécurité du script (pour éviter des "injections SQL") $dbc = @mysql_connect ("localhost", "zone_zone", "*****"); if ($pseudo!='' && $passe!='' && $adresse!='' && !mysql_errno($dbc)) { echo '<html> <head> </head> <body>'; mysql_select_db("zone_bdd"); $requete2 = "SELECT id FROM v2 WHERE pseudo='".$pseudo."'"; // On recherche le pseudo dans la base /* Bien s?r, c'est ? adapter (ça suppose que le champ "clé" de ta table s'appelle id, que ta table s'appelle v2 et que le champ qui contient les pseudos s'appelle pseudo) */ $requete2_query = mysql_query($requete2); if (mysql_num_rows($requete2_query)<1) { // Si le pseudo n'existe pas $requete1 = "insert into v2 values( '' , '".$pseudo."' , '".$passe."' , '".$adresse."')"; mysql_query($requete1); echo 'Bravo, votre inscription est bien prise en compte. Si vous avez demandé une confirmation par e-mail, celle-ci a été envoyée !'; $mail=$_POST['mail']; if ($mail == '1') { mail($adresse, "Confirmation d'inscription au site zone-mobile.net", "Bonjour et merci pour votre inscription\r\nVous avez demandé ? recevoir par e-mail vos identifiants pour vous connecter au site zone-mobile.net\r\nVoici vos informations :\r\nPseudo : ".$pseudo ."\r\nMot de passe : ". $passe."\r\n". "Le webmaster vous souhaite une agréable visite sur zone-mobile.net !\r\nPs : Ce mail a été envoyé automatiquement suite ? votre demande d'inscription sur zone-mobile.net. Merci de ne pas y répondre.", "From:inscription@zone-mobile.net\r\nReply-To:inscription@zone-mobile.net"); } } else { // Si le pseudo existe déj? echo 'Désolé, mais ce pseudo est déjà utilisé. Veuillez en choisir un autre.'; } mysql_free_result($requete2_query); } else { 'Merci de remplir tous les champs'; } mysql_close(); ?> <a href=" http://www.zone-mobile.net/accueil.php">Retour à l'accueil</a> </body> </html> c'est vrai que je m'y pert dans ce code ! car je n'ai jamais utilisé de if dans un autre donc je me mélange... merci C'est bizarre, on en apprend tous les jours même quand on ne s'informe pas !!!!
|
salut
c'est bon ça marche ! merci bon va falloir que je me face à ces if (ce sont les {} qui me perturbent...) A+ et encoremerci C'est bizarre, on en apprend tous les jours même quand on ne s'informe pas !!!!
|
| 02/02 07h27 | (PHP) Probléme de code pour livre d'or | Webmastering | 03/02 09h20 | 4 |
| 03/12 18h51 | Verification code. | Webmastering | 28/02 09h49 | 9 |
| 02/02 11h11 | Condition php gérant du code html | Webmastering | 03/02 09h29 | 5 |
| 14/02 15h26 | Verification codes accès et adresse e-mail | Internet | 28/04 14h01 | 5 |