par
TRUNCKS » 08 févr. 2011, 09:55
C'est bon, ça marche maintenant, j'ai juste une petite erreur:
Cannot modify header information - headers already sent by (output started at /www/login.php:37) in /www/login.php on line 71
Mais mon message: " le compte n'est pas activé s'affiche correctement.
Il y a conflit justement avec ce message et le header final qui envoie sur la page une fois loggé. ( $zone_membre)
J'ai lu que cela venait des flux, comment pourrais je le présenter pour que ça ne s'affiche pas ?
Code : Tout sélectionner
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$conn = mysql_pconnect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR);mysql_select_db($sql_bdd, $conn);
// Récupération des variables necessaires à la vérification du champ 'actif' de la BDD
$login = $_POST['pseudo_membre'];
// Récupération de la valeur du champ actif pour le login $login
$sql = "SELECT actif FROM membre WHERE pseudo = '$login' AND actif='1'";
$result = mysql_query($sql)or die(mysql_error());
$num_rows=mysql_num_rows($result);
if( $num_rows == 1 )
$actif = 1;
else
$actif = 0;
// Il ne nous reste plus qu'à tester la valeur du champ 'actif' pour
// autoriser ou non le membre à se connecter
if($actif == '1') // Si $actif est égal à 1, on autorise la connexion
{
//...
// On autorise la connexion...
//...
}
else // Sinon la connexion est refusé...
{
//...
echo "Erreur ! Votre compte n'est pas activé...<br>";
//...
}
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete="select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"";
$row2 = mysql_query($requete)or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($row2)==0)
{
// REDIRECTION VERS LA PAGE ERREUR
header("Location:$url_erreur");
}
// SI LE LOGIN ET MOT DE PASSE SONT EXACTES
else
{
// CREATION D'UN IDENTIFIANT ALEATOIRE
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}
// MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE
$requete2="update membre set id=\"$id\" where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"";
$row3 = mysql_query($requete2)or die(mysql_error());
// REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE
header("Location:$zone_membre?id=$id");
}
?>
C'est bon, ça marche maintenant, j'ai juste une petite erreur:
Cannot modify header information - headers already sent by (output started at /www/login.php:37) in /www/login.php on line 71
Mais mon message: " le compte n'est pas activé s'affiche correctement.
Il y a conflit justement avec ce message et le header final qui envoie sur la page une fois loggé. ( $zone_membre)
J'ai lu que cela venait des flux, comment pourrais je le présenter pour que ça ne s'affiche pas ?
[code]
<?php
require("conf.php");
/*-----------------------------------------------------------------*/
/* PROGRAMME PRINCIPAL */
/*-----------------------------------------------------------------*/
// CONNEXION A LA BASE DE DONNEE
$conn = mysql_pconnect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR);mysql_select_db($sql_bdd, $conn);
// Récupération des variables necessaires à la vérification du champ 'actif' de la BDD
$login = $_POST['pseudo_membre'];
// Récupération de la valeur du champ actif pour le login $login
$sql = "SELECT actif FROM membre WHERE pseudo = '$login' AND actif='1'";
$result = mysql_query($sql)or die(mysql_error());
$num_rows=mysql_num_rows($result);
if( $num_rows == 1 )
$actif = 1;
else
$actif = 0;
// Il ne nous reste plus qu'à tester la valeur du champ 'actif' pour
// autoriser ou non le membre à se connecter
if($actif == '1') // Si $actif est égal à 1, on autorise la connexion
{
//...
// On autorise la connexion...
//...
}
else // Sinon la connexion est refusé...
{
//...
echo "Erreur ! Votre compte n'est pas activé...<br>";
//...
}
// ON SELECTIONNE L'ENREGISTREMENT CONTENANT LE LOGIN ET
// MOT DE PASSE SAISIS A LA PAGE INDEX.HTM
$requete="select pseudo,passe from membre where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"";
$row2 = mysql_query($requete)or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($row2)==0)
{
// REDIRECTION VERS LA PAGE ERREUR
header("Location:$url_erreur");
}
// SI LE LOGIN ET MOT DE PASSE SONT EXACTES
else
{
// CREATION D'UN IDENTIFIANT ALEATOIRE
$taille = 20;
$lettres = "abcdefghijklmnopqrstuvwxyz0123456789";
srand(time());
for ($i=0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}
// MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE
$requete2="update membre set id=\"$id\" where pseudo=\"$pseudo_membre\" and passe=\"$passe_membre\"";
$row3 = mysql_query($requete2)or die(mysql_error());
// REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE
header("Location:$zone_membre?id=$id");
}
?>
[/code]