session_start(); & md5() foireux

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

kokotchY

Elite
Moi j'addslashes toujours les valeurs avant l'insertion des données !
$login = (isset($_GET['login']))?addslashes($_GET['login']):'';
$confirm = (isset($_GET['confirm']))?addslashes($_GET['confirm']):'';
Code:
$sql = "SELECT COUNT(*) as nb FROM membres WHERE login = '$login' AND confirm = '$confirm'";
c'est toujours plus simple :)

aussi pour la petite info, md5 hash le password ce qui le rend par définition indéchiffrable !

La seule chose que l'on peut faire c'est de hasher le password donné par l'utilisateur et le comparer


Pour ceci :
confirm.php
Code:
$sql = 'SELECT COUNT(*) as nb FROM membres WHERE login = "'.addslashes($_GET['login']).'" AND confirm = "'.addslashes($_GET['confirm']).'"';
$req = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_array($req);
c'est un peu bete de faire un mysql_fetch_array qui est quand même assez lourd par rapport a un mysql_fetch_row ou encore un mysql_result !
$nb = mysql_result($req,0,'nb');
$nb contiendra la même chose que $data['nb]

Au fur et a mesure que je regarde le code, je trouve des petites erreurs ;)

confirm.php :
mysql_query("UPDATE membres SET `confirm`='' WHERE `login` ='$login'") or die('erreur : '.mysql_error());
$login n'est pas défini donc ca ne marchera pas

auth2.php :
c'est inutile de tout sélectionner dans la base de donnée si ce n'est que pour prendre le password :
$sql = "SELECT password FROM membres_tbl WHERE login='$_POST[login]'";
$req = mysql_query($sql) or die('erreur:' .mysql_error());
$pass = mysql_result($req,0,'password');

espace.php :
ARG
session_register(login);
ne jamais utiliser ca :/ c'est obsolète au possible !
$_SESSION['login'] = 'login';

Sinon je n'ai rien trouvé d'autre :roll:
 
1er
OP
MbK_

MbK_

Etudjant
merci mais toutes les petites astuces, je ne connais pas vu que je debute
 

Styleman

Touriste
Morback dans le truc ke je t envoyé je ne me suis pas oqp de la page pour envoyer le mail, juste de auth2 et espace quoi.

Sinon c'est vrai que les erreurs sont nombreuses, mais elles viennent de faute d'inattention je pense...
 
1er
OP
MbK_

MbK_

Etudjant
bon je vais un peu rexpliquer ce qui foire pour mettre tout au point.

:arrow: j'ai une page inscription.php : ou je m'inscrit.
:arrow: je recoit un mail de confirm avec un lien. ca marche nickel
:arrow: j'ai une page auth1.php qui est un simple formulaire avec un champs pseudo et un pass. code:
Code:
<form action="auth2.php" method="post">
<div align="center">  <p><a href="inscription.php">Inscription.</a></p>  
    <table width="244" border="0" bordercolor="#FFFFFF">
      <tr>      
<td width="64">Pseudo : </td>      <td width="164"><input name="login" type="text" id="pseudo"></td>    </tr>   
<tr>      <td>Pass : </td>      <td><input name="pass" type="password" id="pass"></td>    </tr>  </table>  <p>   
 <input type="submit" name="Submit" value="Envoyer">  </p></div></form>
:arrow: qd j'appuie sur ok, ca charge la page auth2.php et c'est la que ca plante.

le code de la page actuellement est le suivant :


Code:
<?
session_start(); //jouvre la session
$_POST['pseudo'] = $_SESSION['pseudo'];  //je defini les variables de session.
$_POST['pass'] = $_SESSION['pass'];
if (!isset($_POST['login']) OR !isset($_POST['pass'])) 
{ 
echo 'Vous avez oublié de mettre des données';
}
else
{
include("config.php");
$db = mysql_connect($host,$user,$password);
mysql_select_db($base,$db) or die('erreur:' .mysql_error());
$sql = "SELECT * FROM membres WHERE login='$_POST[login]'";
$req = mysql_query($sql) or die('erreur:' .mysql_error());
$donnees = mysql_fetch_array($req);
    $npass = $_POST['pass'];
    if ($npass == $donnees['pass']) 
    {
    // si le mot de passe est bon, mettez ici ce que vous voulez
    header("location:espace.php");
    }
    else
    {
    echo 'Votre mot de passe ou votre pseudo n\'est pas correcte, si vous n\'etes pas inscrit, veuillez vous inscrire <a href="inscription.php">ici</a>!!<br>';
    echo '<a href="auth1.php">Retournez à  l\'identification</a>';
    }
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL 
}
?>
pour l'instant, qd je rempli le auth1.php, sur la page 2, il me di
Vous avez oublié de mettre des données
meme qd je met des fauts pass et des faut login et tout. pour les test c ICI

pour le code c ICI
 
X

xXFMCXx

ex membre
Essaye ceci :

<?php
session_start();

$_POST['login'] == $_SESSION['login'];
md5($_POST['pass'])== $_SESSION['pass'];

if (empty($_POST['login']) OR empty($_POST['pass']))
{
echo 'Vous avez oublié de mettre des données';
}
else
{
mysql_connect("sql2.easy-hebergement.net","morback","xxxxx");
mysql_select_db("morback");

$sql = mysql_query("SELECT * FROM membres WHERE login='" . $_POST['login'] . "'") or die('erreur:' .mysql_error());
while ($donnees = mysql_fetch_array($sql))
{
if ($_POST['pass'] == $donnees['pass'])
{
// si le mot de passe est bon, mettez ici ce que vous voulez
include('espace.php');
}
else
{
echo 'Votre mot de passe ou votre pseudo n\'est pas correcte, si vous n\'etes pas inscrit, veuillez vous inscrire <a href="inscription.php">ici</a>!!<br>';
echo '<a href="auth1.php">Retournez à l\'identification</a>';
}
}
mysql_close();

}
?>


espace.php code :
<?php

if (!isset($_SESSION['pseudo'])) // si les variables de session ne sont pas définies
{
echo 'Vous n\'avez pas le droit d\'accéder à cette page';
include ('auth1.php');
}
else
{
$donnees = mysql_query("SELECT * FROM membres"); // Requête SQL
$donnees2 = mysql_fetch_array($donnees);
?>

<em><font size="4">Ton pseudo</font></em> est <? echo $donnees2['login']; ?>,
<font face="Geneva, Arial, Helvetica, sans-serif">ton mail</font> <? echo $donnees2['mail']; ?>,
ta signature "<? echo $donnees2['signature']; ?>",
<?
}
?>
 
1er
OP
MbK_

MbK_

Etudjant
ben jessaye de me logué et ca foire, il dit "Vous n'avez pas le droit d'accéder à cette page "

alors que j'ai le bon pass et le bon log...
 
S

spirit

ex membre
je look le code et j'ai ca.

Code:
$sql = 'SELECT COUNT(*) as nb FROM membres WHERE login = "'.addslashes($_GET['login']).'" AND confirm = "'.addslashes($_GET['confirm']).'"';
keski foire?

si tu ouvre ta chaine avec ' tu dois la fermer avec ' et pas "

la syntaxe correcte est:

Code:
$sql = "SELECT COUNT(*) as nb FROM membres WHERE login = '".addslashes($_GET['login'])."' AND confirm = '".addslashes($_GET['confirm'])."'";
 

zoheir

cvm.mangaleet()
euh morback faudrait que tu t'achètes un bouquin sur le php ou prendre des cours, ca devient saoulant tes posts là, a chaque fois que t'a une erreur, tu postes :eek:
 
1er
OP
MbK_

MbK_

Etudjant
cvm- a dit:
euh morback faudrait que tu t'achètes un bouquin sur le php ou prendre des cours, ca devient saoulant tes posts là, a chaque fois que t'a une erreur, tu postes :eek:
un forum ca sert a quoi? je suis desolé de ne pas m'y connaitre autant que toi. je suis entrain d'apprendre. alors j'ai des probleme et comme je n'ai personne d'autre a qui demander pour l'instant, je post. mais si ca te derange de regler les problemes des autres, il faut aps venir sur des forum stp.
 

zoheir

cvm.mangaleet()
MoRbAcK a dit:
cvm- a dit:
euh morback faudrait que tu t'achètes un bouquin sur le php ou prendre des cours, ca devient saoulant tes posts là, a chaque fois que t'a une erreur, tu postes :eek:
un forum ca sert a quoi? je suis desolé de ne pas m'y connaitre autant que toi. je suis entrain d'apprendre. alors j'ai des probleme et comme je n'ai personne d'autre a qui demander pour l'instant, je post. mais si ca te derange de regler les problemes des autres, il faut aps venir sur des forum stp.
je suis un novice en php :eek:

de plus c'est pas comme cela qu'on apprend un langage informatique, achète un bouquin ... ia des milliards de tutos sur le net :pfiou:
 
1er
OP
MbK_

MbK_

Etudjant
cvm- a dit:
MoRbAcK a dit:
cvm- a dit:
euh morback faudrait que tu t'achètes un bouquin sur le php ou prendre des cours, ca devient saoulant tes posts là, a chaque fois que t'a une erreur, tu postes :eek:
un forum ca sert a quoi? je suis desolé de ne pas m'y connaitre autant que toi. je suis entrain d'apprendre. alors j'ai des probleme et comme je n'ai personne d'autre a qui demander pour l'instant, je post. mais si ca te derange de regler les problemes des autres, il faut aps venir sur des forum stp.
je suis un novice en php :eek:

de plus c'est pas comme cela qu'on apprend un langage informatique, achète un bouquin ... ia des milliards de tutos sur le net :pfiou:
j'ai lu TOUT les tuto sur le .siteduzero.com. ca m'a pri des heures et puis faire les TP aussi. alors vas pas dire que je suis pas motivé. j'ai aussi ht des magazines sur le php mais je comprend pas bien car je n'ai pas le niveau pour faire ce qu'il y a dans le magazine. je vais le relire ds un moment p-e que je comprendrais.
mais si tu as un bon boukin (pas sur les bases pck je les ai deja) mais sur "bien apprendre le php" je suis preneur pck ca m'interesse enormement.
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut