Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

plantage traitement formulaire


olly

Messages recommandés

Salut les zebulons,Avant toute chose quelqu'un pourrait il me dire comment inserer des codes php dans les messages pour que tout cela reste compréhensible?Merci

je me lance :

j'ai créer un formulaire d'inscription :

<?php

include('haut.php');

include('entete.php');

include('menus.php');
?>
  	<!-- Le corps -->

  	<div id="corps">
  		<h1>Formulaire d'inscription</h1>
		<p>Bienvenue sur la page d'inscription de mon site !<br/>
		Merci de remplir ces champs pour continuer.</p>
		<form action="cibleinscl.php" method="post" name="Inscription">
			<fieldset><legend>Identifiants</legend>
				<label for="pseudo" class="float">Pseudo :</label> <input type="text" name="pseudo" id="pseudo" size="30" value="<?php if($_SESSION['pseudo_info'] == '') echo htmlspecialchars($_SESSION['form_pseudo'], ENT_QUOTES) ; ?>" /> <em>(compris entre 3 et 32 caractères)</em><br />
				<label for="mdp" class="float">Mot de passe :</label> <input type="password" name="mdp" id="mdp" size="30" value="<?php if($_SESSION['mdp_info'] == '') echo htmlspecialchars($_SESSION['form_mdp'], ENT_QUOTES) ; ?>" /> <em>(compris entre 4 et 50 caractères)</em><br />
				<label for="verif" class="float">Mot de passe (vérification) :</label> <input type="password" name="mdp_verif" id="mdp_verif" size="30" value="<?php if($_SESSION['mdp_verif_info'] == '') echo htmlspecialchars($_SESSION['form_mdp_verif'], ENT_QUOTES) ; ?>" /><br />
				<label for="mail" class="float">Mail :</label> <input type="text" name="mail" id="mail" size="30" value="<?php if($_SESSION['mail_info'] == '') echo htmlspecialchars($_SESSION['form_mail'], ENT_QUOTES) ; ?>" /> <br />
				<label for="mail_verif" class="float">Mail (vérification) :</label> <input type="text" name="mail_verif" id="mail_verif" size="30" value="<?php if($_SESSION['mail_verif__info'] == '') echo htmlspecialchars($_SESSION['form_mail_verif'], ENT_QUOTES) ; ?>" /><br />
				<label for="date_naissance" class="float">Date de naissance :</label> <input type="text" name="date_naissance" id="date_naissance" size="30" value="<?php if($_SESSION['date_naissance_info'] == '') echo htmlspecialchars($_SESSION['form_date_naissance'], ENT_QUOTES) ; ?>" /> <em>(format JJ/MM/AAAA)</em><br/>
			</fieldset>
			<fieldset><legend>Charte du site et protection anti-robot</legend>
				<?php
				include('charte.php');
				?>

				<h1>Système anti robots :</h1>

				<p>Qu'est-ce que c'est ?<br/>
				Pour lutter contre l'inscription non désirée de robots qui publient du contenu non désiré sur les sites web,
				nous avons décidé de mettre en place un systèle de sécurité.<br/>
				Aucun de ces systèmes n'est parfait, mais nous espérons que celui-ci, sans vous être inaccessible sera suffisant
				pour lutter contre ces robots.<br/>
				Il est possible que certaine fois, l'image soit trop dure à lire, le cas échéant, actualisez la page jusqu'à avoir une image lisible.<br/>
				Si vous êtes dans l'incapacité de lire plusieurs images d'affilée, <a href="../contact.php">contactez-nous</a>, nous nous occuperons de votre inscription.</p>
				<label for="captcha" class="float">Entrez les 8 caractères (majuscules ou chiffres) contenus dans l'image :</label> <input type="text" name="captcha" id="captcha"><br/>
				<img src="captcha.php" />
			</fieldset>
			<div class="center"><input type="submit" value="Inscription" /></div>
		</form>

  	</div>
<?php   	
include('pdp.php');
?>

 

Un traitement :

<?php
try
{
   $bdd = new PDO('mysql:host=localhost;dbname=sport', 'root', '');
   $bdd -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

   //Pour catcher d'éventuelle erreurs supp 
   $req = "INSERT INTO membres(pseudo, mdp, mdp_verif, mail, mail_verif)";
   $req .= " VALUES ";
   $req .= "(:pseudo, :mdp, :mdp_verif, :mail, :mail_verif)";
   $req = $bdd -> prepare($req);
$req->bindValue(':pseudo', $_POST['pseudo'], PDO::PARAM_STR);
   $req->bindValue(':mdp', $_POST['mdp'], PDO::PARAM_STR);
   $req->bindValue(':mdp_verif', $_POST['mdp_verif'], PDO::PARAM_STR);
   $req->bindValue(':mail', $_POST['mail'], PDO::PARAM_STR);
$req->bindValue(':mail_verif', $_POST['mail_verif'], PDO::PARAM_STR);

$req->execute();

}
catch (Exception $e)
{
       echo 'Erreur : ' . $e->getMessage();
}
           $_SESSION['erreurs'] = 0;

include('fonctions.php');

//Pseudo
if(isset($_POST['pseudo']))
{
$pseudo = trim($_POST['pseudo']);
$pseudo_result = checkpseudo($pseudo);
if($pseudo_result == 'tooshort')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop court, vous devez en choisir un plus long (minimum 3 caractères).</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;
}

else if($pseudo_result == 'toolong')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop long, vous devez en choisir un plus court (maximum 32 caractères).</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;
}

else if($pseudo_result == 'exists')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est déjà pris, choisissez-en un autre.</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;
}

else if($pseudo_result == 'ok')
{
	$_SESSION['pseudo_info'] = '';
	$_SESSION['form_pseudo'] = $pseudo;
}

else if($pseudo_result == 'empty')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Vous n\'avez pas entré de pseudo.</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;	
}
}

else
{
header('Location: ../index.php');
exit();
}

//Mot de passe
if(isset($_POST['mdp']))
{
$mdp = trim($_POST['mdp']);
$mdp_result = checkmdp($mdp, '');
if($mdp_result == 'tooshort')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop court, changez-en pour un plus long (minimum 4 caractères).</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'toolong')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop long, changez-en pour un plus court. (maximum 50 caractères)</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'nofigure')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Votre mot de passe doit contenir au moins un chiffre.</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'noupcap')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Votre mot de passe doit contenir au moins une majuscule.</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'ok')
{
	$_SESSION['mdp_info'] = '';
	$_SESSION['form_mdp'] = $mdp;
}

else if($mdp_result == 'empty')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Vous n\'avez pas entré de mot de passe.</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;

}
}

else
{
header('Location: ../index.php');
exit();
}

//Mot de passe suite
if(isset($_POST['mdp_verif']))
{
$mdp_verif = trim($_POST['mdp_verif']);
$mdp_verif_result = checkmdpS($mdp_verif, $mdp);
if($mdp_verif_result == 'different')
{
	$_SESSION['mdp_verif_info'] = '<span class="erreur">Le mot de passe de vérification diffère du mot de passe.</span><br/>';
	$_SESSION['form_mdp_verif'] = '';
	$_SESSION['erreurs']++;
	if(isset($_SESSION['form_mdp'])) unset($_SESSION['form_mdp']);
}

else
{
	if($mdp_verif_result == 'ok')
	{
		$_SESSION['form_mdp_verif'] = $mdp_verif;
		$_SESSION['mdp_verif_info'] = '';
	}

	else
	{
		$_SESSION['mdp_verif_info'] = str_replace('passe', 'passe de vérification', $_SESSION['mdp_info']);
		$_SESSION['form_mdp_verif'] = '';
		$_SESSION['erreurs']++;
	}
}
}

else
{
header('Location: ../index.php');
exit();
}

//mail
if(isset($_POST['mail']))
{
$mail = trim($_POST['mail']);
$mail_result = checkmail($mail);
if($mail_result == 'isnt')
{
	$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.</span><br/>';
	$_SESSION['form_mail'] = '';
	$_SESSION['erreurs']++;
}

else if($mail_result == 'exists')
{
	$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est déjà pris, <a href="../contact.php">contactez-nous</a> si vous pensez à une erreur.</span><br/>';
	$_SESSION['form_mail'] = '';
	$_SESSION['erreurs']++;
}

else if($mail_result == 'ok')
{
	$_SESSION['mail_info'] = '';
	$_SESSION['form_mail'] = $mail;
}

else if($mail_result == 'empty')
{
	$_SESSION['mail_info'] = '<span class="erreur">Vous n\'avez pas entré de mail.</span><br/>';
	$_SESSION['form_mail'] = '';
	$_SESSION['erreurs']++;	
}
}

else
{
header('Location: ../index.php');
exit();
}

//mail suite
if(isset($_POST['mail_verif']))
{
$mail_verif = trim($_POST['mail_verif']);
$mail_verif_result = checkmailS($mail_verif, $mail);
if($mail_verif_result == 'different')
{
	$_SESSION['mail_verif_info'] = '<span class="erreur">Le mail de vérification diffère du mail.</span><br/>';
	$_SESSION['form_mail_verif'] = '';
	$_SESSION['erreurs']++;
}

else
{
	if($mail_result == 'ok')
	{
		$_SESSION['mail_verif_info'] = '';
		$_SESSION['form_mail_verif'] = $mail_verif;
	}

	else
	{
		$_SESSION['mail_verif_info'] = str_replace(' mail', ' mail de vérification', $_SESSION['mail_info']);
		$_SESSION['form_mail_verif'] = '';
		$_SESSION['erreurs']++;
	}
}
}

else
{
header('Location: ../index.php');
exit();
}

//date de naissance
if(isset($_POST['date_naissance']))
{
$date_naissance = trim($_POST['date_naissance']);
$date_naissance_result = birthdate($date_naissance);
if($date_naissance_result == 'format')
{
	$_SESSION['date_naissance_info'] = '<span class="erreur">Date de naissance au mauvais format ou invalide.</span><br/>';
	$_SESSION['form_date_naissance'] = '';
	$_SESSION['erreurs']++;
}

else if($date_naissance_result == 'tooyoung')
{
	$_SESSION['date_naissance_info'] = '<span class="erreur">Agagagougougou areuh ? (Vous êtes trop jeune pour vous inscrire ici.)</span><br/>';
	$_SESSION['form_date_naissance'] = '';
	$_SESSION['erreurs']++;
}

else if($date_naissance_result == 'tooold')
{
	$_SESSION['date_naissance_info'] = '<span class="erreur">Plus de 135 ans ? Mouais...</span><br/>';
	$_SESSION['form_date_naissance'] = '';
	$_SESSION['erreurs']++;
}

else if($date_naissance_result == 'invalid')
{
	$_SESSION['date_naissance_info'] = '<span class="erreur">Le '.htmlspecialchars($date_naissance, ENT_QUOTES).' n\'existe pas.</span><br/>';
	$_SESSION['form_date_naissance'] = '';
	$_SESSION['erreurs']++;
}

else if($date_naissance_result == 'ok')
{
	$_SESSION['date_naissance_info'] = '';
	$_SESSION['form_date_naissance'] = $date_naissance;
}

else if($date_naissance_result == 'empty')
{
	$_SESSION['date_naissance_info'] = '<span class="erreur">Vous n\'avez pas entré de date de naissance.</span><br/>';
	$_SESSION['form_date_naissance'] = '';
	$_SESSION['erreurs']++;
}
}

else
{
header('Location: ../index.php');
exit();
}

//captcha
if($_POST['captcha'] == $_SESSION['captcha'] && isset($_POST['captcha']) && isset($_SESSION['captcha']))
{
$_SESSION['captcha_info'] = '';
}

else
{
$_SESSION['captcha_info'] = '<span class="erreur">Vous n\'avez pas recopié correctement le contenu de l\'image.</span><br/>';
$_SESSION['erreurs']++;
}

unset($_SESSION['reponse1'], $_SESSION['reponse2'], $_SESSION['reponse3']);
unset($_SESSION['captcha']);

/*************Fin étude******************/

if($_SESSION['erreurs'] > 0)
		{
			if($_SESSION['erreurs'] == 1) $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu 1 erreur.</span><br/>';
			else $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu '.$_SESSION['erreurs'].' erreurs.</span><br/>';
		?>
		<h1>Inscription non validée.</h1>
		<p>Vous avez rempli le formulaire d'inscription du site et nous vous en remercions, cependant, nous n'avons
		pas pu valider votre inscription, en voici les raisons :<br/>
		<?php
			echo $_SESSION['nb_erreurs'];
			echo $_SESSION['pseudo_info'];
			echo $_SESSION['mdp_info'];
			echo $_SESSION['mdp_verif_info'];
			echo $_SESSION['mail_info'];
			echo $_SESSION['mail_verif_info'];
			echo $_SESSION['date_naissance_info'];
			echo $_SESSION['captcha_info'];

			if($sqlbug !== true)
			{
		?>
		Nous vous proposons donc de revenir à la page précédente pour corriger les erreurs. (Attention, que vous
		l'ayez correctement remplie ou non, la partie sur la charte et l'image est à refaire intégralement.)</p>
		<div class="center"><a href="inscriptioncl.php">Retour</a></div>
		<?php
			}

			else
			{
		?>
		Une erreur est survenue dans la base de données, votre formulaire semble ne pas contenir d'erreurs, donc
		il est possible que le problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.</p>

		<div class="center"><a href="inscription.php">Retenter une inscription</a> - <a href="contact.php">Contactez-nous</a></div>
		<?php
			}
		}
		?>


	</div>
<?php   	
include('pdp.php');
?>

L'erreur suite à la validation :

Erreur : SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'oliv' for key 'membre_pseudo'
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\SiteduBE\fonctions.php on line 159

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\SiteduBE\fonctions.php on line 159

Warning: mysql_query() [function.mysql-query]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\SiteduBE\fonctions.php on line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\SiteduBE\fonctions.php on line 5
Erreur SQL : Access denied for user 'SYSTEM'@'localhost' (using password: NO) Ligne : 5.

 

Quelqu'un peux t il m'aider ? :D:-?

Lien vers le commentaire
Partager sur d’autres sites

membre_pseudo est défini comme une clé et est forcément unique, c'est un identifiant => oliv existe déjà dans ta base

 

mysql_real_escape_string ne marche pas en PDO car la fonction nécessite mysql_connect()

 

mysql_query c'est pour une connexion classique et pas en PDO

 

Pourquoi faire tes vérifs après l'insertion dans la BDD ?? ne vaudrait-il pas mieux faire l'inverse (ça me semble plus logique, on vérifie et si pas d'erreur on insère)

 

//pas fait de lecture poussée du code...

Lien vers le commentaire
Partager sur d’autres sites

déjà faut avoir une idée de la structure de ta table qui a membre_pseudo comme clé

Dans un client sql connecté à ta BDD

desc <nom_de_la_table>

 

et corriger la structure, normalement une clé ou un index sont représentés par des valeurs uniques (un entier non signé par exemple) avec un autoincrément pour la clé primaire

 

ensuite, les erreurs sont générées à partir de fonctions issues du fichier fonction.php (ligne 5 et ligne 159). Quelles sont ces fonctions? comment interagissent-elles avec ton sgbd?

 

en règle générale, on crée un fichier my_connect_inc.php qui contient les informations nécessaires à l'établissement d'un lien sur le SGBD (hote, nom de la base, utilisateur, mdp) que l'on inclue au besoin pour les fonctions nécessitant d'interagir avec le SGBD. Ce fichier gère ta façon de te connecter au SGBD: méthode classique ou PDO. En fonction du choix effectué, les fonctions devant interagir avec le SGBD doivent être réécrites.

 

PDO , lors des requêtes préparées, fait en sorte que l'échappement des chaines de caractères ne soit plus nécessaire car la chaine de caractères correspond à la valeur recherchée; on n'est plus sujet aux attaques par injection SQL. Il n'est pas nécessaire de passer par mysql_escape_string (ça n'empêche pas de faire qq tests en amont quand même comme pour gérer les quotes)

2 liens intéressants:

http://cogo.wordpres...01/php-and-pdo/

http://stackoverflow...sql-real-escape

Lien vers le commentaire
Partager sur d’autres sites

ben en fait je n'ai pas membre_pseudo dans ma table :

 

Elle est dans la base "sport".

 

La table membre est constituée comme cela :

-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- [url="http://www.phpmyadmin.net"]phpMyAdmin[/url]
--
-- Serveur: localhost
-- Généré le : Sam 10 Juillet 2010 à 13:20
-- Version du serveur: 5.1.36
-- Version de PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `sport`
--

-- --------------------------------------------------------

--
-- Structure de la table `membres`
--

CREATE TABLE IF NOT EXISTS `membres` (
 `membre_id` int(11) NOT NULL AUTO_INCREMENT,
 `pseudo` varchar(32) NOT NULL,
 `mdp` varchar(40) NOT NULL,
 `mdp_verif` varchar(255) NOT NULL,
 `mail` varchar(100) NOT NULL,
 `mail_verif` varchar(255) NOT NULL,
 PRIMARY KEY (`membre_id`),
 UNIQUE KEY `membre_pseudo` (`pseudo`),
 UNIQUE KEY `membre_mail` (`mail`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

--
-- Contenu de la table `membres`
--

INSERT INTO `membres` (`membre_id`, `pseudo`, `mdp`, `mdp_verif`, `mail`, `mail_verif`) VALUES
(1, 'oliv', 'oliv', '<br /> <b>Notice</b>:  Undefined variable: _SESSION in <b>C:\\wamp\\www\\SiteduBE\\inscriptioncl.php</b> on line <b>19</b><br /> <br /> <b>Notice</b>:  Undefined variable: _SESSION in <b>C:\\wamp\\www\\SiteduBE\\inscriptioncl.php</b> on line <b>19</b><br />', '<br /> <b>Notice</b>:  Undefined variable: _SESSION in <b>C:\\wamp\\www\\SiteduBE\\inscriptioncl.php</b>', '<br /> <b>Notice</b>:  Undefined variable: _SESSION in <b>C:\\wamp\\www\\SiteduBE\\inscriptioncl.php</b> on line <b>21</b><br /> <br /> <b>Notice</b>:  Undefined variable: _SESSION in <b>C:\\wamp\\www\\SiteduBE\\inscriptioncl.php</b> on line <b>21</b><br />'),
(6, 'oliv56640', 'malaure76', 'malaure76', '[email protected]', '[email protected]');

 

Le formulaire est :

 

inscriptioncl.php

?php

include('haut.php');

include('entete.php');

include('menus.php');
?>
  	<!-- Le corps -->

  	<div id="corps">
      	<h1>Formulaire d'inscription</h1>
		<p>Bienvenue sur la page d'inscription de mon site !<br/>
		Merci de remplir ces champs pour continuer.</p>
		<form action="cibleinscl.php" method="post" name="Inscription">
			<fieldset><legend>Identifiants</legend>
				<label for="pseudo" class="float">Pseudo :</label> <input type="text" name="pseudo" id="pseudo" size="30" value="<?php if($_SESSION['pseudo_info'] == '') echo htmlspecialchars($_SESSION['form_pseudo'], ENT_QUOTES) ; ?>" /> <em>(compris entre 3 et 32 caractères)</em><br />
				<label for="mdp" class="float">Mot de passe :</label> <input type="password" name="mdp" id="mdp" size="30" value="<?php if($_SESSION['mdp_info'] == '') echo htmlspecialchars($_SESSION['form_mdp'], ENT_QUOTES) ; ?>" /> <em>(compris entre 4 et 50 caractères)</em><br />
				<label for="verif" class="float">Mot de passe (vérification) :</label> <input type="password" name="mdp_verif" id="mdp_verif" size="30" value="<?php if($_SESSION['mdp_verif_info'] == '') echo htmlspecialchars($_SESSION['form_mdp_verif'], ENT_QUOTES) ; ?>" /><br />
				<label for="mail" class="float">Mail :</label> <input type="text" name="mail" id="mail" size="30" value="<?php if($_SESSION['mail_info'] == '') echo htmlspecialchars($_SESSION['form_mail'], ENT_QUOTES) ; ?>" /> <br />
				<label for="mail_verif" class="float">Mail (vérification) :</label> <input type="text" name="mail_verif" id="mail_verif" size="30" value="<?php if($_SESSION['mail_verif__info'] == '') echo htmlspecialchars($_SESSION['form_mail_verif'], ENT_QUOTES) ; ?>" /><br />

			</fieldset>
			<fieldset><legend>Charte du site et protection anti-robot</legend>
				<?php
				include('charte.php');
				?>

				<h1>Système anti robots :</h1>

				<p>Qu'est-ce que c'est ?<br/>
				Pour lutter contre l'inscription non désirée de robots qui publient du contenu non désiré sur les sites web,
				nous avons décidé de mettre en place un systèle de sécurité.<br/>
				Aucun de ces systèmes n'est parfait, mais nous espérons que celui-ci, sans vous être inaccessible sera suffisant
				pour lutter contre ces robots.<br/>
				Il est possible que certaine fois, l'image soit trop dure à lire, le cas échéant, actualisez la page jusqu'à avoir une image lisible.<br/>
				Si vous êtes dans l'incapacité de lire plusieurs images d'affilée, <a href="../contact.php">contactez-nous</a>, nous nous occuperons de votre inscription.</p>
				<label for="captcha" class="float">Entrez les 8 caractères (majuscules ou chiffres) contenus dans l'image :</label> <input type="text" name="captcha" id="captcha"><br/>
				<img src="captcha.php" />
			</fieldset>
			<div class="center"><input type="submit" value="Inscription" /></div>
		</form>

  	</div>
<?php       
include('pdp.php');
?> 

 

et le traitement est :

 

cibleinscl.php

<?php
try
{
   $bdd = new PDO('mysql:host=localhost;dbname=sport', 'root', '');
   $bdd -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

   //Pour catcher d'éventuelle erreurs supp 
   $req = "INSERT INTO membres(pseudo, mdp, mdp_verif, mail, mail_verif)";
   $req .= " VALUES ";
   $req .= "(:pseudo, :mdp, :mdp_verif, :mail, :mail_verif)";
   $req = $bdd -> prepare($req);
$req->bindValue(':pseudo', $_POST['pseudo'], PDO::PARAM_STR);
   $req->bindValue(':mdp', $_POST['mdp'], PDO::PARAM_STR);
   $req->bindValue(':mdp_verif', $_POST['mdp_verif'], PDO::PARAM_STR);
   $req->bindValue(':mail', $_POST['mail'], PDO::PARAM_STR);
$req->bindValue(':mail_verif', $_POST['mail_verif'], PDO::PARAM_STR);

$req->execute();

}
catch (Exception $e)
{
       echo 'Erreur : ' . $e->getMessage();
}
           $_SESSION['erreurs'] = 0;

include('fonctions.php');

//Pseudo
if(isset($_POST['pseudo']))
{
$pseudo = trim($_POST['pseudo']);
$pseudo_result = checkpseudo($pseudo);
if($pseudo_result == 'tooshort')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop court, vous devez en choisir un plus long (minimum 3 caractères).</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;
}

else if($pseudo_result == 'toolong')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop long, vous devez en choisir un plus court (maximum 32 caractères).</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;
}

else if($pseudo_result == 'exists')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est déjà pris, choisissez-en un autre.</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;
}

else if($pseudo_result == 'ok')
{
	$_SESSION['pseudo_info'] = '';
	$_SESSION['form_pseudo'] = $pseudo;
}

else if($pseudo_result == 'empty')
{
	$_SESSION['pseudo_info'] = '<span class="erreur">Vous n\'avez pas entré de pseudo.</span><br/>';
	$_SESSION['form_pseudo'] = '';
	$_SESSION['erreurs']++;	
}
}

else
{
header('Location: ../index.php');
exit();
}

//Mot de passe
if(isset($_POST['mdp']))
{
$mdp = trim($_POST['mdp']);
$mdp_result = checkmdp($mdp, '');
if($mdp_result == 'tooshort')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop court, changez-en pour un plus long (minimum 4 caractères).</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'toolong')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop long, changez-en pour un plus court. (maximum 50 caractères)</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'nofigure')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Votre mot de passe doit contenir au moins un chiffre.</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'noupcap')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Votre mot de passe doit contenir au moins une majuscule.</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;
}

else if($mdp_result == 'ok')
{
	$_SESSION['mdp_info'] = '';
	$_SESSION['form_mdp'] = $mdp;
}

else if($mdp_result == 'empty')
{
	$_SESSION['mdp_info'] = '<span class="erreur">Vous n\'avez pas entré de mot de passe.</span><br/>';
	$_SESSION['form_mdp'] = '';
	$_SESSION['erreurs']++;

}
}

else
{
header('Location: ../index.php');
exit();
}

//Mot de passe suite
if(isset($_POST['mdp_verif']))
{
$mdp_verif = trim($_POST['mdp_verif']);
$mdp_verif_result = checkmdpS($mdp_verif, $mdp);
if($mdp_verif_result == 'different')
{
	$_SESSION['mdp_verif_info'] = '<span class="erreur">Le mot de passe de vérification diffère du mot de passe.</span><br/>';
	$_SESSION['form_mdp_verif'] = '';
	$_SESSION['erreurs']++;
	if(isset($_SESSION['form_mdp'])) unset($_SESSION['form_mdp']);
}

else
{
	if($mdp_verif_result == 'ok')
	{
		$_SESSION['form_mdp_verif'] = $mdp_verif;
		$_SESSION['mdp_verif_info'] = '';
	}

	else
	{
		$_SESSION['mdp_verif_info'] = str_replace('passe', 'passe de vérification', $_SESSION['mdp_info']);
		$_SESSION['form_mdp_verif'] = '';
		$_SESSION['erreurs']++;
	}
}
}

else
{
header('Location: ../index.php');
exit();
}

//mail
if(isset($_POST['mail']))
{
$mail = trim($_POST['mail']);
$mail_result = checkmail($mail);
if($mail_result == 'isnt')
{
	$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.</span><br/>';
	$_SESSION['form_mail'] = '';
	$_SESSION['erreurs']++;
}

else if($mail_result == 'exists')
{
	$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est déjà pris, <a href="contact.php">contactez-nous</a> si vous pensez à une erreur.</span><br/>';
	$_SESSION['form_mail'] = '';
	$_SESSION['erreurs']++;
}

else if($mail_result == 'ok')
{
	$_SESSION['mail_info'] = '';
	$_SESSION['form_mail'] = $mail;
}

else if($mail_result == 'empty')
{
	$_SESSION['mail_info'] = '<span class="erreur">Vous n\'avez pas entré de mail.</span><br/>';
	$_SESSION['form_mail'] = '';
	$_SESSION['erreurs']++;	
}
}

else
{
header('Location: ../index.php');
exit();
}

//mail suite
if(isset($_POST['mail_verif']))
{
$mail_verif = trim($_POST['mail_verif']);
$mail_verif_result = checkmailS($mail_verif, $mail);
if($mail_verif_result == 'different')
{
	$_SESSION['mail_verif_info'] = '<span class="erreur">Le mail de vérification diffère du mail.</span><br/>';
	$_SESSION['form_mail_verif'] = '';
	$_SESSION['erreurs']++;
}

else
{
	if($mail_result == 'ok')
	{
		$_SESSION['mail_verif_info'] = '';
		$_SESSION['form_mail_verif'] = $mail_verif;
	}

	else
	{
		$_SESSION['mail_verif_info'] = str_replace(' mail', ' mail de vérification', $_SESSION['mail_info']);
		$_SESSION['form_mail_verif'] = '';
		$_SESSION['erreurs']++;
	}
}
}

else
{
header('Location: ../index.php');
exit();
}



//captcha
if($_POST['captcha'] == $_SESSION['captcha'] && isset($_POST['captcha']) && isset($_SESSION['captcha']))
{
$_SESSION['captcha_info'] = '';
}

else
{
$_SESSION['captcha_info'] = '<span class="erreur">Vous n\'avez pas recopié correctement le contenu de l\'image.</span><br/>';
$_SESSION['erreurs']++;
}

unset($_SESSION['reponse1'], $_SESSION['reponse2'], $_SESSION['reponse3']);
unset($_SESSION['captcha']);

/*************Fin étude******************/

if($_SESSION['erreurs'] > 0)
		{
			if($_SESSION['erreurs'] == 1) $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu 1 erreur.</span><br/>';
			else $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu '.$_SESSION['erreurs'].' erreurs.</span><br/>';
		?>
		<h1>Inscription non validée.</h1>
		<p>Vous avez rempli le formulaire d'inscription du site et nous vous en remercions, cependant, nous n'avons
		pas pu valider votre inscription, en voici les raisons :<br/>
		<?php
			echo $_SESSION['nb_erreurs'];
			echo $_SESSION['pseudo_info'];
			echo $_SESSION['mdp_info'];
			echo $_SESSION['mdp_verif_info'];
			echo $_SESSION['mail_info'];
			echo $_SESSION['mail_verif_info'];
			echo $_SESSION['date_naissance_info'];
			echo $_SESSION['captcha_info'];

			if($sqlbug !== true)
			{
		?>
		Nous vous proposons donc de revenir à la page précédente pour corriger les erreurs. (Attention, que vous
		l'ayez correctement remplie ou non, la partie sur la charte et l'image est à refaire intégralement.)</p>
		<div class="center"><a href="inscriptioncl.php">Retour</a></div>
		<?php
			}

			else
			{
		?>
		Une erreur est survenue dans la base de données, votre formulaire semble ne pas contenir d'erreurs, donc
		il est possible que le problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.</p>

		<div class="center"><a href="inscription.php">Retenter une inscription</a> - <a href="contact.php">Contactez-nous</a></div>
		<?php
			}
		}
		?>


	</div>
<?php       
include('pdp.php');
?>

 

La base enregistre les pseudo, mots de passe et email

 

Quand je fait un nouveau test j'ai l'erreur suivants :

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\SiteduBE\fonctions.php  on line 159

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\wamp\www\SiteduBE\fonctions.php on line 159

Warning: mysql_query() [function.mysql-query]: Access denied for user 'SYSTEM'@'localhost' (using password: NO) in C:\wamp\www\SiteduBE\fonctions.php on line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\SiteduBE\fonctions.php on line 5
Erreur SQL : Access denied for user 'SYSTEM'@'localhost' (using password: NO) Ligne : 5.

 

Mais j'ai du mal à tout resoudre Merci de ton aide

Lien vers le commentaire
Partager sur d’autres sites

les fonctions sont regroupées dans fonctions.php :

<?php

function sqlquery($requete, $number)
{
$query = mysql_query($requete) or exit('Erreur SQL : '.mysql_error().' Ligne : '. __LINE__ .'.'); //requête
queries();


if($number == 1)
{
	$query1 = mysql_fetch_assoc($query);
	mysql_free_result($query);
	/*mysql_free_result($query) libère le contenu de $query, je
	le fais par principe, mais c'est pas indispensable.*/
	return $query1;
}

else if($number == 2)
{
	while($query1 = mysql_fetch_assoc($query))
	{
		$query2[] = $query1;
		/*On met $query1 qui est un array dans $query2 qui
		est un array. Ca fait un array d'arrays */
	}
	mysql_free_result($query);
	return $query2;
}

else //Erreur
{
	exit('Argument de sqlquery non renseigné ou incorrect.');
}
}

function queries($num = 1)
{
global $queries;
$queries = $queries + intval($num);
}

function actualiser_session()
{
if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id']) != 0) //Vérification id
{
	//utilisation de la fonction sqlquery, on sait qu'on aura qu'un résultat car l'id d'un membre est unique.
	$retour = sqlquery("SELECT membre_id, pseudo, mdp FROM membres WHERE membre_id = ".intval($_SESSION['membre_id']), 1);

	//Si la requête a un résultat (id est : si l'id existe dans la table membres)
	if(isset($retour['pseudo']) && $retour['pseudo'] != '')
	{
		if($_SESSION['mdp'] != $retour['mdp'])
		{
			//Dehors vilain pas beau !
			$informations = Array(/*Mot de passe de session incorrect*/
								true,
								'Session invalide',
								'Le mot de passe de votre session est incorrect, vous devez vous reconnecter.',
								'',
								'membres/connexion.php',
								3
								);
			require_once('information.php');
			vider_cookie();
			session_destroy();
			exit();
		}

		else
		{
			//Validation de la session.
				$_SESSION['membre_id'] = $retour['membre_id'];
				$_SESSION['pseudo'] = $retour['pseudo'];
				$_SESSION['mdp'] = $retour['mdp'];
		}
	}
}

else //On vérifie les cookies et sinon pas de session
{
	if(isset($_COOKIE['membre_id']) && isset($_COOKIE['mdp'])) //S'il en manque un, pas de session.
	{
		if(intval($_COOKIE['membre_id']) != 0)
		{
			//idem qu'avec les $_SESSION
			$retour = sqlquery("SELECT membre_id, pseudo, mdp FROM membres WHERE membre_id = ".intval($_COOKIE['membre_id']), 1);

			if(isset($retour['pseudo']) && $retour['pseudo'] != '')
			{
				if($_COOKIE['mdp'] != $retour['mdp'])
				{
					//Dehors vilain tout moche !
					$informations = Array(/*Mot de passe de cookie incorrect*/
										true,
										'Mot de passe cookie erroné',
										'Le mot de passe conservé sur votre cookie est incorrect vous devez vous reconnecter.',
										'',
										'membres/connexion.php',
										3
										);
					require_once('information.php');
					vider_cookie();
					session_destroy();
					exit();
				}

				else
				{
					//Bienvenue 
					$_SESSION['membre_id'] = $retour['membre_id'];
					$_SESSION['pseudo'] = $retour['pseudo'];
					$_SESSION['mdp'] = $retour['mdp'];
				}
			}
		}

		else //cookie invalide, erreur plus suppression des cookies.
		{
			$informations = Array(/*L'id de cookie est incorrect*/
								true,
								'Cookie invalide',
								'Le cookie conservant votre id est corrompu, il va donc être détruit vous devez vous reconnecter.',
								'',
								'membres/connexion.php',
								3
								);
			require_once('information.php');
			vider_cookie();
			session_destroy();
			exit();
		}
	}

	else
	{
		//Fonction de suppression de toutes les variables de cookie.
		if(isset($_SESSION['membre_id'])) unset($_SESSION['membre_id']);
		vider_cookie();
	}
}
}

function vider_cookie()
{
foreach($_COOKIE as $cle => $element)
{
	setcookie($cle, '', time()-3600);
}
}

function checkpseudo($pseudo)
{
if($pseudo == '') return 'empty';
else if(strlen($pseudo) < 3) return 'tooshort';
else if(strlen($pseudo) > 32) return 'toolong';

else
{
	$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE pseudo = '".mysql_real_escape_string($pseudo)."'", 1);
	global $queries;
	$queries++;

	if($result['nbr'] > 0) return 'exists';
	else return 'ok';
}
}

function checkmdp($mdp)
{
if($mdp == '') return 'empty';
else if(strlen($mdp) < 4) return 'tooshort';
else if(strlen($mdp) > 50) return 'toolong';

else
{
	if(!preg_match('#[0-9]{1,}#', $mdp)) return 'nofigure';
	else if(!preg_match('#[A-Z]{1,}#', $mdp)) return 'noupcap';
	else return 'ok';
}
}

function checkmdpS($mdp, $mdp2)
{
if($mdp != $mdp2 && $mdp != '' && $mdp2 != '') return 'different';
else return checkmdp($mdp);
}

function checkmail($email)
{
if($email == '') return 'empty';
else if(!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', $email)) return 'isnt';

else
{
	$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE mail = '".mysql_real_escape_string($email)."'", 1);
	global $queries;
	$queries++;

	if($result['nbr'] > 0) return 'exists';
	else return 'ok';
}
}

function checkmailS($email, $email2)
{
if($email != $email2 && $email != '' && $email2 != '') return 'different';
else return 'ok';
}

function birthdate($date)
{
if($date == '') return 'empty';

else if(substr_count($date, '/') != 2) return 'format';
else
{
	$DATE = explode('/', $date);
	if(date('Y') - $DATE[2] <= 4) return 'tooyoung';
	else if(date('Y') - $DATE[2] >= 135) return 'tooold';

	else if($DATE[2]%4 == 0)
	{
		$maxdays = Array('31', '29', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31');
		if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';
		else return 'ok';
	}

	else
	{
		$maxdays = Array('31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31');
		if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';
		else return 'ok';
	}
}
}

function vidersession()
{
foreach($_SESSION as $cle => $element)
{
	unset($_SESSION[$cle]);
}
}

?>

Lien vers le commentaire
Partager sur d’autres sites

ta session ne semble pas être initialisée, du coup pas de $_SESSION => un petit session_start() ?

 

il manque le fichier fonctions.php pour pouvoir t'aider.

 

NB:je ne peux réécrire le code à ta place, simplement t'aiguiller sur les causes potentielles et les erreurs à ne pas faire (comme déclencher l'insertion dans la BDD qu'une fois les vérif faites...)

Lien vers le commentaire
Partager sur d’autres sites

le fichier fonctions etait dans le post suivant : je te le redonne :

fonctions.php :

 

<code type="php">

<?php

 

function sqlquery($requete, $number)

{

$query = mysql_query($requete) or exit('Erreur SQL : '.mysql_error().' Ligne : '. __LINE__ .'.'); //requête

queries();

 

 

if($number == 1)

{

$query1 = mysql_fetch_assoc($query);

mysql_free_result($query);

/*mysql_free_result($query) libère le contenu de $query, je

le fais par principe, mais c'est pas indispensable.*/

return $query1;

}

 

else if($number == 2)

{

while($query1 = mysql_fetch_assoc($query))

{

$query2[] = $query1;

/*On met $query1 qui est un array dans $query2 qui

est un array. Ca fait un array d'arrays :o*/

}

mysql_free_result($query);

return $query2;

}

 

else //Erreur

{

exit('Argument de sqlquery non renseigné ou incorrect.');

}

}

 

function queries($num = 1)

{

global $queries;

$queries = $queries + intval($num);

}

 

function actualiser_session()

{

if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id']) != 0) //Vérification id

{

//utilisation de la fonction sqlquery, on sait qu'on aura qu'un résultat car l'id d'un membre est unique.

$retour = sqlquery("SELECT membre_id, pseudo, mdp FROM membres WHERE membre_id = ".intval($_SESSION['membre_id']), 1);

 

//Si la requête a un résultat (id est : si l'id existe dans la table membres)

if(isset($retour['pseudo']) && $retour['pseudo'] != '')

{

if($_SESSION['mdp'] != $retour['mdp'])

{

//Dehors vilain pas beau !

$informations = Array(/*Mot de passe de session incorrect*/

true,

'Session invalide',

'Le mot de passe de votre session est incorrect, vous devez vous reconnecter.',

'',

'membres/connexion.php',

3

);

require_once('information.php');

vider_cookie();

session_destroy();

exit();

}

 

else

{

//Validation de la session.

$_SESSION['membre_id'] = $retour['membre_id'];

$_SESSION['pseudo'] = $retour['pseudo'];

$_SESSION['mdp'] = $retour['mdp'];

}

}

}

 

else //On vérifie les cookies et sinon pas de session

{

if(isset($_COOKIE['membre_id']) && isset($_COOKIE['mdp'])) //S'il en manque un, pas de session.

{

if(intval($_COOKIE['membre_id']) != 0)

{

//idem qu'avec les $_SESSION

$retour = sqlquery("SELECT membre_id, pseudo, mdp FROM membres WHERE membre_id = ".intval($_COOKIE['membre_id']), 1);

 

if(isset($retour['pseudo']) && $retour['pseudo'] != '')

{

if($_COOKIE['mdp'] != $retour['mdp'])

{

//Dehors vilain tout moche !

$informations = Array(/*Mot de passe de cookie incorrect*/

true,

'Mot de passe cookie erroné',

'Le mot de passe conservé sur votre cookie est incorrect vous devez vous reconnecter.',

'',

'membres/connexion.php',

3

);

require_once('information.php');

vider_cookie();

session_destroy();

exit();

}

 

else

{

//Bienvenue :D

$_SESSION['membre_id'] = $retour['membre_id'];

$_SESSION['pseudo'] = $retour['pseudo'];

$_SESSION['mdp'] = $retour['mdp'];

}

}

}

 

else //cookie invalide, erreur plus suppression des cookies.

{

$informations = Array(/*L'id de cookie est incorrect*/

true,

'Cookie invalide',

'Le cookie conservant votre id est corrompu, il va donc être détruit vous devez vous reconnecter.',

'',

'membres/connexion.php',

3

);

require_once('information.php');

vider_cookie();

session_destroy();

exit();

}

}

 

else

{

//Fonction de suppression de toutes les variables de cookie.

if(isset($_SESSION['membre_id'])) unset($_SESSION['membre_id']);

vider_cookie();

}

}

}

 

function vider_cookie()

{

foreach($_COOKIE as $cle => $element)

{

setcookie($cle, '', time()-3600);

}

}

 

function checkpseudo($pseudo)

{

if($pseudo == '') return 'empty';

else if(strlen($pseudo) < 3) return 'tooshort';

else if(strlen($pseudo) > 32) return 'toolong';

 

else

{

$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE pseudo = '".mysql_real_escape_string($pseudo)."'", 1);

global $queries;

$queries++;

 

if($result['nbr'] > 0) return 'exists';

else return 'ok';

}

}

 

function checkmdp($mdp)

{

if($mdp == '') return 'empty';

else if(strlen($mdp) < 4) return 'tooshort';

else if(strlen($mdp) > 50) return 'toolong';

 

else

{

if(!preg_match('#[0-9]{1,}#', $mdp)) return 'nofigure';

else if(!preg_match('#[A-Z]{1,}#', $mdp)) return 'noupcap';

else return 'ok';

}

}

 

function checkmdpS($mdp, $mdp2)

{

if($mdp != $mdp2 && $mdp != '' && $mdp2 != '') return 'different';

else return checkmdp($mdp);

}

 

function checkmail($email)

{

if($email == '') return 'empty';

else if(!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', $email)) return 'isnt';

 

else

{

$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE mail = '".mysql_real_escape_string($email)."'", 1);

global $queries;

$queries++;

 

if($result['nbr'] > 0) return 'exists';

else return 'ok';

}

}

 

function checkmailS($email, $email2)

{

if($email != $email2 && $email != '' && $email2 != '') return 'different';

else return 'ok';

}

 

function birthdate($date)

{

if($date == '') return 'empty';

 

else if(substr_count($date, '/') != 2) return 'format';

else

{

$DATE = explode('/', $date);

if(date('Y') - $DATE[2] <= 4) return 'tooyoung';

else if(date('Y') - $DATE[2] >= 135) return 'tooold';

 

else if($DATE[2]%4 == 0)

{

$maxdays = Array('31', '29', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31');

if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';

else return 'ok';

}

 

else

{

$maxdays = Array('31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31');

if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';

else return 'ok';

}

}

}

 

function vidersession()

{

foreach($_SESSION as $cle => $element)

{

unset($_SESSION[$cle]);

}

}

 

?>

</code>

 

Je pense ne plus être trés loin de la réalisation de l'espace mais j'ai besoin de conseils avertis, d'un vrai pro quoi.

 

Merci de ta compréhension

Lien vers le commentaire
Partager sur d’autres sites

ta fonction checkpseudo() fait appel à mysql_real_escape_string() et appelle la fonction sqlquery().

 

mysql_real_escape_string() n'est plus nécessaire en programmation PDO et nécessite par ailleurs une connexion "classique" au SGBD

sqlquery() ne fonctionne pas car aucun socket actif n'est établi avec la BDD, il faut que tu la réécrives en PDO.

 

En PDO, tu ne peux plus passer une chaine de caractères correspondant à une commande MySQL à mysql_query

tu prépares l'objet PDO et les requêtes que le SGBD s'attend à recevoir

ensuite, tu envoies aux différentes requêtes préparées les valeurs attendues pour les clauses WHERE de tes requêtes

 

PHP: Introduction - Manual

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...