Problème sur page connexion/inscription/modifications

Eléphanteau du PHP | 45 Messages

11 déc. 2006, 23:39

Hello,

J'ai 3 pages, une permettant une inscription de membre, une pour se connecter et une autre pour afficher ses données, son compte quoi voir ses points...


inscription.php
<?php
if (isset($_POST['login']) AND isset($_POST['pass'])AND isset($_POST['bernard'])AND isset($_POST['mail'])) // Si les variables existent
{
    if ($_POST['login'] != NULL AND $_POST['pass'] != NULL AND $_POST['bernard']!= NULL AND $_POST['mail']) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "root", "");
        mysql_select_db("drsmoogy");

        // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
        $login = htmlentities ($_POST['login']);
        $pass = htmlentities ($_POST['pass']);
        $bernard = htmlentities ($_POST['bernard']);
        $mail = htmlentities ($_POST['mail']);

        // Ensuite on ajoute les valeurs entrées dans la BDD
        mysql_query("INSERT INTO tbl_user VALUES('','$login', '$login', '$pass','$mail','$bernard','2000')");
        echo("inscription réussie !");
        
        
        
        // On se déconnecte de MySQL
        mysql_close();
    }else{
    echo("ERREUR veuillez recommencer !");
    }
}



?>
login.php
<?
mysql_connect("localhost","root","");
mysql_select_db("drsmoogy");
// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.
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 inclut le formulaire d'identification
    exit;
  }
  else {
  
    session_start();
    $_SESSION['login'] = $login;
    $_SESSION['pass'] = $pass;
    header('Location:modifications1.php');
     
    
    
    
  }   
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   include('login.htm'); // On inclut le formulaire d'identification
   exit;
}


?>
jusque là sa fonctionne, on peut s'inscrire se connecter et on arrive sur la page modification1.php et c'est là que ca merde !

modifications1.php
<br>VOTRE COMPTE:<br>
<?php
session_start();
mysql_connect("localhost", "root", "");
mysql_select_db("drsmoogy");
$reponse = mysql_query("SELECT argent FROM tbl_user WHERE pseudo='$login'"); // Requête SQL

while ($donnees = mysql_fetch_array($reponse) )
{

echo "bienvenue sur votre compte" . ' '$login';
echo "votre argent est de" . ' ' . $donnees['argent'];
echo "<br />";
}
mysql_close(); // Déconnexion de MySQL
?>
le but étant de saluer la personne venant de se connecter et de sélectionner dans la table 'tbl_user' le champ 'argent' de l'utilisateur venant de se connecter.

Et voila ce que j'ai comme erreur !

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\connexion\modifications1.php:2) in c:\program files\easyphp1-8\www\connexion\modifications1.php on line 3

Notice: Undefined variable: login in c:\program files\easyphp1-8\www\connexion\modifications1.php on line 6


D'avance je vous remercie !

a+

Eléphant du PHP | 445 Messages

11 déc. 2006, 23:43

Regarde ne serait-ce que la coloration syntaxique dans modification1.php et tu trouveras déjà une erreur ;)

Pour la première, c'est ton session_start qui n'est pas à sa place..
LLDC
Ulti

Eléphanteau du PHP | 45 Messages

11 déc. 2006, 23:52

Pour la coloration syntaxique, je vois a un des echo, et sinon pour la position de session_start(); j'ai pourtant tout essayé au niveau du placement.
Ce que je ne comprend pas c'est pourquoi quand je met WHERE pseudo='$login', il me mette une erreur pourquoi ? comment intégré cela ?

merci et a+

PS:je débute:D

Eléphant du PHP | 445 Messages

11 déc. 2006, 23:57

Montre nous ce qu'il y a avant ça :

<br>VOTRE COMPTE:<br>
<?php

Tu es sûr que $login est définit ?
Ton session_start(); mets le au tout début du fichier, à la première ligne, pour être sûr, et n'en remet surtout pas d'autre après dans ton script (attention alors aux include)
LLDC
Ulti

Eléphanteau du PHP | 45 Messages

12 déc. 2006, 00:03

Il n'y a rien avant <br>VOTRE COMPTE:<br>
<?php .

et justement session_start(); ne permet pas de récupérer la définition de $login ? qui se trouve dans le fichier login.php
 session_start();
    $_SESSION['login'] = $login;
    $_SESSION['pass'] = $pass;
    header('Location:modifications1.php');
merci encore

ViPHP
ViPHP | 1961 Messages

12 déc. 2006, 00:11

Bonsoir,
Essaie ceci
<?php
session_start();
echo '<br>VOTRE COMPTE:<br>';

mysql_connect("localhost", "root", "");
mysql_select_db("drsmoogy");
$reponse = mysql_query("SELECT argent FROM tbl_user WHERE pseudo='$login'"); // Requête SQL

while ($donnees = mysql_fetch_array($reponse) )
{

echo "bienvenue sur votre compte " . $login;
echo " votre argent est de " .  $donnees['argent'];
echo "<br />";
}
mysql_close(); // Déconnexion de MySQL
?> 
Modifié en dernier par Ajoloca le 12 déc. 2006, 00:28, modifié 2 fois.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 445 Messages

12 déc. 2006, 00:11

Pour cela, tu dois, dans modification1.php, redéfinir les variables $login et $pass, de la même façon, avec un $_SESSION[];

Je ne suis plus trop sûr, mais je pense qu'il ne faut rien envoyer au navigateur avant un session_start() (coupez moi si je me trompe ^^'), donc ton <br />VOTRE COMPTE:<br /> doit être placé après...

Pour ton problème d'echo, ceci semble mieux ;) :
echo "bienvenue sur votre compte" . $login;
echo "votre argent est de" . ' ' . $donnees['argent'];
echo "<br />"; 
LLDC
Ulti

Eléphanteau du PHP | 45 Messages

12 déc. 2006, 00:12

Bonsoir,
Essaie ceci
<?php
session_start();
echo '<br>VOTRE COMPTE:<br>';

mysql_connect("localhost", "root", "");
mysql_select_db("drsmoogy");
$reponse = mysql_query("SELECT argent FROM tbl_user WHERE pseudo='$login'"); // Requête SQL

while ($donnees = mysql_fetch_array($reponse) )
{

echo "bienvenue sur votre compte" . ' '$login';
echo "votre argent est de" . ' ' . $donnees['argent'];
echo "<br />";
}
mysql_close(); // Déconnexion de MySQL
?> 
tout d'abord merci de t'intéresser au problème ensuite voila l'erreur que cela affiche:

Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp1-8\www\connexion\modifications1.php on line 12

Eléphant du PHP | 445 Messages

12 déc. 2006, 00:13

J'ai posté la correction pour ton echo dans mon post précédent ^^
LLDC
Ulti

Eléphanteau du PHP | 45 Messages

12 déc. 2006, 00:29

Voila le code avec correction apporté:
<?php
session_start();
$_SESSION['login'] = $login;
echo '<br>VOTRE COMPTE:<br>';

mysql_connect("localhost", "root", "");
mysql_select_db("drsmoogy");
$reponse = mysql_query("SELECT argent FROM tbl_user WHERE pseudo='$login'"); // Requête SQL

while ($donnees = mysql_fetch_array($reponse) )
{

echo "bienvenue sur votre compte" . $login;
echo "votre argent est de" . ' ' . $donnees['argent'];
echo "<br />"; 
}
mysql_close(); // Déconnexion de MySQL
?> 
et deux erreurs qui ne sont qu'une en faite j'ai pourtant défini $login.


Notice: Undefined variable: login in c:\program files\easyphp1-8\www\connexion\modifications1.php on line 3

VOTRE COMPTE:

Notice: Undefined variable: login in c:\program files\easyphp1-8\www\connexion\modifications1.php on line 8

ViPHP
ViPHP | 1961 Messages

12 déc. 2006, 00:38

Re,

Reprends le code au complet, pas seulement ce que tu penses modifié.
<?php
session_start();
echo '<br>VOTRE COMPTE:<br>';

mysql_connect("localhost", "root", "");
mysql_select_db("drsmoogy");
$reponse = mysql_query("SELECT argent FROM tbl_user WHERE pseudo='". $_SESSION['login'] "'"); // Requête SQL

while ($donnees = mysql_fetch_array($reponse) )
{

echo "bienvenue sur votre compte " . $_SESSION['login'] ;
echo "<br />votre argent est de " . $donnees['argent'];
echo "<br />";
}
mysql_close(); // Déconnexion de MySQL
?>
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 45 Messages

12 déc. 2006, 00:43

Merci encore, mais l'erreur persiste:

Parse error: parse error in c:\program files\easyphp1-8\www\connexion\modifications1.php on line 7
cela peut-il venir d'ailleur ? par exemple login.php ?

merci

ViPHP
ViPHP | 1961 Messages

12 déc. 2006, 00:59

Re,
Il manque un . (point) de concaténation, la bonne syntaxe
$reponse = mysql_query("SELECT argent FROM tbl_user WHERE pseudo='". $_SESSION['login'] . "'"); // Requête SQL
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 45 Messages

12 déc. 2006, 08:37

Rien a dire merci encore, a la prochaine.

Mammouth du PHP | 19672 Messages

12 déc. 2006, 08:52

Modération :
dr.smoogy, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération en cliquant sur le bouton [Mettre Résolu] en haut à gauche de ce sujet.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: