Bonjour,
voila je n'arrive pas a faire fonctionner mon code pour s'inscrire.
Voici, le code de la page où se trouve le formulaire:
<?php include('../connecteurmysql.php'); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="../Style/structure_style.css" />
<link rel="stylesheet" href="../Style/structure_millieu.css" />
<link rel="stylesheet" href="inscription.css" />
<title>Hunter-Craft - Inscription</title>
</head>
<body>
<div id="structure">
<!-- menu -->
<?php include('../header/header.php'); ?>
<!-- millieu -->
<div class="millieu_princip">
<?php include('../DIV_DROITE/div_droite.php'); ?>
<div class="millieu_princip_1">
<?php
if (isset($_SESSION'id']) AND isset($_SESSION'pseudo']))
{
header("Location:../");
}
else
{ ?>
<div style=" margin-right: 10px; margin-left: 5px; border-bottom: 1px dotted grey; border-radius: 10px 0px 0 0; padding-top: 1px; padding-bottom: 1px; font-family: 'Lucida Handwriting', Arial, serif; text-align:left; padding-left: 15px; font-size: 1.2em; color: grey;">Inscription</div>
<form action="Validation.php" method="post">
<p><label for="Pseudo">Pseudo</label><br/> <input placeholder="Pseudo" id="Pseudo" class="input_perso"/></p>
<p><label for="Mail">Adresse Mail</label><br/> <input placeholder="Exmple: Minecraft@craft.fr" id="Mail" class="input_perso"/></p>
<p><label for="mdp">Mot de passe</label><br/> <input type="password" placeholder="Mot de passe" id="MDP" class="input_perso"/></p>
<p><label for="mdp2">Mot de passe ( recopier le même )</label><br/> <input type="password" placeholder="Mot de passe" id="MDP2" class="input_perso"/></p>
<p> Votre versions Minecraft:<br />
<input type="radio" name="version" value="officiel" id="version" /> <label for="officiel">Officiel</label><br />
<input type="radio" name="version" value="Crack" id="version" /> <label for="crack">Crack</label>
</p>
<div class="reglement">
<div align="center"><span style="font-size: 1.2em; color: red;">Conditions d'utilisation du site.</span><br/><br/>
Vous devez accepter les conditions d'utilisation du site ci-dessous.<br/><br/>
<span style="font-weight:bold;">Membre</span><br/><br/>
Toute publication à caractère pornographique, nazi ou autres est interdite. Vous êtes seul responsable de votre compte sur le site. Le partage de compte est totalement interdit. Toute insulte est interdite, si vous insulter un membre ou un administrateur, celui-ci est autorisé à porter plainte contre vous.<br/>
Pour non-respect des règles les administrateurs ont le droit de vous supprimer du site et même porter plainte pour des choses graves.<br/><br/>
<span style="font-weight:bold;">Administrateur</span><br/><br/>
Les administrateurs sont autorisés à modifier, supprimer, regarder vos messages. Les administrateurs ont tous les droits sauf vous insulter gravement.<br/><br/>
<span style="font-weight:bold;">Publiciter</span><br/><br/>
Toute publiciter publier sans autorisation d'un admin est <span style="color:red;" >interdit</span>.
</div>
</div><span>*Si vous cliquez sur "inscription" le règlement est considéré comme lu est approuvé.</span><br/>
<input type="submit" value="Inscription" class="input_perso" />
</form>
<?php
}
?>
</div><?php include('../footer/footer.php');?>
</div>
<!-- footer -->
</div>
<script>
function visibilite(thingId)
{
var targetElement;
targetElement = document.getElementById(thingId) ;
if (targetElement.style.display == "none")
{
targetElement.style.display = "" ;
} else {
targetElement.style.display = "none" ;
}
}
</script>
<script type="text/javascript" src="../DIV_DROITE/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../DIV_DROITE/actu.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js"></script>
</body>
</html>
Et la c'est la page qui gère l'enregistrement pour finir l'inscription:
<?php session_start(); ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Validation d'inscription - HunterCraft</title>
</head>
<body>
<?php
try
{
// On se connecte à MySQL
$pdo_options2[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=hunter_craft4', 'hunter_craft4', 'Dictionnaire', $pdo_options2);
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
echo 'Nous avons un petit probléme sur le site veuiller réessayer plus tard<br/>';
die('Erreur : '.$e->getMessage());
}
// Permet de faire le message d'erreur.
/* Verifie si le formulaire est rempli */
if((!empty($_POST'Pseudo'])) AND (!empty($_POST'Mail'])) AND (!empty($_POST'mdp'])) AND (!empty($_POST'mdp2'])) AND (!empty($_POST'version'])) AND (($_POST'mdp']) == ($_POST'mdp2']))) {
/*Verifie si le pseudo est deja inscrit */
$reponse = $bdd->prepare('SELECT membre_pseudo FROM membres WHERE Pseudo = :Pseudo');
$reponse->execute(array('Pseudo' => $_POST'Pseudo']));
$count = $query->rowCount();
if($count == 1)
{
// Pseudo déjà utilisé
echo 'Ce pseudo est déjà utilisé';
}
else
{
// Sinon on procede a l'inscription
$pass_hache = sha1($_POST'mdp']); // Hache le mdp
// Ajoute l'inscrit
$ajou = $bdd->prepare('INSERT INTO membres(membre_pseudo, membre_mdp, membre_mail, membre_version, membre_inscription_day) VALUES(:membre_pseudo, :membre_mdp, :membre_mail, :membre_version, CURDATE())');
$ajou->execute(array(
'membre_pseudo' => $_POST'Pseudo'],
'membre_mdp' => $pass_hache,
'membre_mail' => $_POST'Mail'],
'membre_version' => $_POST'version']));
echo 'Inscription fini';
}
}
else
{
// Si il y a un probleme
echo 'REMPLIT !!!'; // Affiche se message si rien n'est complet
}
?>
</body>
</html>
Je ne comprend pas je complète tout les champs et il me revois "REMPLIT !!!!" mais c'est pas normal si je complete tout sa devrais m'inscrire et non m'afficher se message.
Merci de votre aide.
Cordialement,
Maniac058
remplace $query par $reponse !!!
Je pense qu'il faut que tu arrives a comprendre des erreurs et surtout quand tu adaptes un code, ne le fait pas à moitié
bonsoir tu as plusieurs else qui se suivent en ligne 39 56 et 60.
donc si ton if est false tout tes else s'exécute, d’ailleurs étonnant que php aie pas râlé
remplace tes else par des else if, explication:
si (condition=1)
{fait action1)
sinon si (condition=2)
{fait action2}
sinon si (condition=3)
{fait action3}
sinon aucune condition respecté
{fait action4}
ça te donnerai
if (condition==1)
{action=1;}
elseif (condition==2)
{action=2;}
elseif (condition==3)
{action=3;}
else {action=4;}
je confirme et je m'excuse, mais je souhaiterai de donner un avis perso,
aligne ton texte de maniéres à pouvoir repéré tes groupes de if et else plus rapidement, je me suis fié à ton alignement et ça m'as planté.
<?php session_start(); ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Validation d'inscription - HunterCraft</title>
</head>
<body>
<?php
try
{
// On se connecte à MySQL
$pdo_options2[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=hunter_craft4', 'hunter_craft4', 'Dictionnaire', $pdo_options2);
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
echo 'Nous avons un petit probléme sur le site veuiller réessayer plus tard<br/>';
die('Erreur : '.$e->getMessage());
}
// Permet de faire le message d'erreur.
/* Verifie si le formulaire est rempli */
if((!empty($_POST'Pseudo'])) AND (!empty($_POST'Mail'])) AND (!empty($_POST'mdp'])) AND (!empty($_POST'mdp2'])) AND (!empty($_POST'version'])) AND (($_POST'mdp']) == ($_POST'mdp2'])))
{
/*Verifie si le pseudo est deja inscrit */
$reponse = $bdd->prepare('SELECT membre_pseudo FROM membres WHERE Pseudo = :Pseudo');
$reponse->execute(array('Pseudo' => $_POST'Pseudo']));
$count = $query->rowCount();
if($count == 1)
{
// Pseudo déjà utilisé
echo 'Ce pseudo est déjà utilisé';
}
else
{
// Sinon on procede a l'inscription
$pass_hache = sha1($_POST'mdp']); // Hache le mdp
// Ajoute l'inscrit
$ajou = $bdd->prepare('INSERT INTO membres(membre_pseudo, membre_mdp, membre_mail, membre_version, membre_inscription_day) VALUES(:membre_pseudo, :membre_mdp, :membre_mail, :membre_version, CURDATE())');
$ajou->execute(array(
'membre_pseudo' => $_POST'Pseudo'],
'membre_mdp' => $pass_hache,
'membre_mail' => $_POST'Mail'],
'membre_version' => $_POST'version']));
echo 'Inscription fini';
}
}
else
{
// Si il y a un probleme
echo 'REMPLIT !!!'; // Affiche se message si rien n'est complet
}
?>
</body>
</html>
je ne vois pas "extract($_POST);" mais ça me géne pas plus que ça quoi que, affiche tes variables de post pour voir si elle arrive bien déjà.
je ne connais pas le pdo mais en mysql, la ligne 30 passeré pas: "WHERE Pseudo = :Pseudo'); " à cause des ":" devant pseudo dans ta validation
bonsoir
tu oublies deux éléments essentiels dans tes inputs name et type.
Le name est l'information que tu récupères via $_POST'nameDuChamps']
donc pour réctifier ton code et le faire fonctionner, il faut remplacer
<input placeholder="Pseudo" id="Pseudo" class="input_perso"/>
par
<input type="text" name="Pseudo" placeholder="Pseudo" id="Pseudo" class="input_perso"/>
l'id est là pour le dom et autre chose et non pour la récupération des variables d'un form
mets la même chose pour les autres champs et ça devrait fonctionner
Merci, bas enfaîte je m'en suis aperçus juste après le message de flo,
par contre j'ai un code:
$reponse = $bdd->prepare('SELECT membre_pseudo FROM membres WHERE Pseudo = :Pseudo');
$reponse->execute(array('Pseudo' => $_POST'Pseudo']));
$count = $query->rowCount();
if($count == 1)
{
// Pseudo déjà utilisé
echo 'Ce pseudo est déjà utilisé';
}
else
{
}
Se code dois regarder si le Pseudo existe mais il ne fonctionne pas le code.
La table c'est "membres" et le champ a regarder c'est "membre_pseudo"
Je voudrais savoir pourquoi sa ne fonctionne pas.
reponse->execute(array(':Pseudo' => $_POST'Pseudo']));
il te manque les deux points devant pseudo
Ne fonctionne pas:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Pseudo' in 'where clause'' in C:\wamp\www\site_minecraft\inscrit_connect\Validation.php on line 31
( ! ) PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Pseudo' in 'where clause' in C:\wamp\www\site_minecraft\inscrit_connect\Validation.php on line 31
Call Stack
# Time Memory Function Location
1 0.0012 150104 {main}( ) ..\Validation.php:0
2 0.9765 158400 PDOStatement->execute( ) ..\Validation.php:31
c'est normal, l'erreur ne vient pas de l'ajout des deux points. Avec les deux point tu as activé ton code qui présente une erreur
SELECT membre_pseudo FROM membres WHERE Pseudo
je ne comprends pas tu selectionnes membre_pseudo et tu fais where pseudo
l'erreur dit qu'il ne trouve pas le champs pseudo.
Je pense que ta requête doit être
SELECT membre_pseudo FROM membres WHERE membre_pseudo = :Pseudo
Merci pour le code mais maintenant j'ai se message :p
( ! ) Notice: Undefined variable: query in C:\wamp\www\site_minecraft\inscrit_connect\Validation.php on line 32
Call Stack
# Time Memory Function Location
1 0.0006 150104 {main}( ) ..\Validation.php:0
( ! ) Fatal error: Call to a member function rowCount() on a non-object in C:\wamp\www\site_minecraft\inscrit_connect\Validation.php on line 32
Call Stack
# Time Memory Function Location
1 0.0006 150104 {main}( ) ..\Validation.php:0
Se code là, je l'ai trouver sur internet, mais merci du coup de main :)
Je croit sa fonctionne maintenant.
Euh, j'ai un nouveau problème, quand je souhaite me connecter bas j'ai une erreur.
Le code:
<?php include('../connecteurmysql.php'); ?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="../Style/structure_style.css" />
<link rel="stylesheet" href="../Style/structure_millieu.css" />
<link rel="stylesheet" href="../Style/connect.css" />
<title>Connection - HunterCraft</title>
</head>
<body>
<?php
if (isset($_SESSION'id']) AND isset($_SESSION'pseudo']))
{
header("Location:../");
}
else
{
if((!empty($_POST'pseudo'])) AND (!empty($_POST'pass'])))
{
{
// Hachage du mot de passe
$pass_hache = sha1($_POST'pass']);
$pseudo = (htmlspecialchars($_POST'pseudo']));
// Vérification des identifiants
$req = $bdd->prepare('SELECT id FROM membres WHERE membre_pseudo = :pseudo AND membre_mdp = :pass');
$req->execute(array(
'membre_pseudo' => $pseudo,
'membre_mdp' => $pass_hache));
$resultat = $req->fetch();
if (!$resultat)
{
?>
<div id="structure">
<?php include('../header/header.php'); ?>
<div class="millieu_princip">
<div class="struc_milieu">
<div class="inscrit">
<a href="#" ><input type="submit" value="Inscrit toi" class="inscrit1"/></a>
</div>
<div class="connect_refuse">
<div style="margin-left:auto; margin-right:auto; width:70%;"><img src="../img/Attention.png" align="absmiddle"/> <span class="Attention" style=" margin-top:5px;">Votre pseudo ou votre mot de passe est incorrecte !</span></div><br/>
<div style="background:url(../img/new.png); width:80%; height:30px; line-height:30px; margin: auto; -webkit-border-radius: 10px; -moz-border-radius:10px; border-radius:10px;">Merci de remplir les champs pour vous connectez <img src="../img/smiley/smile.png" align="absmiddle"/></div><br/>
<form action="connect.php" method="post">
<li><img src="../img/Erreur.png" alt="Erreur" width="45" align="absbottom" /><input type="text" name="pseudo" class="" id="input_perso" placeholder="pseudo" value="<?php echo ''.$_POST'pseudo'].''; ?>"/></li>
<li><img src="../img/Erreur.png" alt="Erreur" width="45" align="absbottom"/><input type="password" name="pass" class="zone_text_connect" placeholder="mot de passe" id="input_perso"/></li>
<li><input type="submit" value="Valider" class="Publier"/></li>
</form>
</div>
</div><?php include('../footer/footer.php');?>
</div>
</div>
<?php
}
else
{
session_start();
$_SESSION'id'] = $resultat'id'];
$_SESSION'pseudo'] = $pseudo;
header("Location:".$_SERVER'HTTP_REFERER']."");
} } }
else
{
?>
<div id="structure">
<?php include('../header/header.php'); ?>
<div class="millieu_princip">
<div class="struc_milieu">
<div class="inscrit">
<a href="#" ><input type="submit" value="Inscrit toi" class="inscrit1"/></a>
</div>
<div class="connect_refuse">
<div style="margin-left:auto; margin-right:auto; width:70%;"><img src="../img/Attention.png" align="absmiddle" /> <span class="Attention" style=" margin-top:5px;">Votre pseudo ou votre mot de passe est incorrecte !</span></div><br/>
<div style="background:url(../img/new.png); width:80%; height:30px; line-height:30px; margin: auto; -webkit-border-radius: 10px; -moz-border-radius:10px; border-radius:10px;">Merci de remplir les champs pour vous connectez <img src="../img/smiley/smile.png" align="absmiddle"/></div><br/>
<form action="connect.php" method="post">
<li><img src="../img/Erreur.png" alt="Erreur" width="45" align="absbottom" /><input type="text" name="pseudo" class="" placeholder="pseudo" value="" id="input_perso"/></li>
<li><img src="../img/Erreur.png" alt="Erreur" width="45" align="absbottom" /><input type="password" name="pass" class="zone_text_connect" placeholder="mot de passe" id="input_perso"/></li>
<li><input type="submit" value="Valider" class="Publier"/></li>
</form>
</div>
</div><?php include('../footer/footer.php');?>
</div>
</div>
<?php } }
?>
<script type="text/javascript">
var _gaq = _gaq || ];
_gaq.push('_setAccount', 'UA-34395918-2']);
_gaq.push('_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>
L'erreur
( ! ) SCREAM: Error suppression ignored for
( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in C:\wamp\www\site_minecraft\inscrit_connect\connect.php on line 30
( ! ) PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\site_minecraft\inscrit_connect\connect.php on line 30
Call Stack
# Time Memory Function Location
1 0.0005 151696 {main}( ) ..\connect.php:0
2 0.9754 160664 PDOStatement->execute( ) ..\connect.php:30
Se que je comprend pas c'est que le code fonctionner très bien avant.
A un moment donné il faut s'arrêter et ouvrir un nouveau sujet !!!
donc je ne répondrai pas a votre question sur ce fil