Besoin d'aide pour organiser le code

Signaler
Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
23 avril 2011
-
Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
23 avril 2011
-
Bonsoir,

voila j'ai fait un code en php pour valider un formulaire d'inscription mais il ne fonctionne pas, je c'est que je m'y suis pris mal, mais je n'arrive pas à comprendre comment organisé le code pour qu'il fasse se que je li demande, voilà le code :
<?php 

//check et validation du MAIL.
if(isset($_POST['inscr_mail']) and filter_var($_POST['inscr_mail'], FILTER_VALIDATE_EMAIL)) // si le mail d'inscription est reçu en POST sur la page
{ 

$mail = $_POST['inscr_mail'];//debut de verification du mail, attribution du POST à une variable

$valeur_checkmail $bdd->prepare('SELECT user_mail FROM user WHERE user_mail ?') or die(print_r($bdd->errorInfo()));
$valeur_checkmail->execute(array($mail));
$valeur_checkmail_count= $valeur_checkmail->rowCount(array($mail));// check si doublon

if (!$valeur_checkmail_count == 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le mail existe déjà 

'; 

}
else //mail ok
{
$mail = $_POST['inscr_mail'];
$valeur_mail = true;
return $mail;	
    }
}
//fin du check et validation du MAIL.

//insertion du PASS.
if(isset($_POST['inscr_pass'])) // si le mail d'inscription est réçu en POST sur la page
{ 
$pass = $_POST['inscr_log'];
$valeur_pass = true;
return $pass;
}
//fin de l'insertion PASS.

//check et insertion du TELEPHONE.
if(isset($_POST['inscr_phone'])) // si le TELEPHONE d'inscription est réçu en POST sur la page
{ 

$phone = $_POST['inscr_phone'];//debut de verification du TELEPHONE, attribution du POST à une variable

$valeur_checkphone $bdd->prepare('SELECT user_phone FROM user WHERE user_phone ? WHERE user_mail = '.$mail.'') or die(print_r($bdd->errorInfo()));
$valeur_checkphone->execute(array($phone));
$valeur_checkphone_count= $valeur_checkphone->rowCount(array($phone));// check si doublon

if (!$valeur_checkphone_count == 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le numéro de téléphone existe déjà 

'; 

 }
else //inscription du TELEPHONE dans la base
{
$phone = $_POST['inscr_phone'];
$valeur_phone = true;
return $phone;
}
}
//fin du check et validation du numéro de TELEPHONE.	

//insertion du de la localisation.
if(isset($_POST['inscr_loc'])) // si la localisation est réçu en POST sur la page
{ 
$loc = $_POST['inscr_loc'];//debut d'insertion dde la localisation, attribution du POST à une variable
$valeur_loc = true;
return $loc;
}
//fin de la validation de la localisation.

//insertion dans la base
if($valeur_mail true and $valeur_pass true or $valeur_phone = true or $valeur_loc = true) 
{

$valeur_inscr = $bdd->prepare('INSERT INTO user(user_mail, user_pass, user_phone, user_loc) VALUES(:mail, :pass, :phone, :loc)') or die(print_r($bdd->errorInfo()));
$valeur_inscr->execute(array('mail' => $mail,
     'pass' => $pass,
 'phone' => $phone,
 'loc' => $loc,
));
echo ' Bienvenue nouveau membre';
}

?>


voilà en espérant que vous pourrez m'aider.

7 réponses

Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
23 avril 2011

enfaite c bon j'ai réorganiser mon code, plus de message d'erreur, par contre, rien ne s’écrit dans ma base

voila le code
<?php

//check et validation du MAIL.
if(isset($_POST['inscr_mail']) and filter_var($_POST['inscr_mail'], FILTER_VALIDATE_EMAIL)) // si le mail d'inscription est reçu en POST sur la page
{ 

$mail = $_POST['inscr_mail'];//debut de verification du mail, attribution du POST à une variable

$valeur_checkmail $bdd->prepare('SELECT user_mail FROM user WHERE user_mail ?') or die(print_r($bdd->errorInfo()));
$valeur_checkmail->execute(array($mail));
$valeur_checkmail_count= $valeur_checkmail->rowCount(array($mail));// check si doublon

if (!$valeur_checkmail_count == 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le mail existe déjà 

'; 

}
else //mail ok
{
//validation du PASS.
if(isset($_POST['inscr_pass'])) // si le pass est réçu en POST sur la page
{ 
$pass = $_POST['inscr_log'];
$valeur_pass = true;

if(isset($_POST['inscr_phone'])) // si le TELEPHONE d'inscription est réçu en POST sur la page
{ 
$phone = $_POST['inscr_phone'];//debut de verification du TELEPHONE, attribution du POST à une variable
$valeur_checkphone $bdd->prepare('SELECT user_phone FROM user WHERE user_phone ?') or die(print_r($bdd->errorInfo()));
$valeur_checkphone->execute(array($phone));
$valeur_checkphone_count= $valeur_checkphone->rowCount(array($phone));// check si doublon

if (!$valeur_checkphone_count == 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le numéro de téléphone existe déjà 

'; 
 }
else //telephone ok
{
$phone = $_POST['inscr_phone'];
$valeur_phone = true;

//validationde la localisation.
if(isset($_POST['inscr_loc'])) // si la localisation est réçu en POST sur la page
{ 
$loc = $_POST['inscr_loc'];//attribution du POST à une variable
$valeur_loc = true;

//insertion dans la base
if($valeur_mail true , $valeur_pass true , $valeur_phone = true , $valeur_loc = true) 
{
$valeur_inscr = $bdd->prepare('INSERT INTO user(user_mail, user_pass, user_phone, user_loc) VALUES(:mail, :pass, :phone, :loc)') or die(print_r($bdd->errorInfo()));
$valeur_inscr->execute(array('mail' => $mail,
 'pass' => $pass,
 'phone' => $phone,
 'loc' => $loc,
));
echo ' Bienvenue nouveau membre';
}
//fin insertion dans la base
}
//fin de la validation de la localisation.

}
}
//fin du check et validation du numéro de TELEPHONE.

}
}//fin de validation du PASS.	
}
//fin du check et validation du MAIL.

?>
Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
23 avril 2011

correction : if($valeur_mail = true and $valeur_pass = true and $valeur_phone = true and $valeur_loc = true)
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
Je n'ai hélas pas le temps de regarder le code d'un point de vue algorithmique mais il y a pas mal de bons reflexes en développement:
1. Les commentaires, c'est si rare dans le code de la plupart des gens
2. Requetes préparées, bonne notion même si dans ce cas ce n'est pas vraiment nécessaire, mais c'est un bon point.
Quant à
if($valeur_mail true and $valeur_pass true and $valeur_phone = true and $valeur_loc = true)

transforme tes '=' en '=='..
Je verrai si je peux repasser voir ton code et t'aider, mais j'ai hélas peu de temps.
Bonne continuation..
S.
Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
23 avril 2011

voila j'ai essayé ça et ma base n'est toujours incrémenter des données

//check et validation du MAIL.
if(isset($_POST['inscr_mail']) and filter_var($_POST['inscr_mail'], FILTER_VALIDATE_EMAIL)) // si le mail d'inscription est reçu en POST sur la page
{ 

$mail = $_POST['inscr_mail'];//debut de verification du mail, attribution du POST à une variable

$valeur_checkmail $bdd->prepare('SELECT user_mail FROM user WHERE user_mail ?') or die(print_r($bdd->errorInfo()));
$valeur_checkmail->execute(array($mail));
$valeur_checkmail_count= $valeur_checkmail->rowCount(array($mail));// check si doublon

if (!$valeur_checkmail_count == 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le mail existe déjà 

'; 

}
else //mail ok
{
//validation du PASS.
if(isset($_POST['inscr_pass'])) // si le pass est réçu en POST sur la page
{ 
$pass = $_POST['inscr_log'];
$valeur_pass = true;

if(isset($_POST['inscr_phone'])) // si le TELEPHONE d'inscription est réçu en POST sur la page
{ 
$phone = $_POST['inscr_phone'];//debut de verification du TELEPHONE, attribution du POST à une variable
$valeur_checkphone $bdd->prepare('SELECT user_phone FROM user WHERE user_phone ?') or die(print_r($bdd->errorInfo()));
$valeur_checkphone->execute(array($phone));
$valeur_checkphone_count= $valeur_checkphone->rowCount(array($phone));// check si doublon

if (!$valeur_checkphone_count == 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le numéro de téléphone existe déjà 

'; 
 }
else //telephone ok
{
$phone = $_POST['inscr_phone'];
$valeur_phone = true;

//validationde la localisation.
if(isset($_POST['inscr_loc'])) // si la localisation est réçu en POST sur la page
{ 
$loc = $_POST['inscr_loc'];//attribution du POST à une variable
$valeur_loc = true;

//insertion dans la base
if($valeur_mail true and $valeur_pass true or $valeur_phone == true or $valeur_loc == true) {
try{
$valeur_inscr = $bdd->prepare('INSERT INTO user(user_mail, user_pass, user_phone, user_loc) VALUES(:mail, :pass, :phone, :loc)');
$valeur_inscr->execute(array('mail' => $mail,
 'pass' => $pass,
 'phone' => $phone,
 'loc' => $loc,
));
echo ' Bienvenue nouveau membre';

}//fn du try

catch (Exception $con_e) {

die('Erreur : '.$con_e->getMessage());
 }//fin du catch

} 
//fin insertion dans la base
}
//fin de la validation de la localisation.

}
}
//fin du check et validation du numéro de TELEPHONE.

}
}//fin de validation du PASS.	
}
//fin du check et validation du MAIL.
Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
23 avril 2011

elle est ou la fonction "edit" pour les post?

j'ai fait quelque modification encore :

<?php 

//check et validation du MAIL.
if(isset($_POST['inscr_mail']) and filter_var($_POST['inscr_mail'], FILTER_VALIDATE_EMAIL)) // si le mail d'inscription est reçu en POST sur la page
{ 

$mail = $_POST['inscr_mail'];//debut de verification du mail, attribution du POST à une variable

$valeur_checkmail $bdd->prepare('SELECT user_mail FROM user WHERE user_mail ?') or die(print_r($bdd->errorInfo()));
$valeur_checkmail->execute(array($mail));
$valeur_checkmail_count= $valeur_checkmail->rowCount();// check si doublon

if ($valeur_checkmail_count != 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le mail existe déjà 

'; 

}
else //mail ok
{
//validation du PASS.
if(isset($_POST['inscr_pass'])) // si le pass est réçu en POST sur la page
{ 
$pass = $_POST['inscr_pass'];
$pass = htmlentities($pass);
$valeur_pass = true;

if(isset($_POST['inscr_phone'])) // si le TELEPHONE d'inscription est réçu en POST sur la page
{ 
$phone = $_POST['inscr_phone'];//debut de verification du TELEPHONE, attribution du POST à une variable
$valeur_checkphone $bdd->prepare('SELECT user_phone FROM user WHERE user_phone ?') or die(print_r($bdd->errorInfo()));
$valeur_checkphone->execute(array($phone));
$valeur_checkphone_count= $valeur_checkphone->rowCount();// check si doublon

if ($valeur_checkphone_count != 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le numéro de téléphone existe déjà 

'; 
 }
else //telephone ok
{
$phone = $_POST['inscr_phone'];
$phone = htmlentities($phone);
$valeur_phone = true;

//validationde la localisation.
if(isset($_POST['inscr_loc'])) // si la localisation est réçu en POST sur la page
{ 
$loc = $_POST['inscr_loc'];//attribution du POST à une variable
$valeur_loc = true;

//insertion dans la base
if($valeur_mail true and $valeur_pass true or $valeur_phone == true or $valeur_loc == true) {
try{
$valeur_inscr = $bdd->prepare('INSERT INTO user(user_mail, user_pass, user_phone, user_loc) VALUES(:mail, :pass, :phone, :loc)');
$valeur_inscr->execute(array('mail' => $mail,
 'pass' => $pass,
 'phone' => $phone,
 'loc' => $loc,
));
echo ' Bienvenue nouveau membre';

}//fn du try

catch (Exception $con_e) {

die('Erreur : '.$con_e->getMessage());
 }//fin du catch

} 
//fin insertion dans la base
}
//fin de la validation de la localisation.

}
}
//fin du check et validation du numéro de TELEPHONE.

}
}//fin de validation du PASS.	
}
//fin du check et validation du MAIL.

?>


le problème est qu'il n'y a pas d'écriture dans la base, ça n'affiche pas d'erreur php, par contre j'ai testé si le check des doublon fonctionnait et ça marche, maintenant pourquoi ça n'implémente pas ma base ?

pourriez vous m'éclairer svp
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
16
bonsoir
as tu déjà essayé sans rien en mettent des valeurs par defaut
$pass ="kchose" ...
tu as oublié les : dans execute (array
<?php
try{
$valeur_inscr = $bdd->prepare('INSERT INTO user(user_mail, user_pass, user_phone, user_loc) VALUES(:mail, :pass, :phone, :loc)');
$valeur_inscr->execute(array(':mail' => $mail,
':pass' => $pass,
':phone' => $phone,
':loc' => $loc,
));
echo ' Bienvenue nouveau membre';

}//fn du try

catch (Exception $con_e) {

die('Erreur : '.$con_e->getMessage());
}//fin du catch

}
?>
Messages postés
8
Date d'inscription
vendredi 11 mars 2011
Statut
Membre
Dernière intervention
23 avril 2011

voila j'ai finalement réussis, en exportant le traitement dans un HTML de traitement

voila le code :
<?php 
include('../includes/connectiondb_inc.php');
//check et validation du MAIL.
if(isset($_POST['inscr_mail']) and filter_var($_POST['inscr_mail'], FILTER_VALIDATE_EMAIL)) // si le mail d'inscription est reçu en POST sur la page
{ 

$mail = $_POST['inscr_mail'];//debut de verification du mail, attribution du POST à une variable

$valeur_checkmail $bdd->prepare('SELECT user_mail FROM user WHERE user_mail ?') or die(print_r($bdd->errorInfo()));
$valeur_checkmail->execute(array($mail));
$valeur_checkmail_count= $valeur_checkmail->rowCount();// check si doublon

if ($valeur_checkmail_count != 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le mail existe déjà 

'; 

}
else //mail ok
{
echo 'mail ok';
//validation du PASS.
if(isset($_POST['inscr_pass'])) // si le pass est réçu en POST sur la page
{ 
$pass = $_POST['inscr_pass'];
$pass = htmlentities($pass);
$valeur_pass = true;
echo 'pass ok';

//validationde la localisation.
if(isset($_POST['inscr_loc'])) // si la localisation est réçu en POST sur la page
{ 
$loc = $_POST['inscr_loc'];//attribution du POST à une variable
$loc = htmlentities($loc);
$valeur_loc = true;
echo 'location ok';

if(isset($_POST['inscr_phone']) and (!empty($_POST['inscr_phone']))) // si le TELEPHONE d'inscription est réçu en POST sur la page
{ 
$phone = $_POST['inscr_phone'];//debut de verification du TELEPHONE, attribution du POST à une variable
$valeur_checkphone $bdd->prepare('SELECT user_phone FROM user WHERE user_phone ?') or die(print_r($bdd->errorInfo()));
$valeur_checkphone->execute(array($phone));
$valeur_checkphone_count= $valeur_checkphone->rowCount();// check si doublon

if ($valeur_checkphone_count != 0) 
{// si doublon positif on renvoi un message d'erreur
echo ' le numéro de téléphone existe déjà 

'; 
}
else //telephone ok
{
$phone = $_POST['inscr_phone'];
$phone = htmlentities($phone);
echo 'telephone ok';
//insertion dans la base si téléphone existe
if($valeur_mail true and $valeur_pass true or $valeur_loc == true) 
{
try
{
$valeur_inscr = $bdd->prepare('INSERT INTO user(user_mail, user_pass, user_phone, user_loc) VALUES(:mail, :pass, :phone, :loc)');
$valeur_inscr->execute(array('mail' => $mail,
 'pass' => $pass,
 'phone' => $phone,
 'loc' => $loc,
));
echo ' Bienvenue nouveau membre';

}//fn du try

catch (Exception $con_e) 
{

die('Erreur : '.$con_e->getMessage());
}//fin du catch
} 

}//fin insertion dans la base si téléphone ok						
}//fin du check et validation du numéro de TELEPHONE.

if (isset($_POST['inscr_phone']) and (empty($_POST['inscr_phone']))) 
{//insertion dans la base si téléphone inexistant
if($valeur_mail true and $valeur_pass true or $valeur_loc == true) 
{
try
{
$valeur_inscr = $bdd->prepare('INSERT INTO user(user_mail, user_pass, user_phone, user_loc) VALUES(:mail, :pass, :loc)');
$valeur_inscr->execute(array('mail' => $mail,
 'pass' => $pass,
 'loc' => $loc,
));
echo ' Bienvenue nouveau membre noublier pas de fournir un numéro de tél si vous voulez recevoir les deals par sms';

}//fn du try

catch (Exception $con_e) 
{

die('Erreur : '.$con_e->getMessage());
}//fin du catch
} 

}//fin insertion dans la base si téléphone inexistant
}//fin de la validation de la localisation	
}//fin de validation du PASS.	
}//fin du check et validation du MAIL.
}	



?>