Créer un compte
Connexion

Erreur espace membre du forum

Pour créer et répondre aux sujets, vous devez être connecté.
Pages: 1
Auteur Message
diomos
01/09/2013 à 10:22:47
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Bonjour à tous,

J'ai voulu mettre le forum (Scripts et tuto) pour mon site au lieu de celui actuel, mais quand je valide sans qu'aucune saisie n'ait faite, voilà le message que j'ai !
Image

Par contre, cela fonctionne bien sur Support du Web en exemple :
Image

Qu'est-ce que dois faire pour ne plus avoir cette erreur ?

Merci d'avance de votre aide.

PS : j'essaie en local avec EasyPhp. J'ai mis la base et les tables dans PhpMyAdmin.

Cordialement.
Diomos

Cordialement.

Diomos

Image
Imad
01/09/2013 à 17:17:46
Imad
Membre
Ajoute une condition.  :D


if(empty($username) OR empty($motdepasse) //$motdepasse doit être modifier selon ta variable de mot de passe.
{
echo 'Le champs nom d\'utilisateur ne peut pas être vide.';
}

Elle permet d'effacer les erreurs ligne 110, et d'afficher un message si le champs 'nom d'utilisateur' ou le champs 'mot de passe' sont vide.

Mais à mon avis, le problème vient surtout du fait que tu n'initialise pas tes variables userid et username (en gros tu doit les récupérer dans ta base de donné grâce à l'attribut SELECT.

Colle le code de ta page que je vois à quoi correspondent tes lignes 102 et 110, et ta page de connexion à ta BDD. Je pourrais te corriger plus facilement de cette manière qu'avec des screens.  :-.

diomos
01/09/2013 à 18:34:26
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Bonjour et merci de ta réponse.

Cette partie de code que tu m'as donné, c'est dans quel fichier que je dois le mettre ?

Et pour terminer, voici les lignes qui provoquent cette erreur !
Login.php
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du Forum</a> &gt; Connexion
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)

Peut-être que tu comprendras mieux parce que là, je patauge !  :(

Cordialement.

Diomos

Image
Imad
01/09/2013 à 19:10:02
Imad
Membre
Remplace cette portion de code par:


<div class="box_right">
<a href="list_pm.php">Vos messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>

Par:

<div class="box_right">

<?php
if(isset($_SESSION['username']) // Si le membre est connecté
{
?>
<a href="list_pm.php">Vos messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
<?php
}
else
{
echo 'Vous n\'êtes pas connecté, impossible d\'afficher le nombre de message';
}
?>
</div>

Ceci devrait te supprimer ton erreur de la ligne 110, le problème est que tu n'es pas connecté mais que tu demande d'afficher les messages si le membre est connecté... ¨

Pour le $_SESSION['userid'], le problème est le même (ligne 102), la session ('userid') n'existe pas, il faut que tu l'initialise lorsque le formulaire de connexion est envoyé, met moi le code entier de ta page login.php et je te le fais.  :)


diomos
02/09/2013 à 02:14:53
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Quote
Pour le $_SESSION['userid'], le problème est le même (ligne 102), la session ('userid') n'existe pas, il faut que tu l'initialise lorsque le formulaire de connexion est envoyé, met moi le code entier de ta page login.php et je te le fais.
Merci, c'est sympa de ta part !  :0

Voici le fichier Login.php :
<?php
//Cette page permet aux utilisateurs de se connecter ou de se deconnecter
include('config.php');
if(isset($_SESSION['username']))
{
unset($_SESSION['username'], $_SESSION['userid']);
setcookie('username', '', time()-100);
setcookie('password', '', time()-100);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Connexion</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</div>
<div class="message">Vous avez bien &eacute;t&eacute; d&eacute;connect&eacute;.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
}
else
{
$ousername = '';
if(isset($_POST['username'], $_POST['password']))
{
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
if($dn['password']==$password and mysql_num_rows($req)>0)
{
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
if(isset($_POST['memorize']) and $_POST['memorize']=='yes')
{
$one_year = time()+(60*60*24*365);
setcookie('username', $_POST['username'], $one_year);
setcookie('password', sha1($password), $one_year);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Connexion</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</div>
<div class="message">Vous avez bien &eacute;t&eacute; connect&eacute;. Vous pouvez acc&eacute;der &agrave; votre espace membre.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
}
else
{
$form = true;
$message = 'La combinaison que vous avez entr&eacute; n\'est pas bonne.';
}
}
else
{
$form = true;
}
if($form)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Connexion</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</div>
<?php
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
?>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du Forum</a> &gt; Connexion
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<form action="login.php" method="post">
Veuillez entrer vos identifiants pour vous connecter:<br />
<div class="login">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<label for="memorize">Se souvenir</label><input type="checkbox" name="memorize" id="memorize" value="yes" /><br />
<input type="submit" value="Connection" />
</div>
</form>
</div>
<?php
}
}
?>
<div class="foot"><a href="http://www.supportduweb.com/scripts_tutoriaux-code-source-89-simple-php-forum-script-forum-en-php-facile-simple-script-code-telecharger-forum-php-gratuit-mysql.html">Simple PHP Forum Script</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html><size value="6"></size>


Cordialement.

Diomos

Image
Imad
02/09/2013 à 21:33:49
Imad
Membre
Oh normal que ça ne fonctionne pas  :0

En gros ton code fais ceci, si l'utilisateur est connecté, on le déconnecte: ligne 4 à 24.

Sinon, s'il poste le formulaire, on vérifie que les données, correspondent à une entrée dans la base de donnée, et s'il le désire on ajoute un cookie et on lui dit qu'il est bien connecté: ligne 25 à 69.

Sinon, la combinaison n'est pas bonne donc on ne crée pas la session, on affiche les message du membre et le formulaire de connexion: ligne 76 à 126.

Le problème est donc: On affiche les message du membre, or que celui-ci n'est pas connecté.

Il s'agit juste d'un mauvais placement dans ton code de l'affichage des messages.

Voici ce que je propose:

<?php
//Cette page permet aux utilisateurs de se connecter ou de se deconnecter
include('config.php');
if(isset($_SESSION['username']))
{
unset($_SESSION['username'], $_SESSION['userid']);
setcookie('username', '', time()-100);
setcookie('password', '', time()-100);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Connexion</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</div>
<div class="message">Vous avez bien &eacute;t&eacute; d&eacute;connect&eacute;.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<?php
}
else
{
$ousername = '';
if(isset($_POST['username'], $_POST['password']))
{
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
if($dn['password']==$password and mysql_num_rows($req)>0)
{
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
if(isset($_POST['memorize']) and $_POST['memorize']=='yes')
{
$one_year = time()+(60*60*24*365);
setcookie('username', $_POST['username'], $one_year);
setcookie('password', sha1($password), $one_year);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Connexion</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</div>
<div class="message">Vous avez bien &eacute;t&eacute; connect&eacute;. Vous pouvez acc&eacute;der &agrave; votre espace membre.<br />
<a href="<?php echo $url_home; ?>">Accueil</a></div>
<div class="content">
<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>
<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du Forum</a> &gt; Connexion
</div>
<div class="box_right">
<a href="list_pm.php">Vos messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>
<div class="clean"></div>
</div>
<?php
}
else
{
$form = true;
$message = 'La combinaison que vous avez entr&eacute; n\'est pas bonne.';
}
}
else
{
$form = true;
}
if($form)
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
<title>Connexion</title>
</head>
<body>
<div class="header">
<a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Espace Membre" /></a>
</div>
<?php
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
?>
<form action="login.php" method="post">
Veuillez entrer vos identifiants pour vous connecter:<br />
<div class="login">
<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<label for="memorize">Se souvenir</label><input type="checkbox" name="memorize" id="memorize" value="yes" /><br />
<input type="submit" value="Connection" />
</div>
</form>
</div>
<?php
}
}
?>
<div class="foot"><a href="http://www.supportduweb.com/scripts_tutoriaux-code-source-89-simple-php-forum-script-forum-en-php-facile-simple-script-code-telecharger-forum-php-gratuit-mysql.html">Simple PHP Forum Script</a> - <a href="http://www.supportduweb.com/">Support du Web</a></div>
</body>
</html><size value="6"></size>

Voici ce que cette modification est censé (car je ne l'ai pas testé) faire:

Si l'utilisateur est connecté, on le déconnecte: ligne 4 à 24.

Sinon, s'il poste le formulaire, on vérifie que les données, correspondent à une entrée dans la base de donnée, et s'il le désire on ajoute un cookie et on lui dit qu'il est bien connecté: ligne 25 à 83.

Sinon, la combinaison n'est pas bonne donc on ne crée pas la session, et on affiche le formulaire de connexion: ligne 84 à 126.

Voilà, test ça, et dit moi si cela fonctionne correctement. Ton code est complexe, les nouvelles norme permettent de remplacer la ligne:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

par:

<!DOCTYPE html>
<html>


diomos
03/09/2013 à 12:25:13
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Merci de tes explications, mais mon prb reste d'actualité, bien que tu as modifié certaines parties de code.  :#1:

En effet, si les champs "Nom de l'utilisateur" et "Mot de passe" restent vides et que malgré tout on valide, j'ai toujours la même erreur que j'avais au début.

C'est pas tant gênant, mais ce serait mieux si rien ne se passait !  ;)
Si les champs resteraient vides, il faudrait que rien ne se passe et qu'on reste sur la page de connexion.

Pour ton infos, ce code n'est pas de moi mais a été téléchargé sur Support du Web !  ;)

Cordialement.

Diomos

Image
Imad
03/09/2013 à 21:09:42
Imad
Membre
Le truc c'est que j'ai pas télécharger le code pour le tester vu que je fais mes propres codes.  :D

Je pense à autre chose dans ce cas...

// A placer ligne 29 APRES l'accolade
if(!empty($_POST['username']) or !empty($_POST['password']))
{ // RESTE DU CODE...


//A placer ligne 89 AVANT l'accolade
}
else
{
echo 'Formulaire incomplet';
}

Ce code dis: Si le nom d'utilisateur OU si le mot de passe sont vide, alors on affiche un message.

Celà devrait fonctionné NORMALEMENT...  :-.

Si cette fois ça marche pas, promis je le télécharge !

Edit: Place ce code dans celui que je t'ai fournis plus haut. Pas dans l'ancien que tu avais, sinon les lignes risque de pas être les mêmes.

diomos
04/09/2013 à 11:22:54
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Quote: Imad
Ce code dis: Si le nom d'utilisateur OU si le mot de passe sont vide, alors on affiche un message

C'est vrai que ce que tu m'as donné, je parle de tous ces changements, ça c'est montré efficace !  :#1:

Il faut savoir que j'ai essayé d'adapter les fichiers du forum aux pages de mon site, donc le N° de lignes que tu me donne ne correspondent plus.
Comme j'avais gardé l'original sous la main, je peux ainsi voir où placer ce que tu me donnes.  ;)

Après les modifs que tu m'a données, j'ai essayé et voilà ce qui m'est retourné.
Formulaire incomplet
Notice: Undefined variable: form in G:\___temp\QI98-Legtux_Html-5\forum\login.php on line 235
Comme je te l'ai dit plus haut, les N° de lignes ne correspondent plus tout à fait, aussi, je te mets le code de la ligne incriminée.
<?php
}
else
{
$form = true;
$message = 'La combinaison que vous avez entr&eacute; n\'est pas bonne.';
}
//A placer ligne 223 (ex 89) AVANT l'accolade
}
else
{
echo 'Formulaire incomplet';
}
}
else
{
$form = true;
}
if($form)
{
?>
Ca sa passe à la dernière accolade juste avant la balise de fermeture Php (ligne 20).

C'est peut-être pas grand chose, mais comme tu es beaucoup plus qualifié que moi, je préfère ne toucher à rien pour éviter de faire trop de bêtises.  :-.

A bientôt Imad et merci encore.


Cordialement.

Diomos

Image
Imad
04/09/2013 à 20:38:29
Imad
Membre
Je ne sais pas ce qu'il y a après ta ligne 21, mais dans le cas ou il n'y aurait que du HTML (et pas de php), le fait d'enlevé tes lignes 19 et 20 devrait résoudre le problème.  :-.

En effet la ligne 19 ouvre une condition, sauf que tu ne la referme pas, c'est là le problème.

Dans le cas où il y aurait autres chose (je parle de code php) après ta ligne 21, dans ce cas, même problème qu'auparavant, et il me faudra la page entière pour régler le problème.  :D

diomos
05/09/2013 à 10:51:40
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Quote: Imad
Je ne sais pas ce qu'il y a après ta ligne 21, mais dans le cas ou il n'y aurait que du HTML (et pas de php), le fait d'enlevé tes lignes 19 et 20 devrait résoudre le problème.
On peut dire que tu as l’œil !  :)
En effet, je me suis aperçu de ça... quand j'ai lu ton post.
Mais même si j'enlève ces lignes, il y a toujours une erreur !  :(

Quote: Imad
En effet la ligne 19 ouvre une condition, sauf que tu ne la referme pas, c'est là le problème.
Je ne pense pas qu'il y ait une erreur parce que certainement... ailleurs, il y a la balise fermante.
Parce que si je ferme, ça ne va pas du tout.

Quote: Imad
Dans le cas où il y aurait autres chose (je parle de code php) après ta ligne 21, dans ce cas, même problème qu'auparavant, et il me faudra la page entière pour régler le problème.
Voilà lma partie "allégée" du fichier "login.php".
Je dis allégé parce que j'ai supprimé quelques lignes pour que ça soit un peu plus clair dans ta visualisation et ta recherche !  ;)
<!-- /////////////////////////////////////////////////////// -->
<?php
//Cette page permet aux utilisateurs de se connecter ou de se deconnecter
include('config.php');
if(isset($_SESSION['username']))
{
unset($_SESSION['username'], $_SESSION['userid']);
setcookie('username', '', time()-100);
setcookie('password', '', time()-100);
?>
<!-- /////////////////////////////////////////////////////// -->

<!DOCTYPE html>
<html lang="fr">
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>QI98 - Forum</title>
</head>

<body>
<div id="wrapper"><!-- debut #wrapper -->
<header><!-- debut header --> </header><!-- fin header -->
<nav><!-- debut nav -->
</nav><!-- fin nav -->

<section id="main"><!-- fin #menu-g -->
<section id="content"><!-- début #content -->
<article>

<!-- /////////////////////////////////////////////////////// -->
<div class="message">Vous êtes maintenant déconnecté.<br />
<a href="<?php echo $url_home; ?>">[ Accueil du forum ]</a></div>
<!-- <a href="../">[ Accueil du site ]</a></div> -->
<?php
}
else
{
$ousername = '';
if(isset($_POST['username'], $_POST['password']))
{
// A placer ligne 95 APRES l'accolade
if(!empty($_POST['username']) or !empty($_POST['password']))
{ // RESTE DU CODE...
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
if($dn['password']==$password and mysql_num_rows($req)>0)
{
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
if(isset($_POST['memorize']) and $_POST['memorize']=='yes')
{
$one_year = time()+(60*60*24*365);
setcookie('username', $_POST['username'], $one_year);
setcookie('password', sha1($password), $one_year);
}
?>
<!-- /////////////////////////////////////////////////////// -->

<!--
Si je ferme l'article, il y a erreur !!!
</article>
</section>
[...]
-->

<!DOCTYPE html>
<html lang="fr">
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>QI98 - Forum</title>
</head>

<body>
<div id="wrapper"><!-- debut #wrapper -->
<header><!-- debut header --> </header><!-- fin header -->
<nav><!-- debut nav -->
</nav><!-- fin nav -->

<section id="main"><!-- fin #menu-g -->
<section id="content"><!-- début #content -->
<article>

<!-- /////////////////////////////////////////////////////// -->
<div class="message">Vous avez bien été connecté. Vous pouvez accéder au forum.<br />
<a href="<?php echo $url_home; ?>">[ Accueil du forum ]</a></div>
<!-- <a href="../">[ Accueil du site ]</a></div> -->

<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>

<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du Forum</a> &gt; Connexion
</div>

<div class="box_right">
<a href="list_pm.php">Vos messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>

<div class="clean"></div>
</div>

<?php
}
else
{
$form = true;
$message = 'La combinaison que vous avez entrée est invalide.';
}
} // **************** A placer ligne 222 (ex 89) AVANT l'accolade *******************
else
{
echo 'Formulaire incomplet';
}
}
else
{
$form = true;
}
if($form)
{
?>
<!-- /////////////////////////////////////////////////////// -->

<!--
Si je ferme l'article, il y a erreur !!!
</article>
</section>
[...]
-->

<!DOCTYPE html>
<html lang="fr">
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>QI98 - Forum</title>
</head>

<body>
<div id="wrapper"><!-- debut #wrapper -->
<header><!-- debut header --> </header><!-- fin header -->
<nav><!-- debut nav -->
</nav><!-- fin nav -->

<section id="main"><!-- fin #menu-g -->
<section id="content"><!-- début #content -->
<article>

<!-- ///////////////////////////////////////////////////// -->
<div class="cadre gradient1">
<br />
<h2 class="centrer">Accès au Forum</h2>
<?php
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
?>
<form action="login.php" method="post">
Veuillez entrer vos identifiants pour vous connecter:
<br /><br />
<div class="login">
<label for="username">Nom d'utilisateur :</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" />
<br /><br />
<label for="password">Mot de passe :</label><input type="password" name="password" id="password" />
<br /><br />
<label for="memorize">Se souvenir :</label><input type="checkbox" name="memorize" id="memorize" value="yes" />
<br /><br />
<input class="" type="submit" value="Connection" />
</div>
</form>
<?php
}
}
?>
<br />
</div>
<!-- ///////////////////////////////////////////////////// -->

</article>
</section><!-- fin #content -->
</body>
</html>

J'espère que tu verras mieux parce que là, à force de rechercher, de modifier, je vois de moins en moins.

A bientôt Imad et merci de ton aide.


Cordialement.

Diomos

Image
Imad
05/09/2013 à 23:37:56
Imad
Membre
Bon, j'ai fait pas mal de modification au niveau de l'architecture de ton site, il n'y a maintenant qu'un seul DOCTYPE, un seul <nav>, un seul <article> etc. Ce devrait être plus simple et normalement ça fonctionne (je dis bien normalement).

Par ailleurs, tu devrais faire des includes (au moins pour les menus) sa t'évitera d'avoir à modifier toutes tes pages si tu décide de changer ton menu.

J'ai supprimer le <div> id="wrapper"> parce que j'ai pas trouver le </div>.  :-.

Bref, ceci étant dis, j'ai modifier aussi le php, et ça donne ça. J'espère que t'arrivera à implémenter ce nouveau code.

<?php
//Cette page permet aux utilisateurs de se connecter ou de se deconnecter
include('config.php');
?>

<!DOCTYPE html>
<html lang="fr">
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>QI98 - Forum</title>
</head>

<body>

<header><!-- debut header --> </header><!-- fin header -->
<nav><!-- debut nav -->
</nav><!-- fin nav -->

<section id="main"><!-- fin #menu-g -->
<section id="content"><!-- début #content -->
<article>
<?php
if(isset($_SESSION['username']))
{
unset($_SESSION['username'], $_SESSION['userid']);
setcookie('username', '', time()-100);
setcookie('password', '', time()-100);
?>
<div class="message">Vous êtes maintenant déconnecté.<br />
<a href="<?php echo $url_home; ?>">[ Accueil du forum ]</a></div>
<!-- <a href="../">[ Accueil du site ]</a></div> -->
<?php
}
else
{
$ousername = '';
if(isset($_POST['username'], $_POST['password']))
{
// A placer ligne 95 APRES l'accolade
if(!empty($_POST['username']) or !empty($_POST['password']))
{ // RESTE DU CODE...
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
if($dn['password']==$password and mysql_num_rows($req)>0)
{
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
if(isset($_POST['memorize']) and $_POST['memorize']=='yes')
{
$one_year = time()+(60*60*24*365);
setcookie('username', $_POST['username'], $one_year);
setcookie('password', sha1($password), $one_year);
}
?>
<div class="message">Vous avez bien été connecté. Vous pouvez accéder au forum.<br />
<a href="<?php echo $url_home; ?>">[ Accueil du forum ]</a></div>
<!-- <a href="../">[ Accueil du site ]</a></div> -->

<?php
$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"'));
$nb_new_pm = $nb_new_pm['nb_new_pm'];
?>

<div class="box">
<div class="box_left">
<a href="<?php echo $url_home; ?>">Index du Forum</a> &gt; Connexion
</div>

<div class="box_right">
<a href="list_pm.php">Vos messages(<?php echo $nb_new_pm; ?>)</a> - <a href="profile.php?id=<?php echo $_SESSION['userid']; ?>"><?php echo htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8'); ?></a> (<a href="login.php">Déconnexion</a>)
</div>

<div class="clean"></div>
</div>

<?php
}
else
{
$form = true;
$message = 'La combinaison que vous avez entrée est invalide.';
}
} // **************** A placer ligne 222 (ex 89) AVANT l'accolade *******************
else
{
$form = true;
$message = 'Formulaire incomplet.';
}
}
else
{
$form = true;
?>


<div class="cadre gradient1">
<br />
<h2 class="centrer">Accès au Forum</h2>
<?php
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
?>
<form action="login.php" method="post">
Veuillez entrer vos identifiants pour vous connecter:
<br /><br />
<div class="login">
<label for="username">Nom d'utilisateur :</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" />
<br /><br />
<label for="password">Mot de passe :</label><input type="password" name="password" id="password" />
<br /><br />
<label for="memorize">Se souvenir :</label><input type="checkbox" name="memorize" id="memorize" value="yes" />
<br /><br />
<input class="" type="submit" value="Connection" />
</div>
</form>
<?php
}
}
?>
<br />
</div>
<!-- ///////////////////////////////////////////////////// -->

</article>
</section>
</section><!-- fin #content -->
</body>
</html>

Regarde surtout au niveau de la ligne 102, si ça ne fonctionne toujours pas, essaye de la remplacer par:

elseif($form = true)
Puis d'ajouter à la ligne 131 (avant l'accolade):

else{$form;}
Mais comme je l'ai dit, le premier code devrait fonctionné. Si ce n'est pas le cas, alors faudra encore me dire où ça bloque (j'aime pas ne pas trouver).  :D



diomos
06/09/2013 à 15:54:46
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Quote: Imad
Bon, j'ai fait pas mal de modification au niveau de l'architecture de ton site, il n'y a maintenant qu'un seul DOCTYPE, un seul <nav>, un seul <article> etc. Ce devrait être plus simple et normalement ça fonctionne (je dis bien normalement).
 :0
On peut dire que tu es plus simple que moi !  ;)

Quote: Imad
Par ailleurs, tu devrais faire des includes (au moins pour les menus) sa t'évitera d'avoir à modifier toutes tes pages si tu décide de changer ton menu.
Si je ne fais pas des includes pour les menus, c'est pour la bonne est simple raison que les liens amènent à différents répertoires.
Alors suivant où l'on est, le chemin absolu ne sera pas le même pour tous !
J'ai peut-être du mal à me faire comprendre.  :-.
Par exemple :
Racine
...
Rep1
...
Rep2
...
Rep3
....
Rep4
....
Si je suis dans Rep2 et que je veuille aller dans Rep4, le chemin ne sera pas pareil que si j'étais à la Racine ou ailleurs pourquoi pas.
Les seuls "includes" que j'utilise, c'est pour des fichiers qui ne demandent aucun changement.
C'est pour ça que je l'utilise pas pour les menus.

Quote: Imad
J'ai supprimer le <div> id="wrapper"> parce que j'ai pas trouver le </div>. :-.
Comme je te l'avais dit pour le code que je t'ai envoyé, j'avais mis que le strict minimum, sinon, il aurait été beaucoup trop long.
Et le <div id="wrapper"> sert pour la mise en forme de toute la page... donc, nécessaire.
Si tu n'as pas trouvé la balise fermente "</div>", c'est probablement un mauvais copier/coller de ma part !  :p
En fait, elle est bien présente :
Quote
</aside><!-- footer-segment -->
</section><!-- footer-area -->
</footer>

</div><!-- fin #wrapper -->
</body>
</html>
Quote: Imad
Bref, ceci étant dis, j'ai modifier aussi le php, et ça donne ça. J'espère que t'arrivera à implémenter ce nouveau code.
Je vais bien étudier ton néo code et ferais les modifs que tu me préconises.
En espérant vraiment que a marche parce que ça commence à fumer là-haut.


Quote: Imad
Mais comme je l'ai dit, le premier code devrait fonctionné. Si ce n'est pas le cas, alors faudra encore me dire où ça bloque (j'aime pas ne pas trouver).
Je ne manquerais pas de t'informer des suites d'exécution de ton nouveau code.

Merci et à bientôt.

Cordialement.

Diomos

Image
Imad
06/09/2013 à 19:44:47
Imad
Membre
Quote: Diomos
En espérant vraiment que a marche parce que ça commence à fumer là-haut.

Hé hé, j'ai coder un site pendant 4 mois, je me suis aperçu que la mise en forme sous IE était mauvaise et qu'il n'étais pas valide W3C, j'ai tout stopper pour reprendre à zéro  ;( Là ça fumer !

Tiens moi au courant.

PS: QI de 136 selon ton site  :#1:

diomos
06/09/2013 à 23:44:42
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Quote: Imad
Hé hé, j'ai coder un site pendant 4 mois, je me suis aperçu que la mise en forme sous IE était mauvaise et qu'il n'étais pas valide W3C, j'ai tout stopper pour reprendre à zéro ;( Là ça fumer !
C'est vrai que c'est la galère pour que tout aille bien !
Y de quoi s'arracher les cheveux par moment !  ;(
Même si tout est fini, encore faut-il que ça soit valide W3C... Comme tu dis, il faut tout reprendre à 0 !  >:(

Quote: Imad
Tiens moi au courant.
Alors, j'ai un bonne et une mauvaise nouvelle !
En commençant par la bonne, le code que tu m'as envoyé est super léger et pas trop difficile à voir.
Et vient maintenant la mauvaise nouvelle... ton code ne marche pas du tout.  :(
Image

Il serait bien de garder le même que l'original :
Image


Quote: Imad
PS: QI de 136 selon ton site :#1:
Tu sais, c'est du JS et pas trop juste non plus ! En plus comme ça date un peu, 2002 je crois, j'ai un peu perdu la main. :-.

Mon logiciel QI98 v6.51 est nettement plus juste et certainement plus conviviale aussi.
Mais je te remercie beaucoup d'avoir effectué le test... reste à savoir lequel parce qu'il y en a 9 au total sur le site.  :)

Cordialement.

Diomos

Image
Imad
07/09/2013 à 11:49:47
Imad
Membre
Je vais télécharger le forum, et j'essaierai de voir pourquoi ça ne marche pas. C'est bizarre quand même.

Tout mes codes ne contiennent qu'un seul DOCTYPE et ça fonctionne, j'ai peut-être pas bien saisi les fonctions du code, je te redis quand j'en est finis de ce forum.


diomos
07/09/2013 à 19:17:22
Plus tu pédales moins fort et moins tu vas plus vite ! diomos
Membre
Avec certaines fonctions que tu m'as données, le forum, que j'ai essayé en local, fonctionne mieux.

Le seul prb, et ça je trouverai, c'est qu'en l'intégrant à mon site (toujours en local), c'est pas bon pour la mise en page.

A force de coller, supprimer, déplacer, je sais plus très bien où ça en est !

Ne te presse pas parce que j'ai un disk HS, en plus, c'est celui où j'avais fait mes essais.
Heureusement que j'avais une sauvegarde... mais pas trop à jour.

C'est sympa quand même de vouloir y passer du temps.

A+

Cordialement.

Diomos

Image
gaminatorus
26/09/2013 à 17:49:23
gaminatorus
Membre
Je ne sais pas du tout , j'ai un Teamspeak a disposition et un site pour l'entraide Informatique jeux .. le code html php ..
Address:=> ts.xtreme-c4.ca:9904

Password: password620

site web => http://fun-communaute.fr/


A très bientôt ;)

Maathieu24
05/03/2014 à 16:35:25
Maathieu24
Membre
var Maathieu
function


Pages: 1