Les sessions, pbl...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Les sessions, pbl...

par wadzar » 08 août 2005, 22:10

ouioui c'est bon merci

par dadadu59 » 08 août 2005, 22:02

Le session_star() tu l'as bien mis au TOUT début de ta page ? il n'y a pas de html au dessus ?

par wadzar » 08 août 2005, 20:35

Mais on peut aussi inclure le script php dans une page html.

par Atlante » 08 août 2005, 20:14

Mdr un conseil apprend bien le php a travers divers tuto
Faut mettre cela tout en haut de ta page et ne pas mélanger le php avec le html si possible (et ne pas le mettre n'importe ou)

par wadzar » 08 août 2005, 20:08

Mais... c'est bien dans <body> qu'on le met non?

par wadzar » 08 août 2005, 19:07

Voilà j'ai:
<?
session_start(); 

mysql_connect("sql.free.fr", "battleforconquest", "*****"); // connexion à la BDD

mysql_select_db("battleforconquest");

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select pwd from tbl_user where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['pwd'] != $pass) {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
    include('login.htm'); // On inclus le formulaire d'identification
    exit;
  }
  else {
    $_SESSION['login'] = $login;
J'ai fait ce quye tu m'a dit, mais j'ai juste déplacé l'erreur:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php:10) in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 11

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php:10) in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 11
Vous etes bien logué

...

par wadzar » 08 août 2005, 18:18

Euh sisi les ; y sont j'ai juste c/c le code d'avant.

par Cyrano » 08 août 2005, 18:15

Et toujours pas les ";" à la fin des deux premières instructions....

Et ton session_start() : rien ne t'interdit de toutes façon de le mettre au début :
<?php
session_start();
mysql_connect("localhost", "battleforconquest", "******"); // connexion à la BDD
mysql_select_db("battleforconquest");

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass']))
{
    extract($_POST);
    // on recupère le password de la table qui correspond au login du visiteur
    $sql = "select pwd from tbl_user where login='".$login."'";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

    $data = mysql_fetch_assoc($req);

    if($data['pwd'] != $pass)
    {
        echo '<p>Mauvais login / password. Merci de recommencer</p>';
        include('login.htm'); // On inclus le formulaire d'identification
        exit;
    }
    else
    {
        $_SESSION['login'] = $login;

par wadzar » 08 août 2005, 18:12

Well, on progresse.
Lol certainement plus lentement que surment :roll: :wink: .

Donc si j'ai bien compris ce qui nous interresse est dans login.php et c'est precisement:
<?

mysql_connect("localhost", "battleforconquest", "******") // connexion à la BDD

mysql_select_db("battleforconquest")

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select pwd from tbl_user where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['pwd'] != $pass) {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
    include('login.htm'); // On inclus le formulaire d'identification
    exit;
  }
  else {
    session_start();
    $_SESSION['login'] = $login; 
Mais j'y pense, j'utilise notepad et il met un espace devant chaque ligne, c'est peut-être ça. J'essaye...

par Cyrano » 08 août 2005, 17:56

Well, on progresse. Il reste que tu envois du contenu au navigateur avant ton session_start() : ça peut être un simple espace en début de fichier juste avant un <?php par exemple. Dès cet instant, ton script se bloque.

Vérifie soigneusement ce que tu envoies.

par wadzar » 08 août 2005, 17:52

J'ai édité mon message precedent.

par Cyrano » 08 août 2005, 17:51

Warning: mysql_connect(): Access denied for user 'battleforconquest'@'212.27.40.179' (using password: YES) in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 12
Je l'invente pas, c'est ton serveur qui te le dit... :-k

par wadzar » 08 août 2005, 17:44

Comment ça? Bah nan, dans login.php lors de la connexion j'ai bien mis localhost, battleforconquest et mon mdp...


EDIT: ATTENTION: gars trés con! Oui bon mon mot de passe était pas le bon, j'en avait changé entre-temps!Image


Bon ok pour le mot de passe, mais j'ai encore quelques bugs!

Maintenant ça me met:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php:10) in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 30

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php:10) in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 30
Vous etes bien logué
:?

par Cyrano » 08 août 2005, 17:28

Il manque un mot de passe pour l'accès à MySQL dans ta config de fichiers.

par wadzar » 08 août 2005, 17:27

De mieux en mieux, il y a de moins en moins de lignes dans les erreurs lol.

Maintenant ça me met:
Warning: mysql_connect(): Access denied for user 'battleforconquest'@'212.27.40.179' (using password: YES) in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 12

Warning: mysql_select_db(): A link to the server could not be established in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 14

Warning: mysql_query(): A link to the server could not be established in /var/www/free.fr/7/0/battleforconquest/sessions/login/login.php on line 20
Erreur SQL !
select pwd from tbl_user where login='wadzar'
Access denied for user 'battleforconquest'@'212.27.40.179' (using password: YES)