Page 1 sur 1

pb de session

Posté : 25 févr. 2007, 12:27
par Floriane12
Bonjour à tous,

Je suis débutante en php et dans le cadre d'une formation que je suis afin d'obtenir le diplome de wemaster, je dois réaliser un projet Internet ayant pour but de pouvoir mettre à jour le site via une interface de mise à jour. L'utilisateur webmaster doit pouvoir avoir accès à cette interface au moyen d'une session.

Je travaille avec Easyphp et Dreamweaver.

Mon pb se situe au niveau des sessions. Lorsque je tape mot de passe et login pour entrer dans l'interface de mise a jour, cela ne marche pas.

Je vous mets le code de la page du formulaire qui permet de rentrer le login:

Code : Tout sélectionner

<?php session_start(); // Connexion à la BD require '../Connections/cnx.php'; // Connexion au serveur $cnx = mysql_connect($hostname_cnx, $username_cnx, $password_cnx) or die("Erreur de connexion au serveur"); mysql_select_db($database_cnx,$cnx) or die("Erreur de connexion au serveur"); ?> <!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=iso-8859-1" /> <title>Document sans titre</title> <link href="../css/styles.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-- body { margin-top: 0px; } .Style5 {font-size: medium} .Style6 {font-size: large} --> </style></head> <body> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td width="316" align="center"></td> </tr> <tr> <td height="24">&nbsp;</td> </tr> <tr> <td><form id="form1" name="form1" method="post" action="session.php"> <div align="center"><span class="titre1"><span class="Style5">Identifiant</span> : </span> <input type="text" name="login" /> <br /> <br/> <span class="titre1 Style5">Mot de passe </span> : <input type="password" name="mdp" /> <br /> <br /> <input type="submit" name="Submit" value="Envoyer" /> </div> </form></td> </tr> </table> </body> </html>
Maintenant, je vous mets le code de ma page session:

Code : Tout sélectionner

<?php // Connexion à la BD require '../Connections/cnx.php'; $cnx = mysql_connect($hostname_cnx,$username_cnx,$password_cnx) or die("Connection interrompue"); mysql_select_db($database_cnx,$cnx); // Chercher l'utilisateur $login = $_POST['login']; $pwd = md5($_POST['mdp']); $requete1 = "SELECT count(*) as tot FROM identifiants WHERE nom='$login' AND mdp='$pwd';"; $result1 = mysql_query($requete1,$cnx); $row1 = mysql_fetch_array($result1); if ($row1['tot'] == 0) { header("Location: index.php"); exit(); } else { $requete = @mysql_query("SELECT id FROM identifiants WHERE nom='$login' AND mdp='$pwd';"); $row = mysql_fetch_array($requete); session_start(); $_SESSION['id'] = $row["id"]; } header("Location: ../MAJ/index.php"); exit(); ?>
Quand je prévisualise la page session, voila l'erreur qu'il m'affiche:

Code : Tout sélectionner

Notice: Undefined index: login in c:\documents and settings\flo\mes documents\sites\cv_flo\manager\session.php on line 10 Notice: Undefined index: mdp in c:\documents and settings\flo\mes documents\sites\cv_flo\manager\session.php on line 11 Warning: Cannot modify header information - headers already sent by (output started at c:\documents and settings\flo\mes documents\sites\cv_flo\manager\session.php:10) in c:\documents and settings\flo\mes documents\sites\cv_flo\manager\session.php on line 19
Voici les lignes 10 et 11:

Code : Tout sélectionner

$login = $_POST['login']; //nom du champ du formulaire du login $pwd = md5($_POST['mdp']); //nom du champ du formulaire du mot de passe
et la ligne 19:

Code : Tout sélectionner

header("Location: index.php");
Ou est l'erreur? Je suis bloquée dans mon travail a cause de cela. Pouvez vous m'aider SVP?

Merci bocoup

Posté : 25 févr. 2007, 12:44
par Aureusms
IL n'y a pas session_start() dans ton fichier session
<?php
// MANQUE session_start();
   // Connexion à la BD
   require '../Connections/cnx.php';
   $cnx = mysql_connect($hostname_cnx,$username_cnx,$password_cnx)
      or die("Connection interrompue");
   mysql_select_db($database_cnx,$cnx); 

Merci mais ca ne marche toujours pas

Posté : 25 févr. 2007, 12:58
par Invité
J ai ajouté le session start dans la page session mais rien n'y fait. Les memes erreurs s'affichent!!

Merci ...

Posté : 25 févr. 2007, 13:01
par Aureusms
Bon on va essayer ca. J'ai vu dans session.php qu'il y avait un saut de ligne avant <?php, est ce à cause du copier coller ?

Posté : 25 févr. 2007, 13:05
par Aureusms
Essaye aussi d'éditer ton $_POST dans ton fichier session.php via
echo '<pre>'; print_r ($_POST); echo '</pre>';
et donne nous le résultat

Posté : 26 févr. 2007, 00:27
par thehawk
J'ai eu de nombreuse erreur dans ce style mais cela venait de la configuration de easyphp peut etre en le testant en ligne tu trouvera que sa marche ...

Posté : 26 févr. 2007, 01:51
par AB
Sans doute le serveur travailles avec register global = off (recommandé)

donc
$login = $_POST['login'];
//doit être transformé en par exemple
$login = isset($_POST['login'])? $_POST['login'] : '';
//la syntaxe ci-dessus (plus rapide d'exécution) est équivalente à
if (isset($_POST['login'])) {$login = $_POST['login'] ;} else {$login = '';}
Il faudra faire de même pour définir ta variable $_POST['mdp']