Problême de deconexion ajax et php aider moi

Signaler
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-

18 réponses

Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
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 !!!
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008

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
?>
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
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 !!!
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008

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.
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008

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.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
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 !!!
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008

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
?>
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
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 !!!
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008

ok merci cas même de ton aide
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008

personne peut m'aider?
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
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 !!!
Messages postés
20
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
29 avril 2008

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!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
tu a essayé de retirer session_name ?

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

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
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
http://www.php.net/session_name !!

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
de rien, j'ai vu que tu était allez poster sur phpcs !!!

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

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!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
33
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 !!!