IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

optimisation d'un script d'inscription en PHP.


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut optimisation d'un script d'inscription en PHP.
    Bonjour,

    Je suis entrain de coder un script d'inscription.

    Le système est simple, on fait d'abord quelques vérifications et si tout va bien, on inscrit les valeurs des champs dans la BDD.

    J'ai fais une première version fonctionnel, mais le script était vraiment dégueulasse. :s

    Je suis entrain de faire une refonte beaucoup plus claire, la voici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php 
     
    	if(isset($_POST['inscription_pseudo'] , $_POST['inscription_mdp'] , $_POST['inscription_confirm-mdp'] , $_POST['inscription_mail'] , $_POST['inscription_confirm-mail'] , $_POST['inscription_jour-ddn'] , $_POST['inscription_mois-ddn'] , $_POST['inscription_annee-ddn'])){  
     
    		/* Identification SQL */
    		$host = "127.0.0.1"; /* Serveur local sous Wamp */
    		$login = "root"; /* Pseudo */
    		$mdp = ""; /* Mot de passe */
    		$bdd = "xxx"; /* Base de donnée */
     
    		/* Affection des variables */
    		$pseudo = $_POST['inscription_pseudo'];
    		$motdepasse = $_POST['inscription_mdp'];
    		$confirm_mdp = $_POST['inscription_confirm-mdp'];
    		$mail = $_POST['inscription_mail'];
    		$confirm_mail = $_POST['inscription_confirm-mail'];
    		$jddn = $_POST['inscription_jour-ddn'];
    		$mddn = $_POST['inscription_mois-ddn'];
    		$addn = $_POST['inscription_annee-ddn'];
    		$captcha = $_POST['captcha'];
    		$erreur = "";
    		$dateins = "".$addn."-".$mddn."-".$jddn."";	
    		$mdpcry = sha1($motdepasse);		
     
    			if("verification" === false){
    				echo '.$erreur.';
    			}
    			else{	
    				$connexion_sql = mysql_connect($host,$login,$mdp); 
    				$connexion_bdd = mysql_select_db($bdd);
    				if(!$connexion_sql || !$connexion_bdd)
    				$erreur = 'Connexion impossible avec le serveur distant.';
    				else{
    					$result_pseudo = mysql_query('SELECT id FROM membre WHERE pseudo=\''.$pseudo.'\';')
    						or exit(mysql_error());
    					$nombre_pseudo = mysql_num_rows($result_pseudo);
    					$result_mail = mysql_query('SELECT id FROM membre WHERE mail=\''.$mail.'\';')
    						or exit(mysql_error());
    					$nombre_mail = mysql_num_rows($result_mail);
    					if($nombre_pseudo > 0)
    					$erreur = 'Pseudo déjà utilisé par un autre compte.'; 
    					elseif($nombre_mail > 0)
    					$erreur = 'Adresse e-mail déjà utilisé par un autre compte.';
    					else return true;
    				}
    			}	
    				mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')");	
     
    		function verification(&$erreur){
    			if(empty($pseudo) || empty($motdepasse) || empty($confirm_mdp) || empty($mail) || empty($confirm_mail) ||  empty($jddn) || empty($mddn) || empty($addn)) 
    			$erreur = 'Vous n\'avez pas remplis tous les champs du formulaire.';
    			elseif(($motdepasse != $confirm_mdp) || ($mail != $confirm_mail))
    			$erreur = 'Les champs de confirmations n\'ont pas été correctement remplis.';
    			elseif(filter_var($mail, FILTER_VALIDATE_EMAIL) === false)
    			$erreur = 'Le format de l\'adresse e-mail n\'est pas correcte. Merci d\'introduite une adresse du type : <a href="mailto:adresse@email.xxx">adresse@email.xxx</a>';
    			elseif(checkdate($mddn,$jddn,$addn) === false)
    			$erreur = 'Merci de rentrer une date de naissance correct.';
    			elseif(isset($_SESSION['captcha'])) {
    				if(empty($_POST['captcha'])) $erreur = 'Veuillez recopier le code affiché.';
    				elseif($_POST['captcha'] != $_SESSION['captcha']) $erreur = 'Le code inscrit n\'est pas le même que l\'original.';
    				else return true;
    			}
    		}
    	}
    session_destroy();	
    ?>
    Cependant j'ai quelques problèmes...

    D'une part, le script ne me retourne aucune erreur... De plus, même sans erreur rien ne s'inscrit dans la BDD.

    D'autre part, les erreurs ne s'affichent pas... :s

    Voici le script HTML ou l'erreur s'affiche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="erreur"><?php echo $erreur; ?></div>
    Voilà, j'aimerais que vous me donniez quelques conseils si possible et toutes remarques seront la bienvenue.

    Merci et bonnes fêtes.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "verification" === false
    une chaine ne peut pas valloir FALSE
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Ok, donc tu me conseil quoi ? un "!=" ?

  4. #4
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    Ben, c'est le test en question qui est un rien foireux.

    Tu fais une tautologie pour être plus précis.

    Si tu veux toujours afficher l'erreur :

    Il n'est pas nécessaire de mettre
    Le test sera toujours correct.

    Si tu voulais dire $verification == false, alors tu devrais t'inquiéter des valeurs possibles de $verification.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    D'accord, j'ai donc supprimé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php if(!$connexion_sql || !$connexion_bdd)
    				$erreur = 'Connexion impossible avec le serveur distant.';
    				else{ ?>
    Si tu voulais dire $verification == false, alors tu devrais t'inquiéter des valeurs possibles de $verification.
    Càd ?

    Tu veux sans doutes parler du faite que lorsqu'une erreur est détecté, la function ne retourne pas la valeur false ?

    Merci.

    Edit : Je tiens à rajouter que sur celle ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="erreur"><?php echo $erreur; ?></div>
    J'ai cette erreur => Notice: Undefined variable: erreur in D:\wamp\www\site\test.php on line 68

    Or je ne sais pas d'ou ça vient. :s

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ca veut dire que $erreur n'est pas défini dans ton script.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Oui, j'avais bien compris, sauf que elle est bien inscrit dans mon script. Enfin à mon sens. :p

    Voici la page total :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    <?php 
    	session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Inscription</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="inscription.css" />
    <script type="text/javascript">
    	function ChangeStatut(formulaire) {
    	  if(formulaire.inscription_checkbox.checked) {
    		formulaire.inscription_submit.disabled = false;
    	  } else {
    		formulaire.inscription_submit.disabled = true;
    	  }
    	}
    </script>
    </head>
     
    <body>
    	<div id="corp"> <!-- Corp de la page -->
        	<div id="banniere"> <!-- Bannière de la page -->
            </div>
            <div id="menu"> <!-- Menu horizontal -->    
                <ul id="onglets"> <!-- Menu horizontal de la page -->
                    <li class="arrondi"><a href="index.php">Accueil</a></li>
                    <li><a href="astuces.php">Astuces</a></li>
                    <li><a href="photos.php">Photos</a></li>
                    <li><a href="forum/index.php">Forum</a></li>
                </ul>
            </div>  
            <div id="connexion"> <!-- Espace connection de la page -->
            	<span class="titreconnexion">C'est qui ?</span>
                <form method="post">
                	<label for="connexion_pseudo" style="font:14px calibri" maxlength="16" >Pseudo : <br/></label>
                	<input type="text" name="connexion_pseudo" /><br /><br />
                    <label for="connexion_mdp" style="font:14px calibri">Mot de passe : <br /></label>
                    <input type="password" name="connexion_mdp" /><br />
                    <a href="#" style="font:11px calibri; text-decoration:none; color:#000;" >Mot de passe oublié ?</a><br /><br/>
                    <input type="checkbox" name="connexion_checkbox" />
                    <label for="connexion_checkbox" style="font:14px calibri"> Se souvenir de moi. <br/><br/></label> 
                    <input type="submit" name="connexion_submit" Value="Connexion" /><br /><br/>
                    <a href="inscription.php" style="font:14px calibri; text-decoration:none; color:#FF9600;"><u>Pas encore inscrit ?</u></a>
               </form>
            </div>
            <div id="inscription"> <!-- Formulaire d'inscription de la page -->
            	<form method="post">
               		<span class="titreinscription">Inscription :</span><br />
                	<label for="inscription_pseudo" style="font:14px calibri" >Pseudo :<br/></label>
                	<input type="text" name="inscription_pseudo" maxlength="16" /><br /><br />
                    <label for="inscription_mdp" style="font:14px calibri">Mot de passe :<br /></label>
                    <input type="password" name="inscription_mdp" /><br /><br />
                    <label for="inscription_confirm-mdp" style="font:14px calibri">Mot de passe : <span style="font-size:10px">confirmation</span><br /></label>
                    <input type="password" name="inscription_confirm-mdp" /><br /><br />
                    <label for="inscription_mail" style="font:14px calibri" >Adresse e-mail :<br/></label>
                    <input type="text" name="inscription_mail" /><br /><br />
                    <label for="inscription_confirm-mail" style="font:14px calibri" >Adresse e-mail : <span style="font-size:10px">confirmation</span><br/></label>
                    <input type="text" name="inscription_confirm-mail" /><br /><br />
                    <label style="font:14px calibri">Date de naissance :  <span style="font-size:10px">JJ/MM/AAAA</span></label><br/>
                    <input type="text" maxlength="2" name="inscription_jour-ddn" size="1"/> / <input type="text" maxlength="2" name="inscription_mois-ddn" size="1" /> / <input type="text" maxlength="4" name="inscription_annee-ddn" 				size="2" /><br/><br/>
                    <label for="captcha" style="font:14px calibri" >Recopier le code : <img src="script/captcha.php" /></label><br/>
                    <input type="text" name="captcha" /><br/><br/>
                    <input type="checkbox" name="inscription_checkbox" onclick="ChangeStatut(this.parentNode)" />
                    <label for="inscription_checkbox" style="font:14px calibri">J'ai lu et j'accepte le règlement du site.<br/><br/></label> 
                    <input type="submit" name="inscription_submit" Value="Inscription" disabled="disabled" /><br /><br />    
                    <div id="erreur"><?php echo $erreur; ?></div>     
                </form>
            </div>
        </div>
    </body>
    </html>
     
    <?php 
     
    	if(isset($_POST['inscription_pseudo'] , $_POST['inscription_mdp'] , $_POST['inscription_confirm-mdp'] , $_POST['inscription_mail'] , $_POST['inscription_confirm-mail'] , $_POST['inscription_jour-ddn'] , $_POST['inscription_mois-ddn'] , $_POST['inscription_annee-ddn'])){  
     
    		/* Identification SQL */
    		$host = "127.0.0.1"; /* Serveur local sous Wamp */
    		$login = "root"; /* Pseudo */
    		$mdp = ""; /* Mot de passe */
    		$bdd = "xxx"; /* Base de donnée */
     
    		/* Affection des variables */
    		$pseudo = $_POST['inscription_pseudo'];
    		$motdepasse = $_POST['inscription_mdp'];
    		$confirm_mdp = $_POST['inscription_confirm-mdp'];
    		$mail = $_POST['inscription_mail'];
    		$confirm_mail = $_POST['inscription_confirm-mail'];
    		$jddn = $_POST['inscription_jour-ddn'];
    		$mddn = $_POST['inscription_mois-ddn'];
    		$addn = $_POST['inscription_annee-ddn'];
    		$captcha = $_POST['captcha'];
    		$erreur = "";
    		$dateins = "".$addn."-".$mddn."-".$jddn."";	
    		$mdpcry = sha1($motdepasse);		
     
    		$connexion_sql = mysql_connect($host,$login,$mdp); 
    		$connexion_bdd = mysql_select_db($bdd);
    		if(!$connexion_sql || !$connexion_bdd){
    		$erreur = 'Connexion impossible avec le serveur distant.';
    		}
    		else{
    		$result_pseudo = mysql_query('SELECT id FROM membre WHERE pseudo=\''.$pseudo.'\';')
    			or exit(mysql_error());
    		$nombre_pseudo = mysql_num_rows($result_pseudo);
    		$result_mail = mysql_query('SELECT id FROM membre WHERE mail=\''.$mail.'\';')
    			or exit(mysql_error());
    		$nombre_mail = mysql_num_rows($result_mail);
    		if($nombre_pseudo > 0){
    		$erreur = 'Pseudo déjà utilisé par un autre compte.'; 
    		}
    		elseif($nombre_mail > 0){
    		$erreur = 'Adresse e-mail déjà utilisé par un autre compte.';
    		}
    		else return true;
    		}
     
    		mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')");	
     
    		function verification(&$erreur){
    			if(empty($pseudo) || empty($motdepasse) || empty($confirm_mdp) || empty($mail) || empty($confirm_mail) ||  empty($jddn) || empty($mddn) || empty($addn)){
    			$erreur = 'Vous n\'avez pas remplis tous les champs du formulaire.';
    			}
    			elseif(($motdepasse != $confirm_mdp) || ($mail != $confirm_mail)){
    			$erreur = 'Les champs de confirmations n\'ont pas été correctement remplis.';
    			}
    			elseif(filter_var($mail, FILTER_VALIDATE_EMAIL) === false){
    			$erreur = 'Le format de l\'adresse e-mail n\'est pas correcte. Merci d\'introduite une adresse du type : adresse@email.xxx';
    			}
    			elseif(checkdate($mddn,$jddn,$addn) === false){
    			$erreur = 'Merci de rentrer une date de naissance correct.';
    			}
    			elseif(isset($_SESSION['captcha'])){
    				if(empty($_POST['captcha'])){ 
    				$erreur = 'Veuillez recopier le code affiché.';
    				}
    				elseif($_POST['captcha'] != $_SESSION['captcha']){
    				$erreur = 'Le code inscrit n\'est pas le même que l\'original.';
    				}
    				else return true;
    			}
    		}
    	}
    session_destroy();	
    ?>
    On voit bien le $erreur = "";

    Edit : Solution trouver, j'ai déclarer la variable $erreur = null; en début de page.

    Au passage, je laisse mon code ici. Toutes vos observations et remarques constructives seront la bienvenue. Au passage je suis débutant en PHP.

    Edit 2 : Je tient juste à préciser que je déplore deux problèmes avec ce script.

    1/ Aucune erreur ne s'affiche et ceux dans n'importe quel cas.
    2/ Même sans erreur, rien ne s'inscrit dans la BDD

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    fais un apres ton insertion ; s'il y a une erreur dans l'execution de ta requete, tu le sauras.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Je viens de tester et j'ai une Parse Error. :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')")
    			echo mysql_error();
    J'ai même essayé en rajoutant des '' entre mysql_error(); mais rien n'y fait.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour voir le résultat de $erreur, il faut que le formulaire soit placé à la fin du script, ou du moins après que $erreur soit défini.
    La tu affiches $erreur, avant qu'il n'existe.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Merci.

    Alors voici comment j'ai disposé le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
     
    <?php 
    session_start();
    $erreur = NULL;
    	if(isset($_POST['inscription_pseudo'] , $_POST['inscription_mdp'] , $_POST['inscription_confirm-mdp'] , $_POST['inscription_mail'] , $_POST['inscription_confirm-mail'] , $_POST['inscription_jour-ddn'] , $_POST['inscription_mois-ddn'] , $_POST['inscription_annee-ddn'])){  
     
    		/* Identification SQL */
    		$host = "127.0.0.1"; /* Serveur local sous Wamp */
    		$login = "root"; /* Pseudo */
    		$mdp = ""; /* Mot de passe */
    		$bdd = ""; /* Base de donnée */
     
    		/* Affection des variables */
    		$pseudo = $_POST['inscription_pseudo'];
    		$motdepasse = $_POST['inscription_mdp'];
    		$confirm_mdp = $_POST['inscription_confirm-mdp'];
    		$mail = $_POST['inscription_mail'];
    		$confirm_mail = $_POST['inscription_confirm-mail'];
    		$jddn = $_POST['inscription_jour-ddn'];
    		$mddn = $_POST['inscription_mois-ddn'];
    		$addn = $_POST['inscription_annee-ddn'];
    		$captcha = $_POST['captcha'];
    		$dateins = "".$addn."-".$mddn."-".$jddn."";	
    		$mdpcry = sha1($motdepasse);		
     
    		$connexion_sql = mysql_connect($host,$login,$mdp); 
    		$connexion_bdd = mysql_select_db($bdd);
    		if(!$connexion_sql || !$connexion_bdd){
    		$erreur = 'Connexion impossible avec le serveur distant.';
    		}
    		else{
    		$result_pseudo = mysql_query('SELECT id FROM membre WHERE pseudo=\''.$pseudo.'\';')
    			or exit(mysql_error());
    		$nombre_pseudo = mysql_num_rows($result_pseudo);
    		$result_mail = mysql_query('SELECT id FROM membre WHERE mail=\''.$mail.'\';')
    			or exit(mysql_error());
    		$nombre_mail = mysql_num_rows($result_mail);
    		if($nombre_pseudo > 0){
    		$erreur = 'Pseudo déjà utilisé par un autre compte.'; 
    		}
    			elseif($nombre_mail > 0){
    			$erreur = 'Adresse e-mail déjà utilisé par un autre compte.';
    			}
    		}
     
    		mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')");
     
    		function verification(&$erreur){
    			if(empty($pseudo) || empty($motdepasse) || empty($confirm_mdp) || empty($mail) || empty($confirm_mail) ||  empty($jddn) || empty($mddn) || empty($addn)){
    			$erreur = 'Vous n\'avez pas remplis tous les champs du formulaire.';
    			}
    			elseif(($motdepasse != $confirm_mdp) || ($mail != $confirm_mail)){
    			$erreur = 'Les champs de confirmations n\'ont pas été correctement remplis.';
    			}
    			elseif(filter_var($mail, FILTER_VALIDATE_EMAIL) === false){
    			$erreur = 'Le format de l\'adresse e-mail n\'est pas correcte. Merci d\'introduite une adresse du type : adresse@email.xxx';
    			}
    			elseif(checkdate($mddn,$jddn,$addn) === false){
    			$erreur = 'Merci de rentrer une date de naissance correct.';
    			}
    			elseif(isset($_SESSION['captcha'])){
    				if(empty($_POST['captcha'])){ 
    				$erreur = 'Veuillez recopier le code affiché.';
    				}
    				elseif($_POST['captcha'] != $_SESSION['captcha']){
    				$erreur = 'Le code inscrit n\'est pas le même que l\'original.';
    				}
    				else return true;
    			}
    		}
    	}	
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Inscription</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="inscription.css" />
    <script type="text/javascript">
    	function ChangeStatut(formulaire) {
    	  if(formulaire.inscription_checkbox.checked) {
    		formulaire.inscription_submit.disabled = false;
    	  } else {
    		formulaire.inscription_submit.disabled = true;
    	  }
    	}
    </script>
    </head>
     
    <body>
    	<div id="corp"> <!-- Corp de la page -->
        	<div id="banniere"> <!-- Bannière de la page -->
            </div>
            <div id="menu"> <!-- Menu horizontal -->    
                <ul id="onglets"> <!-- Menu horizontal de la page -->
                    <li class="arrondi"><a href="index.php">Accueil</a></li>
                    <li><a href="astuces.php">Astuces</a></li>
                    <li><a href="photos.php">Photos</a></li>
                    <li><a href="forum/index.php">Forum</a></li>
                </ul>
            </div>  
            <div id="connexion"> <!-- Espace connection de la page -->
            	<span class="titreconnexion">C'est qui ?</span>
                <form method="post">
                	<label for="connexion_pseudo" style="font:14px calibri" maxlength="16" >Pseudo : <br/></label>
                	<input type="text" name="connexion_pseudo" /><br /><br />
                    <label for="connexion_mdp" style="font:14px calibri">Mot de passe : <br /></label>
                    <input type="password" name="connexion_mdp" /><br />
                    <a href="#" style="font:11px calibri; text-decoration:none; color:#000;" >Mot de passe oublié ?</a><br /><br/>
                    <input type="checkbox" name="connexion_checkbox" />
                    <label for="connexion_checkbox" style="font:14px calibri"> Se souvenir de moi. <br/><br/></label> 
                    <input type="submit" name="connexion_submit" Value="Connexion" /><br /><br/>
                    <a href="inscription.php" style="font:14px calibri; text-decoration:none; color:#FF9600;"><u>Pas encore inscrit ?</u></a>
               </form>
            </div>
            <div id="inscription"> <!-- Formulaire d'inscription de la page -->
            	<form method="post">
               		<span class="titreinscription">Inscription :</span><br />
                	<label for="inscription_pseudo" style="font:14px calibri" >Pseudo :<br/></label>
                	<input type="text" name="inscription_pseudo" maxlength="16" /><br /><br />
                    <label for="inscription_mdp" style="font:14px calibri">Mot de passe :<br /></label>
                    <input type="password" name="inscription_mdp" /><br /><br />
                    <label for="inscription_confirm-mdp" style="font:14px calibri">Mot de passe : <span style="font-size:10px">confirmation</span><br /></label>
                    <input type="password" name="inscription_confirm-mdp" /><br /><br />
                    <label for="inscription_mail" style="font:14px calibri" >Adresse e-mail :<br/></label>
                    <input type="text" name="inscription_mail" /><br /><br />
                    <label for="inscription_confirm-mail" style="font:14px calibri" >Adresse e-mail : <span style="font-size:10px">confirmation</span><br/></label>
                    <input type="text" name="inscription_confirm-mail" /><br /><br />
                    <label style="font:14px calibri">Date de naissance :  <span style="font-size:10px">JJ/MM/AAAA</span></label><br/>
                    <input type="text" maxlength="2" name="inscription_jour-ddn" size="1"/> / <input type="text" maxlength="2" name="inscription_mois-ddn" size="1" /> / <input type="text" maxlength="4" name="inscription_annee-ddn" 				size="2" /><br/><br/>
                    <label for="captcha" style="font:14px calibri" >Recopier le code : <img src="script/captcha.php" /></label><br/>
                    <input type="text" name="captcha" /><br/><br/>
                    <input type="checkbox" name="inscription_checkbox" onclick="ChangeStatut(this.parentNode)" />
                    <label for="inscription_checkbox" style="font:14px calibri">J'ai lu et j'accepte le règlement du site.<br/><br/></label> 
                    <input type="submit" name="inscription_submit" Value="Inscription" disabled="disabled" /><br /><br />    
                    <div id="erreur"><?php echo $erreur; ?></div>     
                </form>
            </div>
        </div>
    </body>
    </html>
    <?php 
    session_destroy();
    ?>
    Cependant, même problème. :s Rien ne s'affiche à aucun moment. :/

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton script est pourtant fonctionnel (dans le sens ou il n'est pas parfait mais devrait fonctionner).
    fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')")
     or die(mysql_error());
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Dans un premier temps, j'ai enlever le else return true; qui s'avère inutile.

    Et là, surprise, je clique sur le bouton submit sans même avoir écris qqch dans un champs et je vois que ça s'inscrit dans la BDD !

    Alors j'ai voulu tester avec le or die(mysql_error());
    Et la miracle ! Je vois le message d'erreur suivant qui apparait :
    Pseudo déjà utilisé par un autre compte.

    En effet, le pseudo (vide) était déjà référencé dans la BDD !

    Cela m'amène à dire, que le problème doit se trouver dans la fonction vérification !

    J'espère avoir été claire.

    Edit : Je viens de voire que malgré le message d'erreur, ça s'inscrivait bien dans la BDD. :s

    Il faudrait peut-être que j'ajoute un die après le "$erreur =" ?

  14. #14
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Ou tu peux mettre un autre else pour ne faire l'insertion que si les 2 conditions précédentes ne sont pas vrai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if($nombre_pseudo > 0){
    		$erreur = 'Pseudo déjà utilisé par un autre compte.'; 
    		}
    			elseif($nombre_mail > 0){
    			$erreur = 'Adresse e-mail déjà utilisé par un autre compte.';
    			}
    			else {mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')");}
    Sinon ta fonction "verification" n'est jamais utilisé. De plus à l'intérieur de celle-ci tu utilises des variables locales non définis.
    Faudrait mettre ces variables en paramètres de te fonction pour les utilisées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function verification(&$erreur,$pseudo,$motdepasse,$confirm_mdp,$mail,$confirm_mail,$jddn,$mddn,$addn)

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Ah pas bête, je n'y avait pas pensé.

    Donc j'ai intégré comme tu m'as conseillé un else avec l'insertion dans la bdd des valeurs.

    Sinon ta fonction "verification" n'est jamais utilisé.
    Et je fais comment pour l'utiliser ? J'avais pensé à un switch en début de script, mais on m'a dit que ça serait trop lourd. :s

    Sachant que la fonction ne renvoie pas de valeur, je vois pas trop comment l'utiliser. xD

    Histoire de dormir moins bête ce soir, tu pourrait me dire à quoi correspond le "&" ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function verification(&$erreur,$pseudo,$motdepasse,$confirm_mdp,$mail,$confirm_mail,$jddn,$mddn,$addn)
    Merci.

    Edit : Cela dit, même en effectuant ces changements, j'ai toujours les mêmes problèmes.

  16. #16
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Le "&" correspond à un passage par référence : Je te renvoies vers la documentation PHP si tu veux plus de précision : ici

    La vérification des valeurs se fait avant de faire les requêtes SQL.
    Une bonne chose à faire aussi est de protéger les requêtes SQL contre les injections SQL. Encore une fois une invitation à lire la documentation PHP : ici. Regarde en particulier vers le milieu de la page, le paragraphe "Techniques de contournement". En respectant les quelques points de ce paragraphes tu peux être tranquille.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Merci pour ces quelques liens qui m'ont éclairé.

    J'ai trouvé la solution au problème de la fonction non appelée. Un simple verification(.................); et ça fonctionne.

    Tous les messages d'erreurs s'affichent bien au bons moments.

    Une seul chose reste caduque : L'inscription systématique des champs dans la BDD, même quand le formulaire contient des erreurs. :s
    J'ai testé en ajoutant die, mais ça m'affiche une page blanche avec juste l'erreur rencontré.

    Voilà le code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php 
    session_start();
    $erreur = NULL;
    	if(isset($_POST['inscription_pseudo'] , $_POST['inscription_mdp'] , $_POST['inscription_confirm-mdp'] , $_POST['inscription_mail'] , $_POST['inscription_confirm-mail'] , $_POST['inscription_jour-ddn'] , $_POST['inscription_mois-ddn'] , $_POST['inscription_annee-ddn'])){  
     
    		/* Identification SQL */
    		$host = "localhost"; /* Serveur local sous Wamp */
    		$login = "Jean"; /* Pseudo */
    		$mdp = ""; /* Mot de passe */
    		$bdd = ""; /* Base de donnée */
     
    		/* Affection des variables */
    		$pseudo = $_POST['inscription_pseudo'];
    		$motdepasse = $_POST['inscription_mdp'];
    		$confirm_mdp = $_POST['inscription_confirm-mdp'];
    		$mail = $_POST['inscription_mail'];
    		$confirm_mail = $_POST['inscription_confirm-mail'];
    		$jddn = $_POST['inscription_jour-ddn'];
    		$mddn = $_POST['inscription_mois-ddn'];
    		$addn = $_POST['inscription_annee-ddn'];
    		$captcha = $_POST['captcha'];
    		$dateins = "".$addn."-".$mddn."-".$jddn."";	
    		$mdpcry = sha1($motdepasse);		
     
    			function verification(&$erreur,$pseudo,$motdepasse,$confirm_mdp,$mail,$confirm_mail,$jddn,$mddn,$addn){
    			if(empty($pseudo) || empty($motdepasse) || empty($confirm_mdp) || empty($mail) || empty($confirm_mail) ||  empty($jddn) || empty($mddn) || empty($addn)){
    			$erreur = 'Vous n\'avez pas remplis tous les champs du formulaire.';
    			}
    			elseif(($motdepasse != $confirm_mdp) || ($mail != $confirm_mail)){
    			$erreur = 'Les champs de confirmations n\'ont pas été correctement remplis.';
    			}
    			elseif(filter_var($mail, FILTER_VALIDATE_EMAIL) == false){
    			$erreur = 'Merci de renseigner une adresse du type : adresse@email.xxx'; 
    			}
    			elseif(checkdate($mddn,$jddn,$addn) == false){
    			$erreur = 'Merci de rentrer une date de naissance correcte.';
    			}
    			elseif(isset($_SESSION['captcha'])){
    				if(empty($_POST['captcha'])){ 
    				$erreur = 'Veuillez recopier le code affiché.';
    				}
    				elseif($_POST['captcha'] != $_SESSION['captcha']){
    				$erreur = 'Le code inscrit n\'est pas le même que l\'original.';
    				}
    			}
    		}
     
    		verification($erreur,$pseudo,$motdepasse,$confirm_mdp,$mail,$confirm_mail,$jddn,$mddn,$addn);
     
    		$connexion_sql = mysql_connect($host,$login,$mdp); 
    		$connexion_bdd = mysql_select_db($bdd);
    		if(!$connexion_sql || !$connexion_bdd){
    		$erreur = 'Connexion impossible avec le serveur distant.';
    		}
    		else{
    			$result_pseudo = mysql_query("SELECT id FROM membre WHERE pseudo='.$pseudo.'",
    				mysql_real_escape_string($pseudo)
    				or exit(mysql_error()));
    			$nombre_pseudo = mysql_num_rows($result_pseudo);
    			$result_mail = mysql_query("SELECT id FROM membre WHERE mail='.$mail.'",
    				mysql_real_escape_string($mail)
    				or exit(mysql_error()));
    			$nombre_mail = mysql_num_rows($result_mail);
    			if($nombre_pseudo > 0){
    			$erreur = 'Pseudo déjà utilisé par un autre compte.'; 
    			}
    			elseif($nombre_mail > 0){
    			$erreur = 'Adresse e-mail déjà utilisé par un autre compte.';
    			}
    			else{
    				mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')");
    			}
    		}					
    	}	
    ?>
    Ensuite, je me suis intéressé de plus prêt aux injections SQL. Même si je n'ai pas tout saisit, j'ai d'une part créer un compte avec privilèges restreints sous MySQL comme indiqué. D'autre part, j'ai souhaité ajouter "mysql_real_escape_string()" lors des requêtes vers la BDD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $pseudosql = mysql_real_escape_string($pseudo);
    			$mailsql = mysql_real_escape_string($mail);
    			$result_pseudo = mysql_query("SELECT id FROM membre WHERE pseudo='.$pseudosql.'")
    				or exit(mysql_error());
    			$nombre_pseudo = mysql_num_rows($result_pseudo);
    			$result_mail = mysql_query("SELECT id FROM membre WHERE mail='.$mailsql.'")
    				or exit(mysql_error());
    			$nombre_mail = mysql_num_rows($result_mail);
    Personnellement, le script ne renvoie aucune erreur du type parse error ou autres. Ça vous parait comment ?

    Merci de votre aide.

  18. #18
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Je viens de remarquer une chose. Tu as un problème avec les chaines de caractères pour tes requêtes.

    Tu indiques ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $pseudosql = mysql_real_escape_string($pseudo);
    			$mailsql = mysql_real_escape_string($mail);
    			$result_pseudo = mysql_query("SELECT id FROM membre WHERE pseudo='.$pseudosql.'")
    				or exit(mysql_error());
    			$nombre_pseudo = mysql_num_rows($result_pseudo);
    			$result_mail = mysql_query("SELECT id FROM membre WHERE mail='.$mailsql.'")
    				or exit(mysql_error());
    			$nombre_mail = mysql_num_rows($result_mail);
    Il faudrait mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $pseudosql = mysql_real_escape_string($pseudo);
    			$mailsql = mysql_real_escape_string($mail);
    			$result_pseudo = mysql_query('SELECT id FROM membre WHERE pseudo="'.$pseudosql.'"')
    				or exit(mysql_error());
    			$nombre_pseudo = mysql_num_rows($result_pseudo);
    			$result_mail = mysql_query('SELECT id FROM membre WHERE mail="'.$mailsql.'"')
    				or exit(mysql_error());
    			$nombre_mail = mysql_num_rows($result_mail);
    Remarque : Je préfère utiliser les simple quote. Sinon pour en revenir au même avec les doubles quote, il suffit d'enlever les "." avant et après tes variables PHP.
    Et la je pense que ca règlera ton problème d'insertion.

  19. #19
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Une petite modification apporté à ta fonction de vérification. Je lui fait retourné "vrai" ou "faux" suivant que les tests sont ok ou pas.

    Et j'utilise cette valeur de retour pour savoir si je peux faire (ou non) les testes en base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php 
    session_start();
    $erreur = NULL;
    	if(isset($_POST['inscription_pseudo'] , $_POST['inscription_mdp'] , $_POST['inscription_confirm-mdp'] , $_POST['inscription_mail'] , $_POST['inscription_confirm-mail'] , $_POST['inscription_jour-ddn'] , $_POST['inscription_mois-ddn'] , $_POST['inscription_annee-ddn'])){  
     
    		/* Identification SQL */
    		$host = "localhost"; /* Serveur local sous Wamp */
    		$login = "Jean"; /* Pseudo */
    		$mdp = ""; /* Mot de passe */
    		$bdd = ""; /* Base de donnée */
     
    		/* Affection des variables */
    		$pseudo = $_POST['inscription_pseudo'];
    		$motdepasse = $_POST['inscription_mdp'];
    		$confirm_mdp = $_POST['inscription_confirm-mdp'];
    		$mail = $_POST['inscription_mail'];
    		$confirm_mail = $_POST['inscription_confirm-mail'];
    		$jddn = $_POST['inscription_jour-ddn'];
    		$mddn = $_POST['inscription_mois-ddn'];
    		$addn = $_POST['inscription_annee-ddn'];
    		$captcha = $_POST['captcha'];
    		$dateins = "".$addn."-".$mddn."-".$jddn."";	
    		$mdpcry = sha1($motdepasse);		
     
    			function verification(&$erreur,$pseudo,$motdepasse,$confirm_mdp,$mail,$confirm_mail,$jddn,$mddn,$addn){
    			if(empty($pseudo) || empty($motdepasse) || empty($confirm_mdp) || empty($mail) || empty($confirm_mail) ||  empty($jddn) || empty($mddn) || empty($addn)){
    			$erreur = 'Vous n\'avez pas remplis tous les champs du formulaire.';
    			return false;
    			}
    			elseif(($motdepasse != $confirm_mdp) || ($mail != $confirm_mail)){
    			$erreur = 'Les champs de confirmations n\'ont pas été correctement remplis.';
    			return false;
    			}
    			elseif(filter_var($mail, FILTER_VALIDATE_EMAIL) == false){
    			$erreur = 'Merci de renseigner une adresse du type : adresse@email.xxx'; 
    			return false;
    			}
    			elseif(checkdate($mddn,$jddn,$addn) == false){
    			$erreur = 'Merci de rentrer une date de naissance correcte.';
    			return false;
    			}
    			elseif(isset($_SESSION['captcha'])){
    				if(empty($_POST['captcha'])){ 
    				$erreur = 'Veuillez recopier le code affiché.';
    				return false;
    				}
    				elseif($_POST['captcha'] != $_SESSION['captcha']){
    				$erreur = 'Le code inscrit n\'est pas le même que l\'original.';
    				return false;
    				}
    			}
    			return true;
    		}
    		// $check est un booléen
    		$check = verification($erreur,$pseudo,$motdepasse,$confirm_mdp,$mail,$confirm_mail,$jddn,$mddn,$addn);
    		if ( $check)
    		{
    			$connexion_sql = mysql_connect($host,$login,$mdp); 
    			$connexion_bdd = mysql_select_db($bdd);
    			if(!$connexion_sql || !$connexion_bdd){
    			$erreur = 'Connexion impossible avec le serveur distant.';
    			}
    			else{
    				$result_pseudo = mysql_query("SELECT id FROM membre WHERE pseudo='$pseudo'",
    					mysql_real_escape_string($pseudo)
    					or exit(mysql_error()));
    				$nombre_pseudo = mysql_num_rows($result_pseudo);
    				$result_mail = mysql_query("SELECT id FROM membre WHERE mail='$mail'",
    					mysql_real_escape_string($mail)
    					or exit(mysql_error()));
    				$nombre_mail = mysql_num_rows($result_mail);
    				if($nombre_pseudo > 0){
    				$erreur = 'Pseudo déjà utilisé par un autre compte.'; 
    				}
    				elseif($nombre_mail > 0){
    				$erreur = 'Adresse e-mail déjà utilisé par un autre compte.';
    				}
    				else{
    					mysql_query("INSERT INTO `membre` (id,pseudo,mdp,mail,date_de_naissance,niveau_compte) VALUES('','$pseudo','$mdpcry','$mail','$dateins','1')");
    				}
    			}	
    		}
    	}	
    ?>

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Je suis entrain d'établir ma fonction mail et je suis face à un Parse Error, mais je ne vois pas d'où vient le problème. :s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    					/* ======= EMAIL ======= */
    					if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)){
    						$passage_ligne = "\r\n";
    					}
    					else{
    						$passage_ligne = "\n";
    					}
     
    					$header = 'MIME-Version: 1.0' . $br;
    					$header. = 'Content-type: text/html; charset=iso-8859-1'.$br;
    					$header. = 'From: inscription@xxx.fr'.$br;
     
    					$titre = 'Bienvenue sur xxx !';
     
    					$message = 'Bienvenue sur xxx !
     
    					Identifiant => '.$pseudo.'
    					Mot de passe => '.$motdepasse.'
     
    					A bientôt !';
     
    					mail($mail,$titre,$message,$header);
    L'erreur m'indique la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $header. = 'Content-type: text/html; charset=iso-8859-1'.$br;

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Execution/optimisation d'un script php ultra long
    Par Skar dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2009, 17h23
  2. Script d'inscription php
    Par demenvil dans le forum Langage
    Réponses: 5
    Dernier message: 29/05/2009, 12h34
  3. Réponses: 3
    Dernier message: 03/02/2006, 23h31
  4. Exécuter un script perl à partir de php
    Par ibtisss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 10/11/2005, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo