Créer un formulaire de connexion v2 avec un panel de connexion + Gestion de profil

Statut
N'est pas ouverte pour d'autres réponses.

ta tante.

The King.
Premium
Inscription
27 Janvier 2013
Messages
3 112
Réactions
721
Points
4 000
RGCoins
0
Salut à tous c'est Skrayze,

On se retrouve pour la V2 de mon formulaire de connexion.

Passons au index.php :
PHP:
<?php
require('login.php'); // Inclure le login.php

if(isset($_SESSION['login_user'])){
header("location: profile.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test - Connexion</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="main">
<h1>Test</h1>
<div id="login">
<h2>Page de connexion</h2>
<form action="" method="post">
<label>UserName :</label>
<input id="name" name="username" placeholder="username" type="text">
<label>Password :</label>
<input id="password" name="password" placeholder="**********" type="password">
<input name="submit" type="submit" value=" Login ">
<span><?php echo $error; ?></span>
</form>
</div>
</div>
</body>
</html>

Le code du login.php
PHP:
<?php
session_start(); // Start la session
$error=''; // Variable pour stocker les message d'erreur
if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else
{
// Définir $username et $password
$username=$_POST['username'];
$password=$_POST['password'];
// Etablire la connection avec le serveur en passant par le server_name, user_id et password dans les paramètre.
$connection = mysql_connect("localhost", "root", "");
// Pour protéger la base de données des injections
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
// Selectionné la bd
$db = mysql_select_db("company", $connection);
// Analysé la db pour voir s'il ya bien l'username et le mdp écrit.
$query = mysql_query("select * from login where password='$password' AND username='$username'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user']=$username; // initialisation de la session
header("location: profile.php"); // Redirection vers une autre page
} else {
$error = "Username or Password is invalid";
}
mysql_close($connection); // Fermer la connexion
}
}
?>
Etttttttttttttttttttttttttt du profil.php :
PHP:
<?php
require('session.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>Votre page d'accueil</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="profile">
<b id="welcome">Bienvenue : <i><?php echo $login_session; ?></i></b>
<b id="logout"><a href="logout.php">Déconnexion</a></b>
</div>
</body>
</html>
Celle du session.php :
PHP:
<?php
// Etablire la connection avec le serveur en passant par le server_name, user_id et password dans les paramètre.
$connection = mysql_connect("localhost", "root", "");
// Séléctionné la db
$db = mysql_select_db("company", $connection);
session_start();// Start la session
// Stockage de la session
$user_check=$_SESSION['login_user'];
// SQL Query pour récupérer des informations complètes de l'utilisateur
$ses_sql=mysql_query("select username from login where username='$user_check'", $connection);
$row = mysql_fetch_assoc($ses_sql);
$login_session =$row['username'];
if(!isset($login_session)){
mysql_close($connection); // Fermer la connexion
header('Location: index.php'); // Redirection vers la page d'acceuil
}
?>
Du logout.php :
PHP:
<?php
session_start();
if(session_destroy()) // Détruitre toutes la session.
{
header("Location: index.php"); // Redirection vers la page d'acceuil
?>
Code à mettre dans la base SQL :
Code:
CREATE DATABASE company;
CREATE TABLE login(
id int(10) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY (id)
)
Eeeeetttt du style.css
Code:
@import http://fonts.googleapis.com/css?family=Raleway;
/*----------------------------------------------
CSS Settings For HTML Div ExactCenter
------------------------------------------------*/
#main {
width:960px;
margin:50px auto;
font-family:raleway
}
span {
color:red
}
h2 {
background-color:#FEFFED;
text-align:center;
border-radius:10px 10px 0 0;
margin:-10px -40px;
padding:15px
}
hr {
border:0;
border-bottom:1px solid #ccc;
margin:10px -40px;
margin-bottom:30px
}
#login {
width:300px;
float:left;
border-radius:10px;
font-family:raleway;
border:2px solid #ccc;
padding:10px 40px 25px;
margin-top:70px
}
input[type=text],input[type=password] {
width:99.5%;
padding:10px;
margin-top:8px;
border:1px solid #ccc;
padding-left:5px;
font-size:16px;
font-family:raleway
}
input[type=submit] {
width:100%;
background-color:#FFBC00;
color:#fff;
border:2px solid #FFCB00;
padding:10px;
font-size:20px;
cursor:pointer;
border-radius:5px;
margin-bottom:15px
}
#profile {
padding:50px;
border:1px dashed grey;
font-size:20px;
background-color:#DCE6F7
}
#logout {
float:right;
padding:5px;
border:dashed 1px gray
}
a {
text-decoration:none;
color:#6495ed
}
i {
color:#6495ed
}


J'ai pris beaucoup de temps à faire ce tuto donc j’espère qu'il vous plaira !

Skrayze.
 
Dernière édition:
Salut à tous c'est Skrayze,

On se retrouve pour la V2 de mon formulaire de connexion.

Passons au index.php :
PHP:
<?php
include('login.php'); // Inclure le login.php

if(isset($_SESSION['login_user'])){
header("location: profile.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test - Connexion</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="main">
<h1>Test</h1>
<div id="login">
<h2>Page de connexion</h2>
<form action="" method="post">
<label>UserName :</label>
<input id="name" name="username" placeholder="username" type="text">
<label>Password :</label>
<input id="password" name="password" placeholder="**********" type="password">
<input name="submit" type="submit" value=" Login ">
<span><?php echo $error; ?></span>
</form>
</div>
</div>
</body>
</html>

Le code du login.php
PHP:
<?php
session_start(); // Start la session
$error=''; // Variable pour stocker les message d'erreur
if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else
{
// Définir $username et $password
$username=$_POST['username'];
$password=$_POST['password'];
// Etablire la connection avec le serveur en passant par le server_name, user_id et password dans les paramètre.
$connection = mysql_connect("localhost", "root", "");
// Pour protéger la base de données des injections
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
// Selectionné la bd
$db = mysql_select_db("company", $connection);
// Analysé la db pour voir s'il ya bien l'username et le mdp écrit.
$query = mysql_query("select * from login where password='$password' AND username='$username'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user']=$username; // initialisation de la session
header("location: profile.php"); // Redirection vers une autre page
} else {
$error = "Username or Password is invalid";
}
mysql_close($connection); // Fermer la connexion
}
}
?>
Etttttttttttttttttttttttttt du profil.php :
PHP:
<?php
include('session.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>Votre page d'accueil</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="profile">
<b id="welcome">Bienvenue : <i><?php echo $login_session; ?></i></b>
<b id="logout"><a href="logout.php">Déconnexion</a></b>
</div>
</body>
</html>
Celle du session.php :
PHP:
<?php
// Etablire la connection avec le serveur en passant par le server_name, user_id et password dans les paramètre.
$connection = mysql_connect("localhost", "root", "");
// Séléctionné la db
$db = mysql_select_db("company", $connection);
session_start();// Start la session
// Stockage de la session
$user_check=$_SESSION['login_user'];
// SQL Query pour récupérer des informations complètes de l'utilisateur
$ses_sql=mysql_query("select username from login where username='$user_check'", $connection);
$row = mysql_fetch_assoc($ses_sql);
$login_session =$row['username'];
if(!isset($login_session)){
mysql_close($connection); // Fermer la connexion
header('Location: index.php'); // Redirection vers la page d'acceuil
}
?>
Du logout.php :
PHP:
<?php
session_start();
if(session_destroy()) // Détruitre toutes la session.
{
header("Location: index.php"); // Redirection vers la page d'acceuil
?>
Code à mettre dans la base SQL :
Code:
CREATE DATABASE company;
CREATE TABLE login(
id int(10) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY (id)
)
Eeeeetttt du style.css
Code:
@import http://fonts.googleapis.com/css?family=Raleway;
/*----------------------------------------------
CSS Settings For HTML Div ExactCenter
------------------------------------------------*/
#main {
width:960px;
margin:50px auto;
font-family:raleway
}
span {
color:red
}
h2 {
background-color:#FEFFED;
text-align:center;
border-radius:10px 10px 0 0;
margin:-10px -40px;
padding:15px
}
hr {
border:0;
border-bottom:1px solid #ccc;
margin:10px -40px;
margin-bottom:30px
}
#login {
width:300px;
float:left;
border-radius:10px;
font-family:raleway;
border:2px solid #ccc;
padding:10px 40px 25px;
margin-top:70px
}
input[type=text],input[type=password] {
width:99.5%;
padding:10px;
margin-top:8px;
border:1px solid #ccc;
padding-left:5px;
font-size:16px;
font-family:raleway
}
input[type=submit] {
width:100%;
background-color:#FFBC00;
color:#fff;
border:2px solid #FFCB00;
padding:10px;
font-size:20px;
cursor:pointer;
border-radius:5px;
margin-bottom:15px
}
#profile {
padding:50px;
border:1px dashed grey;
font-size:20px;
background-color:#DCE6F7
}
#logout {
float:right;
padding:5px;
border:dashed 1px gray
}
a {
text-decoration:none;
color:#6495ed
}
i {
color:#6495ed
}


J'ai pris beaucoup de temps à faire ce tuto donc j’espère qu'il vous plaira !

Skrayze.
:love:
 
screen de a quoi ça ressemble?
 
Il n'est vraiment pas conseillé d'utiliser ta méthode avec mysql_query et mysql_connect.
Certains hébergeurs ne prennent plus ces fonctions.

Il faut passer en PDO, mysql_connect c'est du passé ! ;)
 
Met des screens :) + utilise pdo comme dit plus haut :)
 
Tu n'expliques rien aux codes et mysql_ est obsolète.
 
Je trouve ca bien de vouloir aider les gens, vraiment ! :ok:

Cependant, ton code est vraiment pas propre et obsolète.. Pour te montrer je vais prendre le "index.php"

Code:
<?php
include('login.php'); // Inclure le login.php

Include ?
Tu es au courant que si le fichier login.php n'existe pas, l'instruction include va juste envoyé une erreur et le script continuera comme si de rien n'était..
Donc rien que ça, ça peut poser de grave problème de sécurité, utilise require à la place.

Code:
if(isset($_SESSION['login_user'])){
header("location: profile.php");
}
?>
Tu regardes juste si la variable est défini ?
Il faut aussi vérifier que le pseudo existe bien, et s'il n'est pas ban/supprimé de la base de donnée.
Bref encore un pb de sécurité..

Et comme les autres l'ont dit, mysql_connect ne dois plus être utilisé !
De plus dans le logout.php, il manque une accolade de fin..

Et pourquoi tout le code n'est pas bien formaté ? Pas de tabulation, d'espace, tout est collé...
 
Je trouve ca bien de vouloir aider les gens, vraiment ! :ok:

Cependant, ton code est vraiment pas propre et obsolète.. Pour te montrer je vais prendre le "index.php"

Code:
<?php
include('login.php'); // Inclure le login.php

Include ?
Tu es au courant que si le fichier login.php n'existe pas, l'instruction include va juste envoyé une erreur et le script continuera comme si de rien n'était..
Donc rien que ça, ça peut poser de grave problème de sécurité, utilise require à la place.

Code:
if(isset($_SESSION['login_user'])){
header("location: profile.php");
}
?>
Tu regardes juste si la variable est défini ?
Il faut aussi vérifier que le pseudo existe bien, et s'il n'est pas ban/supprimé de la base de donnée.
Bref encore un pb de sécurité..

Et comme les autres l'ont dit, mysql_connect ne dois plus être utilisé !
De plus dans le logout.php, il manque une accolade de fin..

Et pourquoi tout le code n'est pas bien formaté ? Pas de tabulation, d'espace, tout est collé...
Donc pour le PDO je peut utiliser : pdo_connect ? et pour le code, quand je copie/colle les espaces n'étais pas pris en compte....
Je suis vraiment désoler du code, je vais rectifié sa.
 
Des screens seraient cool aussi..
 
Salut à tous c'est Skrayze,

On se retrouve pour la V2 de mon formulaire de connexion.

Passons au index.php :
PHP:
<?php
require('login.php'); // Inclure le login.php

if(isset($_SESSION['login_user'])){
header("location: profile.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Test - Connexion</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="main">
<h1>Test</h1>
<div id="login">
<h2>Page de connexion</h2>
<form action="" method="post">
<label>UserName :</label>
<input id="name" name="username" placeholder="username" type="text">
<label>Password :</label>
<input id="password" name="password" placeholder="**********" type="password">
<input name="submit" type="submit" value=" Login ">
<span><?php echo $error; ?></span>
</form>
</div>
</div>
</body>
</html>

Le code du login.php
PHP:
<?php
session_start(); // Start la session
$error=''; // Variable pour stocker les message d'erreur
if (isset($_POST['submit'])) {
if (empty($_POST['username']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else
{
// Définir $username et $password
$username=$_POST['username'];
$password=$_POST['password'];
// Etablire la connection avec le serveur en passant par le server_name, user_id et password dans les paramètre.
$connection = mysql_connect("localhost", "root", "");
// Pour protéger la base de données des injections
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
// Selectionné la bd
$db = mysql_select_db("company", $connection);
// Analysé la db pour voir s'il ya bien l'username et le mdp écrit.
$query = mysql_query("select * from login where password='$password' AND username='$username'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user']=$username; // initialisation de la session
header("location: profile.php"); // Redirection vers une autre page
} else {
$error = "Username or Password is invalid";
}
mysql_close($connection); // Fermer la connexion
}
}
?>
Etttttttttttttttttttttttttt du profil.php :
PHP:
<?php
require('session.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>Votre page d'accueil</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="profile">
<b id="welcome">Bienvenue : <i><?php echo $login_session; ?></i></b>
<b id="logout"><a href="logout.php">Déconnexion</a></b>
</div>
</body>
</html>
Celle du session.php :
PHP:
<?php
// Etablire la connection avec le serveur en passant par le server_name, user_id et password dans les paramètre.
$connection = mysql_connect("localhost", "root", "");
// Séléctionné la db
$db = mysql_select_db("company", $connection);
session_start();// Start la session
// Stockage de la session
$user_check=$_SESSION['login_user'];
// SQL Query pour récupérer des informations complètes de l'utilisateur
$ses_sql=mysql_query("select username from login where username='$user_check'", $connection);
$row = mysql_fetch_assoc($ses_sql);
$login_session =$row['username'];
if(!isset($login_session)){
mysql_close($connection); // Fermer la connexion
header('Location: index.php'); // Redirection vers la page d'acceuil
}
?>
Du logout.php :
PHP:
<?php
session_start();
if(session_destroy()) // Détruitre toutes la session.
{
header("Location: index.php"); // Redirection vers la page d'acceuil
?>
Code à mettre dans la base SQL :
Code:
CREATE DATABASE company;
CREATE TABLE login(
id int(10) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY (id)
)
Eeeeetttt du style.css
Code:
@import http://fonts.googleapis.com/css?family=Raleway;
/*----------------------------------------------
CSS Settings For HTML Div ExactCenter
------------------------------------------------*/
#main {
width:960px;
margin:50px auto;
font-family:raleway
}
span {
color:red
}
h2 {
background-color:#FEFFED;
text-align:center;
border-radius:10px 10px 0 0;
margin:-10px -40px;
padding:15px
}
hr {
border:0;
border-bottom:1px solid #ccc;
margin:10px -40px;
margin-bottom:30px
}
#login {
width:300px;
float:left;
border-radius:10px;
font-family:raleway;
border:2px solid #ccc;
padding:10px 40px 25px;
margin-top:70px
}
input[type=text],input[type=password] {
width:99.5%;
padding:10px;
margin-top:8px;
border:1px solid #ccc;
padding-left:5px;
font-size:16px;
font-family:raleway
}
input[type=submit] {
width:100%;
background-color:#FFBC00;
color:#fff;
border:2px solid #FFCB00;
padding:10px;
font-size:20px;
cursor:pointer;
border-radius:5px;
margin-bottom:15px
}
#profile {
padding:50px;
border:1px dashed grey;
font-size:20px;
background-color:#DCE6F7
}
#logout {
float:right;
padding:5px;
border:dashed 1px gray
}
a {
text-decoration:none;
color:#6495ed
}
i {
color:#6495ed
}


J'ai pris beaucoup de temps à faire ce tuto donc j’espère qu'il vous plaira !

Skrayze.
Merci du tuto, mais, "mysql_" c'est dépsassé, maintenant c'est PDO, puis sa ne sert a rien de faire un tuto si on explique pas le code, car le lecteur, il va copier betement le code, comme un ane, sa rien comprendre a se qu'il copie ;)
Mais merci quand meme ;)
 
Donc pour le PDO je peut utiliser : pdo_connect ? et pour le code, quand je copie/colle les espaces n'étais pas pris en compte....
Je suis vraiment désoler du code, je vais rectifié sa.

Ok pour les espaces, pense alors à mettre le code sur pastebin ou autre pour garder l'indentation :)
Tu peux utiliser pour mettre en forme automatiquement (pense à tester le code après quand même)

Pour PDO, c'est totalement différent de mysql, prend ce cours il est assez simple:
 
Merci du tuto, mais, "mysql_" c'est dépsassé, maintenant c'est PDO, puis sa ne sert a rien de faire un tuto si on explique pas le code, car le lecteur, il va copier betement le code, comme un ane, sa rien comprendre a se qu'il copie ;)
Mais merci quand meme ;)
C'est à lui de lire les commentaires du code. Après il fait ce qu'il veu.
 
Merci du partage! :D
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut