PHP session ne marche pas

Fermé
funkeen Messages postés 204 Date d'inscription mardi 14 décembre 2010 Statut Membre Dernière intervention 12 novembre 2011 - 10 août 2011 à 16:30
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 - 11 août 2011 à 12:39
Bonjour je fait un petit chat, c'est le même genre que celui du siteduzero, bon pour éviter que les utilisateurs réécrivent leur pseudo a chaque message j'ai voulu utiliser les sessions mais ca ne marche pas ! vous pouvez le constater sur le chat en question = le chat

bon voilà index.php :

Code : PHP - Sélectionner
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<head>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'fr'}
</script>
<title>ServerAllo</title>
<meta name="keywords" content="chat, mini, discussions, or, orange, pseudo, message, réactualiser, blanc, php, html,
minichat, écrire, parler, social, convivial"/>
<meta name="description" content="Un petit chat pour discuter entre amis"/>
<link rel="stylesheet" type="text/css" href="file.css"/>
<link rel="shortcut icon" href="ico.png"/>
</head>
<body>
<?php
$file="stats.html";
$commande = "r+";
$ex = fopen($file, $commande);
fgets($ex);
$ip = $_SERVER[REMOTE_ADDR];
$affich = 'Adresse ip: '.$ip.'</br>';
fputs($ex, $affich);
fclose($ex);
?>
<g:plusone size="tall"></g:plusone>
<center><form method="post" action="chat.php">
<h4>Chosir un pseudo:</h4><input type="text" name="log"/>
<input type="submit" value="chat!"/>
</form>
<?php
if(!empty($_POST['log'])){
session_start();
$_SESSION['nom'] = $_POST['log'];
header('Location: chat.php');
}
?>


et voilà chat.php :


Code : PHP - Sélectionner
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
session_start();
?>
<head>
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'fr'}
</script>
<title>ServerAllo</title>
<meta name="keywords" content="chat, mini, discussions, or, orange, pseudo, message, réactualiser, blanc, php, html,
minichat, écrire, parler, social, convivial"/>
<meta name="description" content="Un petit chat pour discuter entre amis"/>
<link rel="stylesheet" type="text/css" href="file.css"/>
<link rel="shortcut icon" href="ico.png"/>
</head>
<body>
<?php
$file="stats.html";
$commande = "r+";
$ex = fopen($file, $commande);
fgets($ex);
$ip = $_SERVER[REMOTE_ADDR];
$affich = 'Adresse ip: '.$ip.'</br>';
fputs($ex, $affich);
fclose($ex);
?>
<form method="post" action="index.php">
<input type="submit" value="Réactualiser pour voir les messages des autres utilisateurs"/>
</form>
<g:plusone size="tall"></g:plusone>
<?php
if(isset($_POST['log'])){
$to = "tmwillva@gmail.com";
$su = "chat";
}
?>
<center><form method="post" action="cam.php">
<h4>Connecté sous <?php echo $_SESSION['nom'];?></h4>
<h4>Message:</h4><textarea type="text" name="msg" rows="5" cols="20"></textarea></br>
<input type="submit" value="chat!"/>
</form>
<div id="affiche">
<?php
try{
$secu[PDO::ATTR_ERRMODE] = ERRMODE_EXCEPTION;
$var1 = new PDO('mysql:host=xxx;dbname=server2', 'xxxx', 'xxx');
$var2 = $var1->query('SELECT * FROM disc ORDER BY ID DESC LIMIT 0,5');
while($boucle = $var2->fetch()){
echo ''.$boucle['pseudo'].' : '.$boucle['msg'].'</br>';
}
$var2->closeCursor();
}
catch(Exception $x){
die('Erreur: '.$x->getMessage());
}
?>
</div>
</center>
</body>


Alors pourquoi ca ne marche pas (vous pouvez tester sur le site, j'ai mit le lien au début du post)

Merci d'avance



4 réponses

Skeletyon Messages postés 1552 Date d'inscription jeudi 20 novembre 2008 Statut Membre Dernière intervention 30 décembre 2013 156
10 août 2011 à 16:33
Bonjour.

Sans même m'étendre sur le code, il faut démarrer les sessions partout ou elles sont nécessaires, avant tout autre code. Il vous le manque dans index.php
0
lupuz Messages postés 68 Date d'inscription mercredi 10 août 2011 Statut Membre Dernière intervention 12 août 2011 11
10 août 2011 à 16:36
bonjour,

Dans ton index.php
tu devrais commencer par mettre ton session_start() avant tout autre code (HTML compris), les sessions php envoient des inforamtions dans les headers HTTP.
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
10 août 2011 à 18:52
Salut,

Il en va de même pour la fonction header() que tu utilises au milieu du code : elle ne peut plus être utilisée après l'envoie de premier caractère au client.
0
bg62 Messages postés 23590 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 15 avril 2024 2 362
11 août 2011 à 12:39
session ou sessions ???
0