Je suis en train de faire un script de la page d'inscription a l'espace membres (cf dernier tp du livre de php).
Je code et je teste le formulaire marche parfaitement, je clique sur le bouton valider.
Et la j'ai un fatal error:
Fatal error: Call to a member function closeCursor() on a non-object in /var/www/poliboolold.fr/htdocs/membres_inscription.php on line 59
Comme a mon habitude, je fait une recherche sur google pour essayer de trouver qu'es qui ne va pas !
Je trouve qu'il faut seulement mettre des closeCursor lorsqu'on fait un ou plusieur fetch . Comme j'ai fait un fetch a la requete ou il y'a le problème . Ca ne m'avance pas
Voila merci d'avance a ceux qui peuvent m'aider
Voici le code:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>poliboolold.fr</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
try
{
if(!isset( $_POST['pseudo'])AND !isset( $_POST['mdp']) AND !isset( $_POST['mdpdouble']) AND !isset( $_POST['email']))
{
if(!isset( $_SESSION['id']) AND !isset( $_SESSION['pseudo']))
{
?>
<form method="post" action="membres_inscription.php">
<p>
Pseudo <input type="text" name="pseudo"/>
mdp <input type="password" name="mdp"/>
mdpdouble <input type="password" name="mdpdouble"/>
email <input type="text" name="email"/>
<input type="submit" value="Valider" />
<?php
}
}
elseif(isset ($_SESSION['id']) AND !isset($_SESSION['pseudo']))
{
echo"connecté";
}
elseif ($_POST['mdp']!= $_POST['mdpdouble'])
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=**********;dbname=***************', '***********', '***********', $pdo_options);
$req= $bdd->prepare('SELECT id FROM membres WHERE pseudo=:pseudo AND pass=:pass');
$req->execute(array('pseudo'=> $_POST['pseudo'],'pass'=> $_POST['mdp']));
$resultat= $req->fetch();
if(!$resultat)
{
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
echo"recommencez";
}
}
}
else
{
$pass_hache = sha1($_POST['mdp']);
$req->closeCursor();
$requete = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription) VALUES(:pseudo, :pass, :email, CURDATE())');
$requete->execute(array('pseudo'=> $_POST['pseudo'], 'pass'=> $_POST['pass_hache'], 'email'=> $_POST['email']));
echo"Inscrit";
$requete->closeCursor();
}
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
</body>
</html>