lezarts

Inscris le 14/08/2011 à 07:44
  • Signature
    Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi
  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    2
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
lezarts
Bonjour à tous,
smiley Mon soucis du moment c'est que je n'arrive pas à trouver ou comprendre l'erreur du formulaire d'inscription, j'ai bien essayé divers solution mais bon..?
Alors j'en fais appelle à vous les experts du php smiley

Je vous joint :

le code d'erreur
Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\site\Lezarts\000_membres\inscription.php on line 25

et le code php
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {

// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['email']) && !empty($_POST['email']))) {

// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace_membres', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
// Récupération des variables nécessaires au mail de confirmation
$email = $_POST['email'];
$login = $_POST['login'];
// Génération aléatoire d'une clé
$cle = md5(microtime(TRUE)*100000);
// Insertion de la clé dans la base de données (à adapter en INSERT si besoin)
$stmt = $base->prepare('UPDATE membre SET cle=:cle WHERE login like :login');
$stmt->bindParam(':cle', $cle);
$stmt->bindParam(':login', $login);
$stmt->execute();
// Préparation du mail contenant le lien d'activation
$destinataire = $email;
$sujet = "Activer votre compte" ;
$entete = "From: inscription@votresite.com" ;
// Le lien d'activation est composé du login(log) et de la clé(cle)
$message = 'Bienvenue sur votre Email,
Pour activer votre compte, veuillez cliquer sur le lien ci dessous
ou copier/coller dans votre navigateur internet.
http://www.lezarts.org/000_membres/membre.php?log='.urlencode($login).'&cle='.urlencode($cle).'
---------------
Ceci est un mail automatique, Merci de ne pas y répondre.';
mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail

if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else {
$erreur = 'Tous les champs doivent être remplis merci.';
}
}
?>

<html>
<head>
<title>Inscription</title>
</head>

<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login :<input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe :<input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation mot de passe :<input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
Votre adresse mail :<input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>

Dans l'attente de votre aide si toute fois il y'en une je vous remercie d'avance... smiley
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi

Ses derniers messages sur les forums

forum
lezarts
Bonjour LA GLOBULE,

Je te remercie d'avoir répondu à mon problème récurant et il est vrais..? Que je commence juste avec la PDO et de plus je suis novice en php et autodidact, ce qui n'est pas toujours évidant quand on se posent des questions et que l'on n'a pas de prof pour répondre (pas les moyen de m'en payer un).....
Avant que j'intègre le code pour envoyer un mail de confimation tout fonctionnait, et suite à de longues heures de recherche sur internet j'ai fini par trouver un début de solution mais..? Ces solutions m'ont ammené d'autre bugs.

Bref..? De quoi se tirer les cheveux...

Ma question est :

Suite au bout de code que tu m'a fournis, je l'intègre ou exactement dans mon code avant de me recasser la tête... smiley

Je pense que tu as remarqué qu'une partie du code que j'ai taper à la main vient de tuto du site lephpfacile...

Merci d'avance pour ta réponse smiley
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi
lezarts
Bonjour à tous,
smiley Mon soucis du moment c'est que je n'arrive pas à trouver ou comprendre l'erreur du formulaire d'inscription, j'ai bien essayé divers solution mais bon..?
Alors j'en fais appelle à vous les experts du php smiley

Je vous joint :

le code d'erreur
Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\site\Lezarts\000_membres\inscription.php on line 25

et le code php
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {

// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['email']) && !empty($_POST['email']))) {

// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace_membres', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
// Récupération des variables nécessaires au mail de confirmation
$email = $_POST['email'];
$login = $_POST['login'];
// Génération aléatoire d'une clé
$cle = md5(microtime(TRUE)*100000);
// Insertion de la clé dans la base de données (à adapter en INSERT si besoin)
$stmt = $base->prepare('UPDATE membre SET cle=:cle WHERE login like :login');
$stmt->bindParam(':cle', $cle);
$stmt->bindParam(':login', $login);
$stmt->execute();
// Préparation du mail contenant le lien d'activation
$destinataire = $email;
$sujet = "Activer votre compte" ;
$entete = "From: inscription@votresite.com" ;
// Le lien d'activation est composé du login(log) et de la clé(cle)
$message = 'Bienvenue sur votre Email,
Pour activer votre compte, veuillez cliquer sur le lien ci dessous
ou copier/coller dans votre navigateur internet.
http://www.lezarts.org/000_membres/membre.php?log='.urlencode($login).'&cle='.urlencode($cle).'
---------------
Ceci est un mail automatique, Merci de ne pas y répondre.';
mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail

if ($data[0] == 0) {
$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else {
$erreur = 'Tous les champs doivent être remplis merci.';
}
}
?>

<html>
<head>
<title>Inscription</title>
</head>

<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login :<input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe :<input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation mot de passe :<input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
Votre adresse mail :<input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>

Dans l'attente de votre aide si toute fois il y'en une je vous remercie d'avance... smiley
Best wishes for a happy daylight and, good morning in your home @ + {:o)) Shi Xing Yi

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours