Page 1 sur 1

Page avec un systeme de log in, ou de log out

Posté : 07 mars 2014, 23:15
par Shadors2586
Bonjour,
J'essaye depuis 2 jours a creer une page index.php (faite) qui contiens un systeme de login, si l'utilisateur est deja connecté, il affiche un lien vers le forum et un boutton log out.
Voici le code du log in:
<?php
//cb
ob_start();

//session
session_start();

if (isset($_SESSION['username']))
{
 header("Location: connect.php");
 exit();	
}
//connect 
$error = 'Connection a la database impossible';
mysql_connect('localhost','root','') or die($error);
mysql_select_db('hosting_gg6l') or die($error);

//includes funtions.php phpbb script
require 'phpBB3/includes/functions.php';

if ($_POST['login'])
{
//get form Data
 $username = addslashes(strip_tags(strtolower($_POST['username'])));
 $password = addslashes(strip_tags($_POST['password']));
 if ($username=="" OR $password=="")
   echo "Erreur: Entrez un Login et un Pass valide.<p />";
 else
 {
//find username
 $find = mysql_query("SELECT * FROM phpbb_users WHERE username_clean='$username'");
 if (mysql_num_rows($find)==0)
    echo "<span>Erreur: Utilisateur introuvable.<span/><br />";
  else
   {
    while ($find_row = mysql_fetch_assoc($find))
     {
     // grab password hash for user
     $password_hash = $find_row['user_password'];
     }
     $check = phpbb_check_hash($password, $password_hash);
     if ($check==FALSE)
        echo "<span>Erreur: Mot de passe incorrect.<span/><br />";
     else if ($check==TRUE)
     {
        $_SESSION['username']=$username;
        header("Location: connect.php");
        exit();
     }    
   }	 
 }
}
?>
[html]<form action="index.php" method="POST">
Username:<br />
<input type="text" name="username"><p />
Password:<br />
<input type="password" name="password"><p />
<input type="submit" name="login" value="Go!!">
</form>[/html]
Voici la page connect.php:
<?php
//ob
ob_start();

//session
session_start();

$session_username = $_SESSION['username'];
if (!isset($session_username))
{
 header("Location: index.php");
 exit();	
}
else
{
 echo "Hello, ".$_SESSION['username'].". <a href='logout.php'>Logout</a>";
}
?>
Et la page logout.php:
<?php

session_start();
session_destroy();

header("Location: index.php");
?>
Et pour finir la page ou je souhaite tout regrouper: ( Le code php, c'est le login qui marche) Mais Je cherche exactement a faire en sorte que tout se passe dans la même page pour eviter de faire des redirection sans arret mais impossible pour moi, je ne sais pas ou placer la code de la page connect.php, ni celui du logout.php.. Le navigateur m'affiche sans arrêt des erreurs. Merci de votre aide.
[php][color=#0000FF]    <?php
//cb
ob_start();

//session
session_start();

if (isset($_SESSION['username']))
{
 header("Location: main.php");
 exit();	
}
//connect 
$error = 'Could not connect to database :p';
mysql_connect('localhost','root','') or die($error);
mysql_select_db('hosting_gg6l') or die($error);
//includes funtions.php phpbb script
require 'phpBB3/includes/functions.php';
if ($_POST['login'])
{
//get form Data
 $username = addslashes(strip_tags(strtolower($_POST['username'])));
 $password = addslashes(strip_tags($_POST['password']));
 if ($username=="" OR $password=="")
   echo "PLease entrere a password and username<p />";
 else
 {
//find username
 $find = mysql_query("SELECT * FROM phpbb_users WHERE username_clean='$username'");
 if (mysql_num_rows($find)==0)
    echo "<span>Erreur: utilisateur introuvable.<span/><br />";
  else
   {
    while ($find_row = mysql_fetch_assoc($find))
     {
     // grab password hash for user
     $password_hash = $find_row['user_password'];
     }
     $check = phpbb_check_hash($password, $password_hash);
     if ($check==FALSE)
        echo "<span>Erreur: mot de passe incorrect.<span/><br />";
     else if ($check==TRUE)
     {
        $_SESSION['username']=$username;
        header("Location: main.php");
        exit();
     }    
   }	 
 }
}
    ?>[/color][/php]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>IceTeam | Acceuil</title>
<link rel="stylesheet" type="text/css" href="CSS/Ice_1.css"/> 
<link rel="stylesheet" type="text/css" href="CSS/popups.css"/>
<link rel="stylesheet" type="text/css" href="CSS/slider.css"/>
<link rel="stylesheet" type="text/css" href="CSS/forms.css"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
sfHover = function() {
        var sfEls = document.getElementById("navlist").getElementsByTagName("LI");
        for (var i=0; i<sfEls.length; i++) {
                sfEls[i].onmouseover=function() {
                        this.className+=" sfhover";
                }
                sfEls[i].onmouseout=function() {
                        this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                }
        }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

function hideDiv() {
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById('hideshow').style.visibility = 'hidden';
    } else {
        if (document.layers) { // Netscape 4
            document.hideshow.visibility = 'hidden';
        } else { // IE 4
            document.all.hideshow.style.visibility = 'hidden';
        }
    }
}
 
function showDiv() {
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById('hideshow').style.visibility = 'visible';
    } else {
        if (document.layers) { // Netscape 4
            document.hideshow.visibility = 'visible';
        } else { // IE 4
            document.all.hideshow.style.visibility = 'visible';
        }
    }
}
function hideDiv2() {
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById('hideshow2').style.visibility = 'hidden';
    } else {
        if (document.layers) { // Netscape 4
            document.hideshow2.visibility = 'hidden';
        } else { // IE 4
            document.all.hideshow2.style.visibility = 'hidden';
        }
    }
}
 
function showDiv2() {
    if (document.getElementById) { // DOM3 = IE5, NS6
        document.getElementById('hideshow2').style.visibility = 'visible';
    } else {
        if (document.layers) { // Netscape 4
            document.hideshow2.visibility = 'visible';
        } else { // IE 4
            document.all.hideshow2.style.visibility = 'visible';
        }
    }
}
</script>
<style type="text/css">
<!--
.Style1 {font-size: xx-large}
-->
</style>
</head>
<body>
<div id="contentgrand">
 <div class="Style1" id="header"> Site en construction pres pour septembre 2013</div>
 <div id="navlist">
  <ul id="navlist">
 
        <li>
                <a href="#">Acceuil</a>
        </li>
         
        <li>
                <a href="#">Jeux</a>
                <ul>
                         <li><a href="#">Minecraft</a></li>
                         <li><a href="#">Call Of Duty</a></li>
						 <li><a href="#">League Of Legend</a></li>
						 <li><a href="#">StarCraft</a></li>
                </ul>
        </li>
         
        <li>
                <a href="#">Membres</a>
                <ul>
                        <li>
                                <a href="Pages/Connect/1d56fs5d45gd44.htm">Connection</a>
                        </li>
                        <li>
                                <a href="javascript:showDiv2()">Inscription</a>
                        </li>
                </ul>
        </li>
         
        <li>
                <a href="#">Téléchargements</a>
                <ul>
                        <li><a href="#">Maps</a></li>
                        <li><a href="#">Articles</a></li>
                </ul>
        </li>
        <li>
                <a href="#">Membres</a>
                <ul>
                        <li><a href="#">COucou</a></li>
                </ul>
        </li>
  </ul>
 </div>
 <div id="contentpetit">
  <div id="cotegauche">
    <div align="center">[]**** Page Gauche ****[]
[color=#FF0000]<form action="index.php" method="POST">
Username:<br />
<input type="text" name="username"><p />
Password:<br />
<input type="password" name="password"><p />
<input type="submit" name="login" value="Go!!">
</form>[/color]
    </div>
  </div>	
	<section id="slideshow">
	  <div class="interieur">
		  <div class="c_slider"></div>
			<div class="slider">
				<figure>
					<img src="Images/Slider/Img0.jpg" alt="" width="640" height="310" />
					<figcaption>The mirror of soul</figcaption>
				</figure><!--
				--><figure>
					<img src="Images/Slider/Img1.jpg" alt="" width="640" height="310" />
					<figcaption>Let's cross that bridge when we come to it</figcaption>
				</figure><!--
				--><figure>
					<img src="Images/Slider/Img3.jpg" alt="" width="640" height="310" />
					<figcaption>Sushi<em>(do)</em> time</figcaption>
				</figure><!--
				--><figure>
					<img src="Images/Slider/Img4.jpg" alt="" width="640" height="310" />
					<figcaption>Waking Life</figcaption>
				</figure>
			</div>
	  </div>
		
		<span id="timeline"></span>
	</section>
  <div id="centre">
    <div align="center">
	<p> []**** Page centre ****[]</p>
   <h1></h1>
      <iframe width="640" height="360" src="http://www.youtube.com/embed/TgA-" frameborder="0" allowfullscreen></iframe>
    </div>
  </div>
  <div id="hideshow" style="visibility: hidden;">
    <div id="fade"></div>
    <div class="popup_block">
        <div class="popup">
            <a href="javascript:hideDiv()">
                <img src="Images/System/close2.png" class="cntrl" alt="" />
            </a>
            <h3>Page de Connection</h3>
        </div>
    </div>
  </div>
  <div id="hideshow2" style="visibility: hidden;">
    <div id="fade"></div>
    <div class="popup_block">
        <div class="popup">
            <a href="javascript:hideDiv2()">
                <img src="Images/System/close2.png" class="cntrl" alt="" />
            </a>
            <h3>Inscription</h3>
                     <form name="Inscription" enctype="multipart/form-data" method="post" action="Pages/redirections_php/inscription.php">
<table>
<tr><td>Pseudo:*</td>
<td><input type="text" name="login" size=30/></td></tr>
<tr><td>Mot de passe:*</td>
<td><input type="password" name="pass" size=30/></td></tr>
<tr><td>Code Administrateur:</td>
<td><input type="text" name="pass_adm" size=30/></td></tr>
</table>
<br> <input type=submit value=Inscription> -
<input type=reset value=Annuler>
          </form> 
        </div>
    </div>
  </div>
 </div>
</div>
</body>
</html>

Re: Page avec un systeme de log in, ou de log out

Posté : 08 mars 2014, 16:21
par Ascla
Bonjour,

Ce que tu pourrais faire, c'est dans ta page principal, insérer une condition qui dit :
Si l'utilisateur est déconnecté --> "echo" qui est affiché si l'utilisateur n'a pas de session
Si l'utilisateur est connecté --> "echo" qui ne s'affiche que si l'utilisateur est en session active

Pour le fichier logout, je te conseil de le laisser en fichier extérieur.

Re: Page avec un systeme de log in, ou de log out

Posté : 08 mars 2014, 16:34
par Shadors2586
Il faudrai donc que je fasse:
index.php
<?php
if (!isset($session_username))
{
 <form action="index.php" method="POST">
Username:<br />
<input type="text" name="username"><p />
Password:<br />
<input type="password" name="password"><p />
<input type="submit" name="login" value="Go!!">
</form>;
 exit();	
}
else
{
 echo "Hello, ".$_SESSION['username'].". <a href='logout.php'>Logout</a>";
}
?>

Re: Page avec un systeme de log in, ou de log out

Posté : 08 mars 2014, 16:42
par Ascla
Là tu as un problème de guillemets. Essaye plutôt ceci et tiens moi au jus :
<?php
if (!isset($session_username))
{
echo '
 <form action="index.php" method="POST">
Username:<br />
<input type="text" name="username"><p />
Password:<br />
<input type="password" name="password"><p />
<input type="submit" name="login" value="Go!!">
</form>;
 exit();
';    
}
else
{
 echo '"Hello, ".$_SESSION[\'username\'].". <a href=\'logout.php\'>Logout</a>"';
}
?>

Re: Page avec un systeme de log in, ou de log out

Posté : 08 mars 2014, 16:48
par Shadors2586
Le probleme persiste, je pense savoir de quoi ca vient mais j'ai aucune idée de comment le regler:
Ce code est en haut de la page pour pouvoir executer le formulaire:
    <?php
//cb
ob_start();

//session
session_start();

//connect 
$error = 'Could not connect to database :p';
mysql_connect('localhost','root','') or die($error);
mysql_select_db('hosting_gg6l') or die($error);
//includes funtions.php phpbb script
require 'phpBB3/includes/functions.php';
if ($_POST['login'])
{
//get form Data
 $username = addslashes(strip_tags(strtolower($_POST['username'])));
 $password = addslashes(strip_tags($_POST['password']));
 if ($username=="" OR $password=="")
   echo "PLease entrere a password and username<p />";
 else
 {
//find username
 $find = mysql_query("SELECT * FROM phpbb_users WHERE username_clean='$username'");
 if (mysql_num_rows($find)==0)
    echo "<span>Erreur: utilisateur introuvable.<span/><br />";
  else
   {
    while ($find_row = mysql_fetch_assoc($find))
     {
     // grab password hash for user
     $password_hash = $find_row['user_password'];
     }
     $check = phpbb_check_hash($password, $password_hash);
     if ($check==FALSE)
        echo "<span>Erreur: mot de passe incorrect.<span/><br />";
     else if ($check==TRUE)
     {
        $_SESSION['username']=$username;
        header("Location: main.php");
        exit();
     }    
   }	 
 }
}
    ?>
et a l'endroit ou doit etre le formulaire, et par conséquent ou doit etre marqué "Bienvenue, $_SESSION['username']. Log out " il y a ce code (celui que tu m'a donné)
    <?php
//cb
ob_start();

//session
session_start();

//connect 
$error = 'Could not connect to database :p';
mysql_connect('localhost','root','') or die($error);
mysql_select_db('hosting_gg6l') or die($error);
//includes funtions.php phpbb script
require 'phpBB3/includes/functions.php';
if ($_POST['login'])
{
//get form Data
 $username = addslashes(strip_tags(strtolower($_POST['username'])));
 $password = addslashes(strip_tags($_POST['password']));
 if ($username=="" OR $password=="")
   echo "PLease entrere a password and username<p />";
 else
 {
//find username
 $find = mysql_query("SELECT * FROM phpbb_users WHERE username_clean='$username'");
 if (mysql_num_rows($find)==0)
    echo "<span>Erreur: utilisateur introuvable.<span/><br />";
  else
   {
    while ($find_row = mysql_fetch_assoc($find))
     {
     // grab password hash for user
     $password_hash = $find_row['user_password'];
     }
     $check = phpbb_check_hash($password, $password_hash);
     if ($check==FALSE)
        echo "<span>Erreur: mot de passe incorrect.<span/><br />";
     else if ($check==TRUE)
     {
        $_SESSION['username']=$username;
        header("Location: main.php");
        exit();
     }    
   }	 
 }
}
    ?>
Je pense que le seveur (quand je me connecte) execute le code qui est en haut (lié au formulaire )jusqua la fin, il m'envoi donc sur la page main.php mais je voudrai rester sur la page index.php

Re: Page avec un systeme de log in, ou de log out

Posté : 08 mars 2014, 17:14
par sirakawa
1 Avant toute chose, il FAUT abandonner mysql au profit de mysqli ou PDO : mysl est déclaré obsolète par la doc officielle et sera abandonné à terme: il n'est maintenu que pour permettre le fonctionnement d'applications anciennes avant leur migration.
2 Au lieu d'écrire:
$find = mysql_query("SELECT * FROM phpbb_users WHERE username_clean='$username'");
écrire
$requete = "SELECT * FROM phpbb_users WHERE username_clean='$username'";
print "<br>$requete<br>"; //à supprimer si ça marche
$resultat = mysql-query($requete);
if ($resultat == false)
{

}
else
{
}