PHP session ne marche pas

funkeen Messages postés 232 Statut Membre -  
bg62 Messages postés 26231 Date d'inscription   Statut Modérateur Dernière intervention   -
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 1622 Statut Membre 156
 
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 71 Statut Membre 11
 
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 20367 Statut Contributeur 4 509
 
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 26231 Date d'inscription   Statut Modérateur Dernière intervention   2 418
 
session ou sessions ???
0