Page 1 sur 1

Preg_match ou le mettre

Posté : 16 août 2012, 09:06
par Zartos
Bonjours,
Je suis débutant en php et par conséquent je ne cerne pas encore tous les aspects de ce langage. Ainsi j'ai un problème avec le preg_match, je m'explique :
J'ai besoin de vérifier sur un champ que lorsque l'utilisateur entre une valeur celle-ci doit obligatoirement commencer par PE. Or dans dans mon php j'ai déja une condition de remplissage, je ne sais donc absolument pas ou mettre ma condition preg_match. Je l'ai essayé partout mais je crois qu'il y a peut être un problème dans l'architecture des conditions.

Pourriez vous m'aider s'ils vous plaît.
Merci d'avance.
Voici le bout de code qui me permet de gérer l'action des inputs.
/** Condition permettant de vérifier que les champs inputs ne sont pas vides et de rediriger en conséquences.*/
[php]if (sizeof ( $_POST) > 0) {
	
	$frm=$_POST;
	barre_menu($frm);
	
	if ((!empty($frm['emb']))&&(preg_match("#^PE#", $EMBALLAGE ))){   /**J'ai pensé à le mettre ici mais avant je l'ai mis dans une conditions à part. Mais il y a conflit je pense */
		$EMBALLAGE=$frm['emb'];
	}
	if (!empty ($frm['cont'])) {
		$CONTENANT=$frm['cont'];
	}
	if(!empty($frm['searchEmb_x'])) {
		$_SESSION['emb']=$EMBALLAGE;
		header("Location: EmbContExist.php");
	}
	if(!empty ($frm['searchCont_x'])) {
		$_SESSION['cont']=$CONTENANT;
		header("Location: EmbContExist.php");
	}	
	if(!empty($EMBALLAGE)){
		$_SESSION['emb']=$EMBALLAGE;
		$_SESSION['cont']=$CONTENANT;
		header ("Location: Conditionnement.php");

	
	}	
}
[/php]

Re: Preg_match ou le mettre

Posté : 16 août 2012, 09:13
par xTG
Tu l'utilises ici cette variable :
if(!empty($frm['searchEmb_x'])) {
                $_SESSION['emb']=$EMBALLAGE;
                header("Location: EmbContExist.php");
        }
Donc je le mettrai là, vu que s'il commence pas par ce que tu veux c'est que ce n'est pas à enregistrer.

Re: Preg_match ou le mettre

Posté : 16 août 2012, 09:41
par Zartos
Avant tout merci pour ta réponse rapide.

En fait c'est bon j'ai trouvé, je suis trop bête. C'est pas la bonne condition. La première permet d'associer la valeur à la session. Le controle se fait en bas. J'ai donc mis :

if((!empty($EMBALLAGE))&&(preg_match("#^PE#", $EMBALLAGE ))){
$_SESSION['emb']=$EMBALLAGE;
$_SESSION['cont']=$CONTENANT;
header ("Location: Conditionnement.php");
et c'est bon ça passe.
Maintenant je dois gérer pour le contenant, mais ça devrait aller.

Merci encore.

Re: [RESOLU] Preg_match ou le mettre

Posté : 16 août 2012, 09:57
par sirakawa
Bjr,
strpos() fait la même chose plus simplement que pregmatch: il suffit de tester qu'il renvoie 0 par ===

Re: [RESOLU] Preg_match ou le mettre

Posté : 16 août 2012, 10:56
par Zartos
Ok, merci de l'info, je m'en vais l'essayer :)