|
Bonjour tous! J'ai deux problème :
Je voudrais, après que le compte soit confirmer (sur confirmation.php), envoyer un mail au membre contenant ses informations. Mais ma fonction mail de fonctionne pas.
voici mon code de confirmation.php :
<?php
//Indentifiants de connexion à la base de données.
require("config.inc.php");
//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);
//Vérification que la variable $_GET['code'] existe et contient quelque chose.
if (isset($_GET['code'],$_GET['pseudo']))
{
//Mesure de sécurité, notamment pour éviter les injections sql.
$pseudo = htmlspecialchars($_GET['pseudo']);
$code = htmlspecialchars($_GET['code']);
//On cherche le nombre de code $code dans la table membres.
$sql = mysql_query("SELECT COUNT(*) AS nb_code FROM membres WHERE confirmation_code='".$code."' AND pseudo='".$pseudo."'");
//Si le code existe.
if (mysql_result($sql,0,'nb_code') == 1)
{
//Information sur le compte (id et confirmation)
$sql_infos = mysql_query("SELECT id, confirmation FROM membres WHERE confirmation_code='".$code."' AND pseudo='".$pseudo."'");
$donnees = mysql_fetch_array($sql_infos);
//On regarde si il n'est pas confirmé.
if ($donnees['confirmation'] == 0)
{
//Validation du compte.
mysql_query("UPDATE membres SET confirmation=1 WHERE id=".$donnees['id']);
echo 'Message : compte validé ! Retourné à <br /><a href="index.php">L\'Accueil</a>';
}
else
echo 'Erreur : ce compte est déjà confirmé !';
}
else
echo 'Erreur : le compte à confirmé n\'existe pas !';
}
else
echo 'Erreur : aucun code n\'est indiqué !';
//Déconnection de la base de données.
mysql_close();
?>
Je ne sais pas quel condition écrire pour envoyer le mail différent de cette condition.
2. Sur index.php, quand j'écris mes informations (Pseudo et pass) puis je clique Se connecté, le membre se connecte mais reste sur index.php et non sur membres.php
Voici le code de index.php :
<?php
//Démarrage de la session (à mettre avant tout code xhtml)
session_start();
//Si la variable $_SESSION['logged'] n'existe pas on la créée.
if (!isset($_SESSION['logged'])) $_SESSION['logged'] = false;
//Inclusion du fichier contenant les identifiants de connexion à la base de données.
require("config.inc.php");
//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);
//Ici on gérera le formulaire de connexion.
//connexion normale
//Si la variable $_POST['connexion'] (bouton submit du formulaire) et la variable $_SESSION['logged'] vaut false (déconnecté) existent.
if (isset($_POST['connexion']) && $_SESSION['logged'] === false)
{
//Vérification des autres variables.
if (isset($_POST['pseudo'],$_POST['mot_passe']) && !empty($_POST['pseudo']) && !empty($_POST['mot_passe']))
{
//Vérification du pseudo.
$pseudo = htmlspecialchars($_POST['pseudo']);
$mot_passe = htmlspecialchars($_POST['mot_passe']);
//Requête comptant le nombre de pseudos $_POST['pseudo']
$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
//Si le pseudo existe.
if (mysql_result($sql,0,'nb_pseudo') == 1)
{
//Vérification du mot de passe
//Information sur le compte du membre.
$sql_infos = mysql_query("SELECT id, mot_passe, confirmation FROM membres WHERE pseudo='".$pseudo."'");
$donnees = mysql_fetch_array($sql_infos);
//Hashage du mot de passe.
$mot_passe_hash = md5($mot_passe);
//Comparaison du mot de passe.
if ($mot_passe_hash == $donnees['mot_passe'])
{
//On vérifie que le compte est confirmé.
//Si $donnees['confirmation'] vaut 1.
if ($donnees['confirmation'] == 1)
{
if (isset($_POST['souvenir']) && $_POST['souvenir'] == 'on')
{
//Temps d'expiration des cookies (1 an).
$expire = time() + 3600 * 24 * 365;
setcookie('pseudo', $pseudo, $expire);
setcookie('mot_passe', $mot_passe_hash, $expire);
}
//Tout est bon, on connecte le membre.
$_SESSION['logged'] = true;
//Création de 2 variables de session, contenant des informations sur le membre.
$_SESSION['id'] = $donnees['id']; //Id du membre.
$_SESSION['pseudo'] = $pseudo; //Pseudo du membre.
//Redirection vers la page membre.
header('location: membres.php');
}
else
echo 'Erreur : le compte n\'est pas confirmé !';
}
else
echo 'Erreur : le mot de passe est incorrect !';
}
else
echo 'Erreur : le pseudo n\'existe pas !';
}
else
echo 'Erreur : veuillez remplir tous les champs !';
}
?>
<html>
<head>
<title>Accueil</title>
<style type="text/css">
<!--
.Style1 {color: #0000FF}
-->
</style>
</head>
<body>
<h1 class="Style1">Bienvenue sur conneries! </h1>
<p>
<a href="inscription.html">Inscription</a>
</p>
<form method="post" action="index.php">
<label for="pseudo">Pseudo : <input type="text" name="pseudo" id="pseudo" /></label>
<label for="mot_passe">Mot de passe : <input type="password" name="mot_passe" id="mot_passe" /></label>
<label for="souvenir">Se souvenir de moi ? <input type="checkbox" name="souvenir" id="souvenir" /></label>
<input type="submit" name="connexion" value="Se connecter" />
</form>
</body>
</html>
<?php
//Déconnection de la base de données.
mysql_close();
?>
Pourquoi le header() ne marche pas?
Merci d'avance! |
 Admin |
Salut,
pour le header, soit la condition nécessaire pour l'exécuter ne se produit jamais, soit alors tu as une erreur plus haut dans ton code ce qui provoque une erreur affichée directement, cette erreur empêche ensuite la modification des headers et donc ta redirection ne fonctionne plus.
a + -- 
|