Essaye ça,
J'utilisais cette fonction pour faire mes insert à l'époque.
Je l'ai déjà adapté pour toi.
Bonjour,
Alors voila j'ai essayer de faire un formulaire d'inscription avec PDO mais je n'est n'y message d'erreur n'y nouvelles infos dans ma basse de donnée, je vous montre mon code ci vous pouvez m'aider ca serais cool Voici les 3 pages que j'utilise
index.php :
<?php
// A inclure dans le fichier index.php une foie la decomposition faite.
session_start();
//Connexion a la basse de donnée.
try{
$PDO = new PDO('mysql:host=localhost;dbname=myblog','root','');
$PDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$PDO->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_OBJ);
}catch(PDOException $e){
echo 'Connexion impossible';
}
// Inclure le fichier class.
require "class.auth.php";
//Fin de l'inclusion.
?>
Ensuite regis.php :
<?php
require "index.php";
if(isset($_POST'register'])){
$login = $_POST'login'];
$password = md5($_POST'password']);
$repeatpassword = $_POST'repeatpassword'];
$email = $_POST'email'];
$infos = $_POST'infos'];
if($Auth->register($PDO,$login,$password,$email,$infos)){
echo "Inscription termine";
}else{
echo "Echec lors de votre inscription";
}
}
?>
<h1>Inscription</h1><hr>
<form method="post" action="">
<label for="login">Login :</label>
<input type="text" name="login"><br/>
<label for="password">password :</label>
<input type="password" name="password"><br/>
<label for="repeatpassword">repeatpassword :</label>
<input type="password" name="repeatpassword"><br/>
<label for="email">email :</label>
<input type="text" name="email"><br/>
<label for="infos">infos :</label>
<input type="text" name="infos"><br/>
<input type="submit" name="valider" value="inscription">
</form>
et pour finir class.auth.php :
<?php class Auth{
/**
* Permet d'identifier un utilisateur
**/
function register($PDO,$login,$password,$email,$infos){
$req = $PDO->prepare("INSERT INTO users (login, password, email, infos, roles_id) VALUES ('".$login."', '".$password."', '".$email."', '".$infos."', '2')");
$req->execute(array(
"login" => $login,
"password" => $password,
"email" => $email,
"infos" => $infos
));
$data = $req->fetchAll();
if(count($data)>0){
$_SESSION'Auth'] = $data[0];
return true;
}
return false;
}
}
$Auth = new Auth();
Voila je vient de me mettre a PDO donc explication facile ca serais mieux :D
3 réponses
Jonathan Dewaele,
il y a 9 ans
BlackDev,
il y a 13 ans
Salut,
Les valeurs externes dans les requêtes en PDO s'écrivent soit par des ?, soit par leur nom précédé d'un ":".
Essaye déjà comme ça :
$req = $PDO->prepare("INSERT INTO users (login, password, email, infos, roles_id) VALUES (:login, :password, :email, :infos, '2')");
$req->execute(array(
"login" => $login,
"password" => $password,
"email" => $email,
"infos" => $infos
));
luffysan,
il y a 13 ans
Je comprends pas pourquoi tu fais un fethAll alors qu'il ne renvoie pas de statments.