nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
27 oct. 2007 à 12:02
Bling 182
Messages postés510Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention 5 juillet 2009
-
27 oct. 2007 à 23:03
Bonjour tout le monde, mon problème est le suivant :
j'ai une page connection.php qui permet de se connecter et je voudrai que si l'utilisateur est recconu $_SESSION['pseudo'] soit égal au pseudo inscrit dans la zone de texte et que $_SESSION['password'] soit égal au mot de passe entré dans la zone de texte et que sinon $_SESSION['pseudo'] et $_SESSION['password'] soit tout les deux égal à 0. voici mon code :
<?php
session_start();
if ( !isset($_POST['login']) || !isset($_POST['pass']) ) // On Vérifie si le formulaire à été envoyé... sinon on l'affiche.
{
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Connexion</title>
<meta http-equiv="Content-Type"content="text/html; charset=iso-8859-1"/>
<link rel="stylesheet"media="screen"type="text/css"title="page1style"href="design/page1style.css"/>
</head>
<?
exit(); // Sécurité pour le script ==> Si le formulaire n'a pas été envoyé, le script s'arrètera ici !
}
else
{
// On référence les variables, pour pouvoir mieux les utiliser...
$login = trim($_POST['login']);
$pass = trim($_POST['pass']);
$link = mysql_connect ('localhost' ,'nicomilville' ,'' ); // on se connect a la base de données
$sql = "SELECT * FROM profil WHERE `pseudo`='$login' AND `mot de passe`='$pass'"; // on prépare la requette
$result = mysql_db_query("programmeur_db",$sql,$link); //on execute la requette
// On crée la condition, toujours pour une question de sécurité, on commence par l'inverse de ce qu'on souhaite !
if (mysql_num_rows($result)<1) // Si les infos fournis ne sont pas bon(la requette na renvoyée aucun résultat).
{
$_SESSION['pseudo'] = 0;
$_SESSION['password'] = 0;
?>
exit(); // Même chose que tout à l'heure...
}
else //sinon c'est bon
{
//fin de la partie modifiée
$_SESSION['pseudo'] = $_POST['login'];
$_SESSION['password'] = $_POST['pass'];
?>
Voulez-vous :
<li class="administration">[gerer_news.php Gérer les news !]</li>
<li class="administration">[gerer_tutoriaux.php Gérer les tutoriaux !]</li>
<li class="administration">[gerer_compte.php Gérer les comptes !]</li>
<li class="administration">[gerer_site.php Gérer le site !]</li>
<li class="administration">[gerer_forum.php Gérer le forum !]</li>
<li class="administration">[gerer_chat.php Gérer le chat !]</li>
Ou :
<li>[index.php Retourner à l'acueil]</li>
</html>
<?php
};
?>
Et comment faire pour faire une condition si l'utilisateur est connecter on peut accéder à la page sinon ça affiche un message du genre vous n'êtes pas connecté
Bling 182
Messages postés510Date d'inscriptionlundi 27 novembre 2006StatutMembreDernière intervention 5 juillet 20093 27 oct. 2007 à 23:03
C'est mignon de mettre 42 fois le même code html dans une page avec juste quelques détails qui changent...
Ensuite, stocker un mot de passe en clair dans une variable $_SESSION c'est _vraiment_ pas propre. A la limite, un hash md5.
"if (mysql_num_rows($result)<1)" perso j'utilise un if (mysql_num_rows($result) != 1), vu que le couple username/mot de passe est censé me renvoyer uniquement 1 résultat (sinon, problème d'incohérence dans ta base...)
Ton code n'arrivera jamais dans la partie "if ($_POST['nom'] == "admin"...) de plus, ton accolade juste après le if est mal placée.
Finalement, ya pas de ; après une accolade fermante.
Sinon ton code pour ton histoire de session à l'air ok (chuis pas en état de debugger ce soir).