Problême de deconexion ajax et php aider moi

cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008 - 28 avril 2008 à 18:01
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 29 avril 2008 à 12:51

18 réponses

nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
28 avril 2008 à 18:12
Salut,

Un bug code source je suppose, ça se produit aléatoirement (citation de bultez) !!! lol
Peus tu reposer la question, stp

Si t'a besoin d'aide, MP !!!
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
28 avril 2008 à 18:38
bonjour!


j'ai un probleme bizard!


Quand je vais sur le t'chat ma SESSION est automatiquement deconnecté!


si j'enleve le session_start(); du deuxieme script, il n ya plus de deconexion mais ma requete marche plus vu que je me sert de $_SESSION['pseudo'];..



<?php
$reponse = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'");
while ($donnees = mysql_fetch_array($reponse) )?>


j'utilise des session_start() pratiquement sur toute mes pages, ils fonctionnent bien , aucun problème.


la deconnection s'effectue juste quand je me rend sur la page de chat en même temps que le rafraichisement du deuxieme script que j'ai donnée.

si vous faire le teste par vous même: http://www.uncupidon.com

voici un compte test:

pseudo = test

password= azerty


une fois connecter , cliquer sur une des photos de la premiere page et cliquer sur chat!

normalement vous allez etre deconectée!


bon j'espere que vous allez pouvoir m'aider!


voici les 2 script qui rentre en jeu:



<?php
session_start();
$_SESSION['pseudo'];
$_SESSION['logged'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>Chat</title>
<script type="text/javascript">
function plop()
{
var xhr_object = null;

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else
{
if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else // XMLHttpRequest non supporté par le navigateur
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
}







var method = "POST";
var filename = "reponse.php";

var requete = "message=<?php echo'.$retour.'?>";

xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4)
{
var reponse = xhr_object.responseText;
document.getElementById("content").innerHTML = reponse;
}
}

xhr_object.open(method, filename, true);

xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhr_object.send(requete);

}






</script>

<script>
function refresh()
{
plop();
setTimeout("refresh()", 5000);
}
</script>

</head>

<style type="text/css">


#chatcomplet
{
width:400px;
height:400px;
background-repeat: no-repeat;
border: 1px solid black;
}
#content
{
position : absolute ;
width:400px;
height:300px;
background-color: red;
color : yellow;
overflow : scroll ;
border: 1px solid green;
}
#message
{
background-color: green;
background-attachment: fixed;
width:400px;
height:100px;
border: 1px solid green;
padding: 1px;
padding-top: 300px;
}
</style>


$cnx=mysql_connect("......", "..........", "..........") or die("Pb connexion au serveur".mysql_error());
$db=mysql_select_db("..........") or die("Pb selection base".mysql_error());



if ( isset( $_POST['message'] ) && !is_null( $_POST['message'] ) )
{
$message = mysql_real_escape_string( htmlspecialchars( $_POST['message'] ) );
$timestamp = time();
$expediteur = $_SESSION['pseudo'];
$destinataire = $_GET['pseudo'];
mysql_query( "INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')" ); // et tu ne stockes pas le résultat dans une variable ?
}

$destinataire = $_GET['pseudo'];
?>















<form action="<?php echo'chat.php?pseudo='.$destinataire.''?>" method="post"/>





Message :











<?php


mysql_close();
?>

</form>


<script>
refresh();
</script>

</html>




et voici le deuxieme, il sert a afficher les message dans le
,

il se rafraichie toute les 5 seconde:




<?php
session_start();

$cnx=mysql_connect("...........", "...........", "...........") or die("Pb connexion au serveur".mysql_error());
$db=mysql_select_db(".............") or die("Pb selection base".mysql_error());


$reponse = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'");
while ($donnees = mysql_fetch_array($reponse) )
{

$date = date('d/m/Y à Hhi', $donnees['timestamp']);
$message = $donnees['message'];
$expediteur = $donnees['expediteur'];
$pseudo= $_GET['pseudo'];

echo ' '.$expediteur.' le '.$date.' : '.$message.'

';
}
mysql_close(); // Déconnexion de MySQL
?>
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
28 avril 2008 à 18:55
Salut,

Je vois pas ou est le problème, je suis aller voir sur le site j'ai fais tout ce que tu as dit et je n'ai eu aucun problème !!!

++

Si t'a besoin d'aide, MP !!!
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
28 avril 2008 à 19:08
re!

oui dsl j'avais fait des modif qui ne marche , donc tu ne pouvez pas voir le problème ,

j'ai remis comme avant si tu veut tu peut refaire le test !


tu va sur le chat tu attend 5 seconde , tu ferme le chat , tu va sur acceuil , enssuite mon compte et tu vera tu es deconecté.

merci de ton aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
28 avril 2008 à 19:09
re!

oui dsl j'avais fait des modif qui ne marche pas, donc tu ne pouvez pas voir le problème ,

j'ai remis comme avant si tu veut tu peut refaire le test !


tu va sur le chat tu attend 5 seconde , tu ferme le chat , tu va sur acceuil , enssuite mon compte et tu vera tu es deconecté.

merci de ton aide.
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
28 avril 2008 à 19:14
effectivement, tu est sur que tu n'a pas oublié un session_start quelque part ?
Je crois que ce problème est plus en rapport avec php qu'avec javascript !!

Si t'a besoin d'aide, MP !!!
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
28 avril 2008 à 19:24
voici les script actuel:

les session_start sont bien la c'est pour ca que je ne comprend pas!








<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>Chat</title>
<script type="text/javascript">
function plop()
{
var xhr_object = null;

if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else
{
if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else // XMLHttpRequest non supporté par le navigateur
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
}









var method = "POST";
var filename = "reponse.php";
var requete = "message=<?php echo'.$retour.'?>";




xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4)
{
var reponse = xhr_object.responseText;
document.getElementById("content").innerHTML = reponse;
}
}

xhr_object.open(method, filename, true);

xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");


xhr_object.send(requete);

}






</script>

<script>
function refresh()
{
plop();
setTimeout("refresh()", 10000);
}
</script>

</head>

<style type="text/css">


#chatcomplet
{
width:400px;
height:400px;
background-repeat: no-repeat;
border: 1px solid black;
}
#content
{
position : absolute ;
width:400px;
height:300px;
background-color: red;
color : yellow;
overflow : scroll ;
border: 1px solid green;
}
#message
{
background-color: green;
background-attachment: fixed;
width:400px;
height:100px;
border: 1px solid green;
padding: 1px;
padding-top: 300px;
}
</style>




<?php


$cnx=mysql_connect("***********", "***********", "***********") or die("Pb connexion au serveur".mysql_error());
$db=mysql_select_db("**********") or die("Pb selection base".mysql_error());



if ( isset( $_POST['message'] ) && !is_null( $_POST['message'] ) )
{
$message = mysql_real_escape_string( htmlspecialchars( $_POST['message'] ) );
$timestamp = time();
$expediteur = $_SESSION['pseudo'];
$destinataire = $_GET['pseudo'];
mysql_query( "INSERT INTO chat VALUES('', '$expediteur', '$destinataire', '$message', '$timestamp', '')" ); // et tu ne stockes pas le résultat dans une variable ?
}

$destinataire = $_GET['pseudo'];
?>















<form action="<?php echo'chat.php?pseudo='.$destinataire.''?>" method="post"/>





Message :











<?php


mysql_close();
?>

</form>


<script>
refresh();
</script>

</html>









et voici le deuxieme script actuel reponse.php:



<?php
session_start();


$cnx=mysql_connect("**********", "**********", "*********") or die("Pb connexion au serveur".mysql_error());
$db=mysql_select_db("*******") or die("Pb selection base".mysql_error());


echo ''.$_SESSION['pseudo'].'';


$reponse = mysql_query("SELECT expediteur, message, timestamp FROM chat WHERE destinataire='".$_SESSION['pseudo']."'OR expediteur='".$_SESSION['pseudo']."'");
while ($donnees = mysql_fetch_array($reponse) )
{

$date = date('d/m/Y \à H\hi', $donnees['timestamp']);
$message = $donnees['message'];
$expediteur = $donnees['expediteur'];
$pseudo= $_GET['pseudo'];
echo ''.$_SESSION['pseudo'].'';

echo ' '.$expediteur.' le '.$date.' : '.$message.'

';
}
mysql_close(); // Déconnexion de MySQL
?>
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
28 avril 2008 à 19:54
Comme je n'ai pas la réponse a ton problème je vais laisser le post a quelqun de plus compétent que moi pour répondre a ta question !!!

a++

Si t'a besoin d'aide, MP !!!
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
28 avril 2008 à 19:56
ok merci cas même de ton aide
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
29 avril 2008 à 11:34
personne peut m'aider?
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
29 avril 2008 à 11:39
comme je te l'ai dit ça doit être un problème en rapport avec php donc il serai bien de poster sur phpcs !!!

PS : si cette réponse te convient merci de l'accèpter !!

Si t'a besoin d'aide, MP !!!
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
29 avril 2008 à 11:43
re!

non ,on m'a dit qu'il fallait que je recupere la session précédememnt créée...

voici exactement ce quond m'a expliqué:

tu ouvres une nouvelle session, c normal... tu dois récupérer la session précédememnt créée...


session_name('yoplaboum');
session_start();


le probleme c'est que je n'ai pas compris comment faire!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
29 avril 2008 à 11:53
tu a essayé de retirer session_name ?

Si t'a besoin d'aide, MP !!!
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
29 avril 2008 à 12:00
re!

et merci de ton aide.

justement je n'ai pas de session_name().

il m'a explique que je devait recuperer la session du premier script grace a session name . et l'envoyer sur le deuxieme script reponse.php.

merci
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
29 avril 2008 à 12:11
http://www.php.net/session_name !!

Si t'a besoin d'aide, MP !!!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
29 avril 2008 à 12:41
de rien, j'ai vu que tu était allez poster sur phpcs !!!

Si t'a besoin d'aide, MP !!!
0
cs_petitfute Messages postés 20 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 29 avril 2008
29 avril 2008 à 12:44
oui dsl!

oui comme tu me l'as dit je suis allez sur le php !

j'ai pas comprit comment nommer et recupere le session_name :


merci pour ton aide!
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 35
29 avril 2008 à 12:51
De rien, j'èspère que tu trouveras une réponse a ta question !!!

www.php.net/session_name
www.php.net/session_start

PS : si ma réponse te convient merci de la mettre en réponse accèpté !!!

Si t'a besoin d'aide, MP !!!
0
Rejoignez-nous