Header() et mail() ne fonctionne pas
Hors ligneSpyboy Le 20/11/2006 à 02:08 Profil de Spyboy Configuration de Spyboy

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!
Hors ligneAnthony Le 20/11/2006 à 22:42 Profil de Anthony Configuration de Anthony

Fou du volant
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 +
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels