session php

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 : session php

par yuuzhantar » 28 oct. 2005, 14:07

merci tout le monde

sa marche enfin !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

:D :D

par Truc » 28 oct. 2005, 14:04

<!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>Untitled Document</title>
<style type="text/css">
<!--
body {
	background-color: #CCCCCC;
}
-->
.style1{
color: #666666;
font-family: Verdana;
font-size:10px;

</style></head>

<body>
<?
session_start();
?>
je te rappel aussi que tu as un paquet de code HTML avant ton session_start() :wink:
remonte le jusqu'au début du fichier et plus de problemes :D

par jeff » 28 oct. 2005, 14:03

session_start au debut du fichier
<?php
session_start();
?><!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>Untitled Document</title>
<style type="text/css">
<!--
body {
background-color: #CCCCCC;
}
-->
.style1{
color: #666666;
font-family: Verdana;
font-size:10px;

</style></head>

<body>


<?


// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.

// 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('yuu_sw',$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">erreur</p>';
include('http://yuu.sw.free.fr/echange/membres/login2.php'); // On inclus le formulaire d'identification
exit;
}
else {

$_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">erreur</p>';
include('http://yuu.sw.free.fr/echange/membres/login2.php'); // On inclut le formulaire d'identification
exit;
}


?>
</body>
</html> 

par yuuzhantar » 28 oct. 2005, 14:00

voici tout le code en entier
<!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>Untitled Document</title>
<style type="text/css">
<!--
body {
background-color: #CCCCCC;
}
-->
.style1{
color: #666666;
font-family: Verdana;
font-size:10px;

</style></head>

<body>
<?
session_start();
?>

<?


// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.

// 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('yuu_sw',$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">erreur</p>';
include('http://yuu.sw.free.fr/echange/membres/login2.php'); // On inclus le formulaire d'identification
exit;
}
else {

$_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">erreur</p>';
include('http://yuu.sw.free.fr/echange/membres/login2.php'); // On inclut le formulaire d'identification
exit;
}


?>
</body>
</html>
j'ai encore fait quelques modif de puis tout a l'heure, le session start est au début
mais 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 21

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 21

Vous etes bien logué
la ligne 21 est session start

je rappelle que j'ai mis le répertoire sessions à la racine de mon site [/quote]

par Truc » 28 oct. 2005, 13:46

l'erreur est bien le faite d'avoir du texte (HTML, espace, echo ) avant de session_start(), si tu inclus ton fichier dans un autre fait également attention a ce qu'il n'y ait rien avant.

A toi de chercher on ne peut rien faire de plus a part te guider :wink:

par jeff » 28 oct. 2005, 13:46

fait voit tout le code de login.php telle qu'il apparait dans ton editeur
et n'oubli pas la balise php(a gauche de code)

par yuuzhantar » 28 oct. 2005, 13:44

j'ai essayé de mettre session_start au debut comme ceci
<?

session_start();

// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.

// connexion à la base
mais sa met maintenant ceci
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 22

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 22
la ligne 22 est celle ou il y a session_start

par iclo » 28 oct. 2005, 13:37

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

par Cyrano » 28 oct. 2005, 13:37

Voir également sur ce forum dans la FAQ

par jeff » 28 oct. 2005, 13:35

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

par yuuzhantar » 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

par Cyrano » 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.

par yuuzhantar » 28 oct. 2005, 13:18

j'ai déjà lu et g rien compris

par Cyrano » 28 oct. 2005, 12:42

Regarde donc ici => la FAQ de free.fr

par yuuzhantar » 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 !';
}
?>