[RESOLU] besoin d'une correction de mon code / conseils

Eléphant du PHP | 57 Messages

20 août 2012, 15:36

Bonjour à tous !
Aujourd'hui, je "travaille " sur une page qui, à priori, ne devrait pas poser de problème sauf que ... y'a un problème !

Voici ma page de code :
<?php // pour changer la langue //
require("../lang/decide-lang.php");?>

<!-------- recupération des données du formulaire ---------->
<!-- actions si les champs n'existent pas ou s'ils sont vides ---->
<?php // pseudo
if ((isset($_POST['pseudo'])) AND (!empty($_POST['pseudo'])))
{
// On rend inoffensives les balises HTML que le visiteur a pu rentrer
$_POST['pseudo'] = htmlspecialchars($_POST['pseudo']);
// on transforme $_POST('xxx'] en $xxx
$pseudo=$_POST['pseudo']; 
echo pseudo_ok;}
else {
echo erreur_pseudo;
exit;} ?>
<?php // mdp1
if ((isset($_POST['mdp1'])) AND (!empty($_POST['mdp1'])))
{
// On rend inoffensives les balises HTML que le visiteur a pu rentrer
$_POST['mdp1'] = htmlspecialchars($_POST['mdp1']); 
// on transforme $_POST('xxx'] en $xxx
$mdp1=$_POST['mdp1']; 
echo mdp1_ok;}
else {
echo erreur_mdp1;
exit;} ?>
<?php // mdp2
if ((isset($_POST['mdp2'])) AND (!empty($_POST['mdp2'])))
{
// On rend inoffensives les balises HTML que le visiteur a pu rentrer
$_POST['mdp2'] = htmlspecialchars($_POST['mdp2']);
// on transforme $_POST('xxx'] en $xxx
$mdp2=$_POST['mdp2']; 
echo mdp2_ok;}
else {
echo erreur_mdp2;
exit;} ?>
<?php // email1
if ((isset($_POST['email1'])) AND (!empty($_POST['email1'])))
{
// On rend inoffensives les balises HTML que le visiteur a pu rentrer
$_POST['email1'] = htmlspecialchars($_POST['email1']);
// on transforme $_POST('xxx'] en $xxx
$email1=$_POST['email1']; 
echo email1_ok;}
else {
echo erreur_email1;
exit;} ?>
<?php // email2
if ((isset($_POST['email2'])) AND (!empty($_POST['email2'])))
{
// On rend inoffensives les balises HTML que le visiteur a pu rentrer
$_POST['email2'] = htmlspecialchars($_POST['email2']);
// on transforme $_POST('xxx'] en $xxx
$email2=$_POST['email2']; 
echo email2_ok;}
else {
echo erreur_email2;
exit;} ?>
<?php // genre
if ((isset($_POST['genre'])) AND (!empty($_POST['genre'])))
{$genre=$_POST['genre']; 
echo genre_ok;}
else {
echo erreur_genre;
exit;} ?>
<!-- validation des champs de vérification ----->
<?php // mdp
if ($mdp1 === $mdp2) { //si les 2 $ créées à la ligne 15 et 22 sont identiques
$mdp=$_POST['mdp2'];
echo mdp_ok;}
else {
echo erreur_mdp;
exit; } ?>
<?php // mail
if ($email1 === $email2) { //si les 2 $ créées à la ligne 29 et 36 sont identiques
$email=$_POST['email1']; // creation de la variable $email qui a la même valeur que $_POST['email1'] 
echo email_ok;} // affichage du message de confirmation sur ma page test temporaire
else {
echo 'erreur_email - message erreur_mail de la ligne 81';
exit; } 
?>
<!---- vérification des formats des données envoyées (taille, text, INT, date, URL, @, etc...)
<?php // format de l'email1 le $email est créé à la ligne 78
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email))
{
echo 'email_valide'; // ne marche pas... 
}
else
{
echo 'email_non_valide'; // ne marche pas... 
exit;}
echo 'le exit de la ligne 93 est \'sauté\' donc je suppose que ça marche malgré le défaut d\'affichage des echo des paragraphes if... else'; // ne marche pas non plus... comprends plus rien moi ! SOS les copains du forum !!! 
 ?>
 
Tout fonctionne bien jusqu'à la ligne 81. Après, plus rien ! pas de message d'erreur, mais pas non plus l'affichage de l'un ou l'autre des echo que j'attends donc je ne comprends pas ! Jusqu'à aujourd'hui, quand je faisais une erreur, mon navigateur m'affiche un gros truc orange contenant la description de mon erreur. Là non. il ne fait rien et ne dis rien.

Si quelqu'un a une solution, je suis preneuse ! merci d'avance

ViPHP
ViPHP | 2577 Messages

20 août 2012, 15:58

Si le message "erreur_email - message erreur_mail de la ligne 81" s'affiche, le "exit" qui suit arrête le script.

Eléphant du PHP | 57 Messages

20 août 2012, 16:08

Tout à fait d'accord et c'est prévu pour.
Sauf que, quand je rempli les conditions et que donc le exit de la ligne 82 ne s'applique pas (c'est le message echo email_ok de la ligne 79 qui s'affiche dans ce cas là. normal), ça me fait pareil : il ne se passe plus rien après et pourtant dans ce cas là, il n'y a pas d'exit.

ViPHP
ViPHP | 2577 Messages

20 août 2012, 16:16

Regardes dans le source html de la page. Tu verras que le message est présent mais pas affiché dans par le navigateur.
Erreur html sur le commentaire avant le message.

Eléphant du PHP | 57 Messages

20 août 2012, 16:23

Effectivement ! après correction (j'ai viré carrément le commentaire !), ça fonctionne.
Merci Mazarini.