page login.

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

MbK_

Etudjant
alors me revoila avec ma apge admin.

j'ai fait un tuto sur les pages admin (URL)

et j'ai un probleme. j'utilise le code comme il le dit et j'ai tjs la reponse " Vous avez oublié de remplir un champs. "

:arrow: code table (jai la meme)
Code:
CREATE TABLE tbl_user (
id int(11) NOT NULL auto_increment,
pseudo varchar(63) NOT NULL,
login varchar(8) NOT NULL,
pwd varchar(8) NOT NULL,
PRIMARY KEY (id),
KEY ID_2 (id)
);

:arrow: code auth.php (jai le meme)

Code:
<form action="login.php" method='post'> 
<table align="center" border="0"> 
   <tr> 
     <td>Login :</td> 
     <td><input type="text" name="login" maxlength="250"></td> 
   </tr> 
   <tr> 
     <td>Password</td> 
     <td><input type="password"name="pass" maxlength="10"></td> 
   </tr> 
   <tr> 
     <td colspan="2" align="center"><input type="submit" value="log in"></td> 
   </tr> 
</table> 
</form>
:arrow: code login.php

Code:
<? 
      mysql_connect("sql2.easy-hebergement.net","morback","xxxxxx");
      mysql_select_db("morback"); 

if($login1=='' || $pass1=='') 
    { 
    echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous avez oublié de remplir un champs.</center></font></font></p>'; 
    include('auth.php'); // On inclus le formulaire d'identification 
    exit; 
    } 


$sql = "select pwd from user where login='$login1'"; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

$data = mysql_fetch_array($req); 

if($data['pwd'] != $pass1) 
    { 
    echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Mauvais login / password. Merci de recommencer</center></font></font></p>'; 
    include('auth.php'); // On inclus le formulaire d'identification 
    exit; 
    } 
else 
    { 
    session_start(); 
    $_SESSION['login1'] = $_POST['login1']; 
    $_SESSION['level'] = $_POST['level'];    

    echo "<center><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous êtes bien logué en temps que <b>" . $_SESSION['login1'] . "</b></center></font></font> "; 
    echo "<center><a href=index.php>retour</a><center>"; 
    } 

?>
et ca me revoit, apres avoir rempli les champs et biensur j'ai mi les valeurs dans ma BDD, "Vous avez oublié de remplir un champs."

un probleme ds le code?
 

kokotchY

Elite
1. $login1 et $pass1 ne sont jamais défini
2. Normalement, les noms devraient être login et pass en voyant ton formulaire !
tout en haut de ta page tu mets :

$login1 = (isset($_POST['login']))?$_POST['login']:'';
$pass1 = (isset($_POST['pass']))?$_POST['pass']:'';
Comme cela les variables seront définie !

Ensuite pour l'optimisation :

Code:
$sql = "select pwd from user where login='$login1'"; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

$data = mysql_fetch_array($req); 

if($data['pwd'] != $pass1)
un mysql_fetch_array est peut etre un peu trop lourd pour ca !
Code:
$data = mysql_result($req,0,'pwd');
if ($data != $pass1)
est mieux ;)

$_SESSION['level'] = $_POST['level'];

Je ne comprend pas ceci !
Car il n'y a pas de champ level dans le formulaire...
enfin corrige déjà le début ;)
 

tonton-benny

Touriste
MoRbAcK a dit:
mysql_connect("sql2.easy-hebergement.net","morback","xxxxxx");
mysql_select_db("morback");
utilise un connect.inc et place ton user et pass dans des variables.


ici si tu change ton pass ou login avec la maniere ke tu prog tu devra changer ca ds toute tes pages :wink:

enfin c juste un conseil :wink:
 

kokotchY

Elite
.inc.php alors..
car les .inc peuvent être downloadé et ca peut être genant ^^
 
1er
OP
MbK_

MbK_

Etudjant
tonton-benny a dit:
MoRbAcK a dit:
mysql_connect("sql2.easy-hebergement.net","morback","xxxxxx");
mysql_select_db("morback");
utilise un connect.inc et place ton user et pass dans des variables.


ici si tu change ton pass ou login avec la maniere ke tu prog tu devra changer ca ds toute tes pages :wink:

enfin c juste un conseil :wink:
j'ai jms utilisé ca, je sais pas comment ca marche. je debutte ^^
 

gogoprog

Oprahiste vaudou
koko a dit:
.inc.php alors..
car les .inc peuvent être downloadé et ca peut être genant ^^
Oui et non, suffit de changer les propriétés des fichiers sur le serveur.

Avec un serveur mal configuré, on peut aussi téléchager les .php
 

kokotchY

Elite
pourquoi faire du php alors ^^

serieusement, je vois beaucoup plus souvent la possibilité de downloader les .inc que les .php

on peut aussi interdire l'acces au .inc :roll:
 

tonton-benny

Touriste
voila comment ca marche :arrow:

ds le connect.inc
Code:
<?
$serveur="adresse du server"; 			
$utilisateur="login";			
$motdepasse="password";				
$database1="test1";
$database2="test2"; 			
?>
puis ds tes fichier tu fé apel a des variables
Code:
require("connect.inc");
mysql_connect("$serveur","$utilisateur","$motdepasse");
c tout simple :wink:
 

tonton-benny

Touriste
comme ca meme kan tu change le nom d une db c facile tu le change une fois (ds le .inc) et pas ds tout les fichier ke tu a cree :wink:
 

kokotchY

Elite
quoi ? je suis chiant ???
mysql_connect($serveur,$utilisateur,$motdepasse);

ca prend du temps a interpreté les "... alors pourquoi en mettre juste pour mettre une variable ?
 
1er
OP
MbK_

MbK_

Etudjant
tonton-benny a dit:
voila comment ca marche :arrow:

ds le connect.inc
Code:
<?
$serveur="adresse du server"; 			
$utilisateur="login";			
$motdepasse="password";				
$database1="test1";
$database2="test2"; 			
?>
puis ds tes fichier tu fé apel a des variables
Code:
require("connect.inc");
mysql_connect("$serveur","$utilisateur","$motdepasse");
c tout simple :wink:
ha moi jconnaissai ca mais avec le config.php et jrefait une include.
 

Styleman

Touriste
MoRbAcK a dit:
tonton-benny a dit:
voila comment ca marche :arrow:

ds le connect.inc
Code:
<?
$serveur="adresse du server"; 			
$utilisateur="login";			
$motdepasse="password";				
$database1="test1";
$database2="test2"; 			
?>
puis ds tes fichier tu fé apel a des variables
Code:
C'est exactement la meme chose :)
require("connect.inc");
mysql_connect("$serveur","$utilisateur","$motdepasse");
c tout simple :wink:
ha moi jconnaissai ca mais avec le config.php et jrefait une include.
 

Styleman

Touriste
MoRbAcK a dit:
tonton-benny a dit:
voila comment ca marche :arrow:

ds le connect.inc
Code:
<?
$serveur="adresse du server"; 			
$utilisateur="login";			
$motdepasse="password";				
$database1="test1";
$database2="test2"; 			
?>
puis ds tes fichier tu fé apel a des variables
Code:
C'est exactement la meme chose :)
require("connect.inc");
mysql_connect("$serveur","$utilisateur","$motdepasse");
c tout simple :wink:
ha moi jconnaissai ca mais avec le config.php et jrefait une include.
 
1er
OP
MbK_

MbK_

Etudjant
Xen0n a dit:
tu pars en vrile styleman
mdr klr keski fou :d

bon j'ai trouvé un truc qui me met a la bonne page mais j'ai des erreurs.

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 3 in /home/morback/www/test/authmws/login.php on line 16

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/morback/www/test/authmws/login.php:16) in /home/morback/www/test/authmws/login.php on line 25

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/morback/www/test/authmws/login.php:16) in /home/morback/www/test/authmws/login.php on line 25
et jcapte pas tres bien :s:s

code de la page :

Code:
<? 
      mysql_connect("sql2.easy-hebergement.net","morback","xxxx");
      mysql_select_db("morback"); 

if($_POST['login']=='' || $_POST['pass']=='') 
    { 
    echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous avez oublié de remplir un champs.</center></font></font></p>'; 
    include('auth.php'); // On inclus le formulaire d'identification 
    exit; 
    } 


$sql = "select pwd from user where login='$login1'"; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

$data = mysql_result($req,0,'pwd'); 
if ($data != $pass1)  
    { 
    echo '<center><p><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Mauvais login / password. Merci de recommencer</center></font></font></p>'; 
    include('auth.php'); // On inclus le formulaire d'identification 
    exit; 
    } 
else 
    { 
    session_start(); 
    $_SESSION['login1'] = $_POST['login1'];  

    echo "<center><font color=#000000 face=Verdana, Arial, Helvetica, sans-serif><font size=2>Vous êtes bien logué en temps que <b>" . $_SESSION['login1'] . "</b></center></font></font> "; 
    echo "<center><a href=index.php>retour</a><center>"; 
    } 

?>
 

kokotchY

Elite
change

mysql_connect("sql2.easy-hebergement.net","morback","tonpass");
mysql_select_db("morback");

par
mysql_connect("sql2.easy-hebergement.net","morback","****") or die(mysql_error());
mysql_select_db("morback") or die(mysql_error());

s'il y a une erreur de connexion, ca va l'afficher !

et retire ton pass dans ton post :roll:
 
1er
OP
MbK_

MbK_

Etudjant
g changer mon pass de tt facon mais bon ^^
 
1er
OP
MbK_

MbK_

Etudjant
jlai fai mais ca marque la meme erreur :s:s

tu a remi le pass :oops:

jss con qd mm :s:s
 

kokotchY

Elite
echo $sql;
affiche quoi ?
 
le problème des coockies est très simple : tu dois envoyer/recevoir ou lire des cookies avant que quoi que ce soit comem texte soit envoyé au browser.

C'est la même chose pour la redirection de page.

La solution ? déplacer ton écriture/lecture de cookie avant d'envoyer quelque chose au browser (en gros et plus simple: pas de print avant ces commandes là)
 

kokotchY

Elite
il n'y a aucun envoit d'header avant le setcookie... sauf l'erreur mysql !
c'est cette erreur qui pose problème pour le setcookie et/ou le session_start
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut