Probleme PHp site membre

tony82800 Messages postés 67 Statut Membre -  
.Zoro. Messages postés 285 Statut Membre -
Bonjour, je debute en php et j'ai actuellement un petit probleme

j'ai un espace membre , pour les connexion ect .. tout va bien

le probleme est que :

index.php : affiche un formulaire de connexion

si identifiants correct ==> membre.php

bon la tout va bien sa se connecte

le probleme est que quand je suis sur membre.php il s'affiche "bienvenue pseudodelapersonne"

et des que je reviens sur index.php sa me remet le formulaire de connexion

en gros je voudrais que une fois connecté sa suprimer le formulaire et remplace par le nom de la personne.

voici les codes :



Membre.php
---------------------------------------------------------------------------------------------------------


<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>titire</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><div id="header"></div></div>
<div id="speedbg">
<div id="speedbar">
<span><a href="index.php">Accueil</a></span>
<span><a href="membre.php">Espace Membre</a></span>
<span><a href="#">ChatBox</a></span>
<span><a href="#">Liens</a></span>
<span><a href="#">Contact</a></span>
</div>
</div>

<div id="conteneur">
<div id="left">
<div id="sideleft">
<div class="sidetop">Menu 1</div>
<div class="sidefond">
<ul>
<li><a href="#">Accueil</a></li>
<li><a href="#">Forum</a></li>
<li><a href="#">ChatBox</a></li>
<li><a href="#">Liens</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
<div id="content">
<div class="news">
<div class="topnews">

</div>
<div class="insidenews">

</div>
</div>
<div class="news">
<div class="topnews">
<div class="titre">Un second article</div>
<div class="auteur">Par Hadrien</div>
</div>
<div class="insidenews">

</div>
</div>
</div>
</div>
<div id="right">
<div class="sidetop">Mon Compte</div>
<div class="sidefond">
<div align="center">

Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>


</div>
</div>
</div>
</div>



</body>
</html>
*****************************************************************


Index.php
------------------------------------------------------------------------------------------------------



<?php
include 'conexionconfig.php';
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>titre</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><div id="header"></div></div>
<div id="speedbg">
<div id="speedbar">
<span><a href="index.php">Accueil</a></span>
<span><a href="membre.php">Espace Membre</a></span>
<span><a href="#">ChatBox</a></span>
<span><a href="#">Liens</a></span>
<span><a href="#">Contact</a></span>
</div>
</div>

<div id="conteneur">
<div id="left">
<div id="sideleft">
<div class="sidetop">Menu 1</div>
<div class="sidefond">
<ul>
<li><a href="#">Accueil</a></li>
<li><a href="#">Forum</a></li>
<li><a href="#">ChatBox</a></li>
<li><a href="#">Liens</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
<div id="content">
<div class="news">
<div class="topnews">

</div>
<div class="insidenews">

</div>
</div>
<div class="news">
<div class="topnews">
<div class="titre">Un second article</div>
<div class="auteur"></div>
</div>
<div class="insidenews">

</div>
</div>
</div>
</div>
<div id="right">
<div class="sidetop">Mon Compte</div>
<div class="sidefond">
<div align="center">


Connexion à l'espace membre :<br />
<form action="index.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 />
<input type="submit" name="connexion" value="Connexion">
</form>

<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>

</div>
</div>
</div>
</div>



</body>
</html>
---------------------------------------------------------------------------------------------------------


connexionconfig.php
-----------------------------------------------------------------------------------------------------
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('host', 'user, 'pass');
mysql_select_db ('dragonsclaws', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');

exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>



A voir également:

7 réponses

.Zoro. Messages postés 285 Statut Membre 33
 
il faut faire un test avec une condition "if else"

en revenant sur index.php
si $_SESSION['login'] est vide => on affiche le formulaire
sinon => on affiche le pseudo

après tu peut imbriquer d'autres test pour verifier que le pseudo est valide etc...
0
tony82800 Messages postés 67 Statut Membre 27
 
merci pour ta reponce, je vien d'essayer et cela m'indique un message d'erreur

j'ai peut etre fait une erreur dans le code ??


(dans index.php):

//partie conditions
<?php
$resultat = $login;
$login = $_SESSION['login'];

//Si la variable est vide
if(empty($resultat))
{


Connexion à l'espace membre :<br />
<form action="index.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 />
<input type="submit" name="connexion" value="Connexion">
</form>



}
//Sinon
else if($resultat == $login)
{
echo 'vous etes connecté';
}
//Sinon
else
{
echo 'erreur';
}
?>
//fin partie condiftions
0
.Zoro. Messages postés 285 Statut Membre 33
 
//partie conditions
<?php
$resultat = $login;
$login = $_SESSION['login'];

//Si la variable est vide
if(empty($resultat)) 


tu demande a php de faire une operation sur une variable qui n'existe pas encore.
et d'ailleur, cette variable est inutile

teste directement ta variable s_SESSION['login']
0
Garth
 
session_start(); doit être placé en début de chaque code php et avant TOUT autre chose sinon pas de session.

---------------------------------------------------------------------------------------------------------
connexionconfig.php
-----------------------------------------------------------------------------------------------------
<?php
session_start();
// on teste si le visiteur a soumis le formulaire de connexion


Pour le test comme dit .Zoro

if(isset ($_SESSION['login']) && !empty($_SESSION['login'])){

//affiche le message de bienvenue

}else{

//affiche le formulaire de connexion

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tony82800 Messages postés 67 Statut Membre 27
 
super sa marche :) merci beaucoup tout les deux.
0
tony82800 Messages postés 67 Statut Membre 27
 
Warning: Cannot modify header information - headers already sent by (output started at /public_html/index.php:15) in /public_html/conexionconfig.php on line 21

pourquoi ce message d'erreur s'affiche ??
meme si les conditions du formulaire march a la perpection je n'arive pas
a resoudre ce probleme ,
a mon avis ca vien de

if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header ('Location: membre.php');

exit();
}

je remet le code car je l'ai modifier :


-------------------------------------------------------------------------------------

<?php

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('', '', '');
mysql_select_db ('', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header ('Location: membre.php');

exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<?php
if(isset ($_SESSION['login']) && !empty($_SESSION['login'])){

echo'vous etes conecté;

}
else
{

include 'new.php';

}
?>
---------------------------------------------------------------------------------

new.php :

Connexion à l'espace membre :<br />
<form action="index.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 />
<input type="submit" name="connexion" value="Connexion">
</form>

<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
--------------------------------------------------------------------------------

membre.php

<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><div id="header"></div></div>
<div id="speedbg">
<div id="speedbar">
<span><a href="index.php">Accueil</a></span>
<span><a href="membre.php">Espace Membre</a></span>
<span><a href="#">ChatBox</a></span>
<span><a href="#">Liens</a></span>
<span><a href="#">Contact</a></span>
</div>
</div>

<div id="conteneur">
<div id="left">
<div id="sideleft">
<div class="sidetop">Menu 1</div>
<div class="sidefond">
<ul>
<li><a href="#">Accueil</a></li>
<li><a href="#">Forum</a></li>
<li><a href="#">ChatBox</a></li>
<li><a href="#">Liens</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
<div id="content">
<div class="news">
<div class="topnews">



</div>
<div class="insidenews">
<?php
// on se connecte à MySQL
$db = mysql_connect('', '', '');
$login = $_SESSION['login'];
// on sélectionne la base
mysql_select_db(',$db);

// on crée la requête SQL
$sql="select balance from iConomy where username='$login'";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement

$data = mysql_fetch_assoc($req);
echo ' <i>Money : '.$data['balance'].'</i><br>';


// on ferme la connexion à mysql
mysql_close();
?>




</div>
</div>
<div class="news">
<div class="topnews">

</div>
<div class="insidenews">

</div>
</div>
</div>
</div>
<div id="right">
<div class="sidetop">Mon Compte</div>
<div class="sidefond">
<div align="center">
<?php
include 'conexionconfig.php';
?>

Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?> !<br />
<a href="deconnexion.php">Déconnexion</a>






</div>
</div>
</div>
</div>



</body>
</html>
------------------------------------------------------------------------

index.php:

<?php
session_start();
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Minecraft Station</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><div id="header"></div></div>
<div id="speedbg">
<div id="speedbar">
<span><a href="index.php">Accueil</a></span>
<span><a href="membre.php">Espace Membre</a></span>
<span><a href="#">ChatBox</a></span>
<span><a href="#">Liens</a></span>
<span><a href="#">Contact</a></span>
</div>
</div>

<div id="conteneur">
<div id="left">
<div id="sideleft">
<div class="sidetop">Menu 1</div>
<div class="sidefond">
<ul>
<li><a href="#">Accueil</a></li>
<li><a href="#">Forum</a></li>
<li><a href="#">ChatBox</a></li>
<li><a href="#">Liens</a></li>
<li><a href="#">Contact</a></li>
</ul>
</div>
</div>
<div id="content">
<div class="news">
<div class="topnews">

</div>
<div class="insidenews">

</div>
</div>
<div class="news">
<div class="topnews">
<div class="titre">Un second article</div>
<div class="auteur"></div>
</div>
<div class="insidenews">

</div>
</div>
</div>
</div>
<div id="right">
<div class="sidetop">Mon Compte</div>
<div class="sidefond">
<div align="center">
<?php
include 'conexionconfig.php';
?>


</div>
</div>
</div>
</div>



</body>
</html>
0
.Zoro. Messages postés 285 Statut Membre 33
 
ouai bon faut chercher un peu aussi ...
https://www.commentcamarche.net/faq/1916-php-headers-already-sent-by
0