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
23338
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
7 août 2022
- 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
1547
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
30 décembre 2013
157
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
18836
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
5 août 2022
4 409
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
23338
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
7 août 2022
2 323
11 août 2011 à 12:39
session ou sessions ???
0