If retourne toujours le else

Résolu
cs_nossoctoruss Messages postés 126 Date d'inscription samedi 28 novembre 2009 Statut Membre Dernière intervention 9 juin 2013 - 1 juin 2013 à 10:11
cs_nossoctoruss Messages postés 126 Date d'inscription samedi 28 novembre 2009 Statut Membre Dernière intervention 9 juin 2013 - 9 juin 2013 à 10:28
Salut a tous!
Je vous explique vite fait mon pb:
Je dois me servir de preg_match pour l'inscription sur mon site et faire une condition assez grande... j'ai tout essayé mais rien ne marche cela me retourne a chaque fois le else(qui dit que je n'ai pas respecté les regles d'inscription...).
Voici les lignes concernées:
$pseudo = $_POST['pseudo'];
$email = $_POST['email'];
$avatar = $_POST['avatar'];
$steam_id = $_POST['steam_id'];
$message = $_POST['message'];
$arme = $_POST['arme'];
$niveau = $_POST['niveau'];
$pass = $_POST['pass'];
$max = "15";
$max2 = "200";
$max3 = "10";
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';  
if((strlen($pseudo) < $max ) AND (preg_match("$Syntaxe", $email)) AND (preg_match("#^http://+[a-zA-Z]+\.[a-zA-Z]#", $avartar)) AND (preg_match("STEAM_ID:", $steam_id)) AND (strlen($message) < $max2 ) AND (strlen($arme) < $max3 ) AND ($niveau =="Mauvais" OR $niveau =="Moyen" OR $niveau =="Bon" OR $niveau =="Plutot fort" OR $niveau =="Tres fort" OR $niveau =="Pro gamer")) {  


Avec:
Pseudo : Greg1
Email : coyotegosth@hotmail.fr
Avatar : http://forum.alsacreations.com/avatars/7017-Dj.Ango-150.jpg
Steam id : STEAM_ID:1010111
Message perso : AAAAAAAAAAAAAAAAAAAAAAAaaaaaaaaaaaaaaaaaAAAa
Arme préferéé : Awp
Niveau : Bon
Mot de pass : greg

Besoin d'aide svp!! :)
Merci à l'avance!

7 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
2 juin 2013 à 16:03
Bonjour,

Ton IF est trop long, essayes de décomposer pour savoir quelle partie pose problème.

Sinon, en PHP, les conditions logiques sont les mêmes que pour C/C++ : ET conditionnel &&

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
2 juin 2013 à 19:51
bonjour


$avatar pas $avartar


remarque : tu peux faire une une fonction pour les preg_match
et utiliser in_array pour $niveau ...
vite fait

<?php
$pseudo = $_POST['pseudo']='toto';
$email = $_POST['email']='titi@free.fr';
$avatar = $_POST['avatar']='http://www.google.fr/toto.jpg';
$steam_id = $_POST['steam_id']='STEAM_ID:';
$message = $_POST['message']=1;
$arme = $_POST['arme']=1;
$niveau = $_POST['niveau']='Bon';
//$pass = $_POST['pass'];
$max = "15";
$max2 = "200";
$max3 = "10";
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';  
if((strlen($pseudo) < $max ) 
AND (preg_match("$Syntaxe", $email)) 
AND (preg_match("#^http://+[a-zA-Z]+\.[a-zA-Z]#", $avatar)) 
AND (preg_match("#STEAM_ID:#", $steam_id)) 
AND (strlen($message) < $max2 ) 
AND (strlen($arme) < $max3 ) 
AND ($niveau =="Mauvais" 
OR $niveau =="Moyen" 
OR $niveau =="Bon" 
OR $niveau =="Plutot fort" 
OR $niveau =="Tres fort" 
OR $niveau =="Pro gamer")) {
echo 'do';
}else{
echo 'do not';
}
?>



Bonne programmation !
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
2 juin 2013 à 21:20
Hello,

Teste une à une les données à vérifier, si chaque donnée à vérifier est ok tu peux valider le bouzin :

$pseudo = $_POST['pseudo'];
$email = $_POST['email'];
$avatar = $_POST['avatar'];
$steam_id = $_POST['steam_id'];
$message = $_POST['message'];
$arme = $_POST['arme'];
$niveau = $_POST['niveau'];
$pass = $_POST['pass'];

$niveaux = array("Mauvais","Moyen","Bon","Plutot fort","Tres fort","Pro gamer");

if(strlen($pseudo) > 15){
echo "pseudo trop long !";
}else if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i", $email)){
echo "l'e-mail n'est pas bon !";
}else if(!preg_match("#^http://+[a-zA-Z]+\.[a-zA-Z]#", $avatar)){
echo "l'avatar n'est pas bon !";
}else if(!preg_match("STEAM_ID:", $steam_id)){
echo "le steam_ID n'est pas bon !";
}else if(strlen($message) > 200){
echo "le message est trop long !";
}else if(strlen($arme) > 10){
echo "t'as trop d'armes coco !";
}else if(!in_array($niveau,$niveaux)){ // tel que te le préconisait Cod57
echo "ton niveau n'est pas dans les niveaux !";
}else if(strlen($pass) < 8){
echo "ton mot de passe est trop court !";
}else{
echo "bon ben tout baigne y'a pas d'erreur : je rentre tout ça dans ma base !";
}


A+

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
2 juin 2013 à 21:22
Au passage pour le contrôle du nombre de caractères du message tu peux aussi limiter le nombre de caractères permis dans le champ de saisie avec maxlength="200".

A+

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_nossoctoruss Messages postés 126 Date d'inscription samedi 28 novembre 2009 Statut Membre Dernière intervention 9 juin 2013
8 juin 2013 à 13:52
Salut!
Désolé j'ai pas réussi a vous répondre avat ^^'
je teste tout ca et je vous dis :p
merci!
0
cs_nossoctoruss Messages postés 126 Date d'inscription samedi 28 novembre 2009 Statut Membre Dernière intervention 9 juin 2013
9 juin 2013 à 10:26
Maitenant j'ai un autre probleme avec un autre preg_match mais bo je verrais ca plus tard.
J'apprend en coddant, j'ai pas de cour ou de trucs dans le genre donc je connaissais pas cette methode mais je retiens! merci :p

je commente ,j'essaye de créer(et de poster,si codes sources.com ne me refait pas encore trois erreures d'afilés quand je tape 300 lignes et que je doit tout recommencer ),j'appelle a l'aide! ,alors,soyez sympa [^^drapeaubl
0
cs_nossoctoruss Messages postés 126 Date d'inscription samedi 28 novembre 2009 Statut Membre Dernière intervention 9 juin 2013
9 juin 2013 à 10:28
Et désolé pour la signature de quand j'avais dix ans et qu'il faut que je change x)
0
Rejoignez-nous