session php

Eléphant du PHP | 259 Messages

28 oct. 2005, 11:59

Bonjour
j'ai un espace membre sur mon site pour mes visiteurs

pour se loger il y a une page
<?
// connexion à la base
$db = mysql_connect('sql.free.fr', 'xxx', 'xxx') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('xxx',$db) or die('Erreur de selection '.mysql_error());



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

$data = mysql_fetch_assoc($req);

if($data['user_pass'] != $pass) {
echo '<p class="style1">Mauvais login / password. Merci de recommencer</p>';
include('http://yuu.sw.free.fr/echange/membres/login2.php'); // On inclus le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['pseudo'] = $pseudo;
$_SESSION['pass'] = $pass;

echo '<p class="style1">Vous etes bien logué</p>';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p class="style1">Vous avez oublié de remplir un champ.</p>';
include('http://yuu.sw.free.fr/echange/membres/login2.php'); // On inclut le formulaire d'identification
exit;
}


?>
avec la page de login
<form method="post" action="/echange/membres/login3.php">
<table border="0" width="118">
<tr>
<td width="44"><span class="style1">pseudo</span></td>
<td width="64"><input name="pseudo" type="text" size="10" />
</td>
</tr>
<tr>
<td width="44"><span class="style1">pass</span></td>
<td width="64"><input name="pass" type="password" size="10" />
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="login" />
</td>
</tr>
</table>
<p class="menulink"><a href="/echange/membres/pass_perdu.php" class="menulink"><strong>pass perdu ??? </strong></a></p>
</form>
mais sa marche pas
sa met sa
quand on se log
Warning: session_start(): open(/var/www/sdc/0/8/yuu.sw/sessions/sess_106f16ba9154c239da0fd9cbba4b7fdc, O_RDWR) failed: No such file or directory (2) in /var/www/sdc/0/8/yuu.sw/echange/membres/login.php on line 46

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/sdc/0/8/yuu.sw/echange/membres/login.php:6) in /var/www/sdc/0/8/yuu.sw/echange/membres/login.php on line 46

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/sdc/0/8/yuu.sw/echange/membres/login.php:6) in /var/www/sdc/0/8/yuu.sw/echange/membres/login.php on line 46

Vous etes bien logué


Warning: Unknown(): open(/var/www/sdc/0/8/yuu.sw/sessions/sess_106f16ba9154c239da0fd9cbba4b7fdc, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/www/sdc/0/8/yuu.sw/sessions) in Unknown on line 0
je suis chez free, on ma dit que sa avait peut etre quelque chose à voir mais g rien compris d'autre

pouvez vous m'aider pour faire fonctionner sa
merci d'avance
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 1311 Messages

28 oct. 2005, 12:01

salut
il faut creer un repertoire SESSIONS a la racine de ton site web

Mammouth du PHP | 19672 Messages

28 oct. 2005, 12:02

Sur free.fr, tu dois impérativement créer à la racine de ton site un répertoire vide nommé "sessions" (en minuscule et au pluriel.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 259 Messages

28 oct. 2005, 12:07

et on met quoi dedans ???
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 19672 Messages

28 oct. 2005, 12:13

rien, le serveur de free.fr pourra gérer les sessions avec ça.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 259 Messages

28 oct. 2005, 12:29

maintenant sa met sa

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/sdc/0/8/yuu.sw/echange/membres/login.php:6) in /var/www/sdc/0/8/yuu.sw/echange/membres/login.php on line 46

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/sdc/0/8/yuu.sw/echange/membres/login.php:6) in /var/www/sdc/0/8/yuu.sw/echange/membres/login.php on line 46


la ligne 46 c'est celle la
session_start();
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 1311 Messages

28 oct. 2005, 12:35

tu peut pas mettre de HTML ou envoyé des entetes avan t session_start
apparement le probleme se situe a la ligne 6 de login.php
met session_start au debut de ton fichier

Eléphant du PHP | 259 Messages

28 oct. 2005, 12:39

g trouvé sa aussi sur interbet,

est ce que sa peut m'aider ???
<?php
// On démarre la session
session_start();
$loginOK = false; // cf Astuce

// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {

extract($_POST); // je vous renvoie à la doc de cette fonction

// On va chercher le mot de passe afférent à ce login
$sql = "SELECT pseudo, age, sexe, ville, mdp FROM user WHERE login = '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);

// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);

// On vérifie que son mot de passe est correct
if ($password == $data['mdp']) {
$loginOK = true;
}
}
}

// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['age'] = $data['age'];
$_SESSION['sexe'] = $data['sexe'];
$_SESSION['ville'] = $data['ville'];
}
else {
echo 'Une erreur est survenue, veuillez réessayer !';
}
?>
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 19672 Messages

28 oct. 2005, 12:42

Regarde donc ici => la FAQ de free.fr
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 259 Messages

28 oct. 2005, 13:18

j'ai déjà lu et g rien compris
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 19672 Messages

28 oct. 2005, 13:25

:shock: On t'a dit deux fois ce qu'il faut faire et c'est répété dans la FAQ de free.fr

Ouvre ton client ftp et crée un répertoire vide nommé "sessions", point final. Ensuite teste à nouveau ta page et dis nous ce qui se passe.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 259 Messages

28 oct. 2005, 13:34

je suis pas débile

sa fait longtemps que je l'ai fait

et depuis ya deux fois moins d'erreurs mais ya sa

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/sdc/0/8/yuu.sw/echange/membres/login.php:6) in /var/www/sdc/0/8/yuu.sw/echange/membres/login.php on line 46

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/sdc/0/8/yuu.sw/echange/membres/login.php:6) in /var/www/sdc/0/8/yuu.sw/echange/membres/login.php on line 46
l'hébergeur gratuit que j'utilisais: http://www.freeheberg.com (pas de limitte de débit, BP, 1à10Go, bdd mysql illimitées )
mainteant je suis chez OVH, payant mais plus adapté à de gros sites

Mammouth du PHP | 1311 Messages

28 oct. 2005, 13:35

voir plus haut et http://www.php.net

Mammouth du PHP | 19672 Messages

28 oct. 2005, 13:37

Voir également sur ce forum dans la FAQ
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 2144 Messages

28 oct. 2005, 13:37

Cfr le message de Jeff qui répond exactement à ton problême ACTUEL.