begin process at 2010 02 10 05:39:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Web 2.0

 > 

Ajax

 > 

problême session php ajax


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problême session php ajax

mardi 29 avril 2008 à 19:10:03 | problême session php ajax

petitfute

bonsoir!

okok!  lol

bon je vais essayer de faire simple , et propre.


le script
chat.php via ajax fait apel au script reponse.php pour afficher dans le  <div id="content"></div>  de
chat.php les reponses  a la requête de reponse.php.

la requête de reponse.php fonctionne avec un session 
".$_SESSION['pseudo']." .

donc le problême, c'est que si je met un session_start sur le script
reponse.php , ca me deconnecte comme un session_destroy.

Et si j'enleve le session_start  ma requête marche plus.

donc ma question est la suivante:

comment faire passer la session_start  vers reponse.php sans qu'il n y est de deconexion?
 



chat.php

<?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()", 5000);
}
</script>

</head>

<style type="text/css"> </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 ?
     } 
?>


<body onLoad="plop()"> 

    <div id="content"></div> 

<?php
mysql_close();
?>

          </form>

<script>
refresh();
</script>

</body></html>




 				 						 								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());



$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 '<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>';
}







mysql_close(); // Déconnexion de MySQL

?>

 		
mardi 29 avril 2008 à 20:18:58 | Re : problême session php ajax

gibozsec

Bonjour,

J'ai testé ton code en l'adaptant légèrement pour qu'il fonctionne en local, ça fonctionne chez moi.

Tu peux essayer de passer l'id de la session en GET lors de l'appel ajax au cas ou.

Grrrrrrrrrrr
mardi 29 avril 2008 à 20:19:22 | Re : problême session php ajax

neigedhiver

Salut,

Je comprends pas comment session_start() peut déconnecter...
Si ça déconnecte, c'est alors parce que le SID change. Si le SID change, c'est parce que le cookie de session n'est pas correctement écrit sur le client (navigateur).

Sinon, j'vois pas...


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mardi 29 avril 2008 à 20:21:05 | Re : problême session php ajax

Evangun

Hello,

Es-tu bien sûr que la session ne marche pas ? Il n'y a pas de raison que "session start" tre déconnecte comme tu dis.

Essaie de créer une variable de session dans une page et de vérifier vraiment si elle n'est pas retrouvée dans response.php.

à+
mardi 29 avril 2008 à 20:38:20 | Re : problême session php ajax

petitfute

 				
bonsoir!





et merci de vaut reponse!



je suis sur que sais un problême avec le session_start de reponse.php,

normalement sur le chat il doit y avoir afficher le pseudo du membre, la date, l'heure est le message du membre!








echo '<p><strong> '.$expediteur.' </strong> le '.$date.' : '.$message.' </p>';


Quand je me connecte sur le t'chat ,le pseudo est afficher 2 seconde et enssuite il disparait!



quand il disparait ca veut dire que sa y est on ai deconnecter!








si j'enleve le sessions _start de reponse.php il n y a pas de deconnexion mais ma requete marche plus du coup.









si vous voulez faire le teste par vous même: [ Lien ]

voici un compte test:


pseudo = petitfute

password= ouioui






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

attendez 5 seconde , fermer le chat retourner a l'acceuil et clique sur << mon espace >> et la normalement vous etes deconnecté donc vous pourrez pas rentre sur votre espace!
mardi 29 avril 2008 à 20:42:47 | Re : problême session php ajax

petitfute

re!

sur  un autre forum on m'a dit ceci!

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 problème c'est que je ne sais pas comment faire!
mardi 29 avril 2008 à 21:17:31 | Re : problême session php ajax

neigedhiver

Oui mais non...
Si tu n'utilises pas session_name(), par défaut, la session s'appelle PHPSESSID
C'est défini dans le fichier php.ini
session_name() sert à MODIFIER le nom de la session (comme il est obligatoire, il y a une valeur par défaut). Donc peu importe que tu le modifies ou non, ça doit fonctionner.

Bon mais le problème se situe peut-être à un autre niveau. Ce ne sont pas les cookies du navigateur, puisque je les ai acceptés, et paf...

J'aimerais bien voir ton code qui gère la connexion du membre, et comment tu vérifies qu'il est connecté.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mardi 29 avril 2008 à 21:21:01 | Re : problême session php ajax

petitfute

re!

le code qui  logue  quand on rentre le pseudo et le password??

mardi 29 avril 2008 à 21:23:49 | Re : problême session php ajax

neigedhiver

Oui. Pour voir comment tu gères ça (base de données ou autre), si ça tient la route ou non.
Et aussi le script qui effectue la vérification sur chaque page que le membre est bien connecté.


Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
mardi 29 avril 2008 à 21:30:21 | Re : problême session php ajax

petitfute


re!

donc voici la page qui sert a ce loguer!


<?php
session_start();
$_SESSION['pseudo'];
 require('fonction.php');
  include('connectes.php');

 

 $cnx=mysql_connect("................", "..................", "......................") or die("Pb connexion au serveur".mysql_error());
$db=mysql_select_db(".............") or die("Pb selection base".mysql_error());
//Si on vient du formulaire
if (!empty($_POST['pseudo']) && !empty($_POST['mot_de_passe']))
{
$mot_de_passe = mysql_real_escape_string($_POST['mot_de_passe']);
$pseudo = mysql_real_escape_string($_POST['pseudo']);

 

$en_ligne = online;
$name = $_SESSION['pseudo'];

mysql_query("UPDATE infoclients SET statut='".$en_ligne."', timestamp='".time()."' WHERE pseudo='".$_SESSION['pseudo']."'")or die (mysql_error());

$timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);

 


    $sql = "select mot_de_passe from infoclients where pseudo='".$pseudo."'";// cette requette veut dire selectionne le mot de passe dans la table infoclients de pseudo

  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);


   if(mysql_num_rows($req) != 0) {
    if($mot_de_passe == $data['mot_de_passe'])
{
    //mot de passe correct
    $_SESSION['pseudo'] = $pseudo;
          $_SESSION['logged'] = true;

echo ''.$_SESSION['pseudo'].' Vous êtes connecté';
include('index.php');


     }else{  //Le mot de passe n'est pas bon
          echo 'mot de passe incorrect';
     }
  }
  else
  { // le pseudo n'existe pas
    echo 'pseudo incorrect ,';

    echo 'vous devez être inscrit pour pouvoir vous connecté , vous allez être redigé vers la page d inscription.';
 include('index.php');
         redirection('inscription.php');

 }

 }
 
//On ne vient pas du formulaire

  if(isset($_SESSION['pseudo']))
  { //on s'est déjà connecté avec succès

  // on compte le nombre de messages non lus et dont le destinataire est le membre actuellement connecté
        $nbr_non_vus = mysql_query("SELECT COUNT(*) AS nbre FROM mp WHERE destinataire='".$_SESSION['pseudo']."' AND vu='0' AND (efface='0' OR efface='2')")or die(mysql_error());
// on en fait un array
        $nbre_non_vus = mysql_fetch_assoc($nbr_non_vus);
?>

 

 

              <!-- Rappel : debut de la page -->

   <head><!-- Rappel : debut information d'en tète  -->

       <title>uncupidon.com</title> <br /> <!-- Rappel : titre de la page   -->
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="Design1" href="design1.css" />

 

   </head><!-- Rappel : fin information d'en tète  -->
   <body>
 <?php

$reponse = mysql_query("SELECT id FROM infoclients WHERE pseudo='".$_SESSION['pseudo']."'");


while($resultat = mysql_fetch_assoc($reponse))
{
?>

 


        <p>
        Salut <?php echo $_SESSION['pseudo']; ?> !<br />

        <div id="conteneur">


                <ul id="menu">
                        <li><a href="photo1.php">Mes photos</a></li>
                        <li><a href="mp.php">(<?php echo $nbre_non_vus['nbre'];?>)Message</a></li>
                        <li><a href="index.php">Accueil</a></li>
                        <li><a href="deconexion.php">Deconexion</a></li>
      <li><a href="chat.php">.</a></li>
      <li><a href="reception.php">.</a></li>
             <?php echo'<li><a href=modifprofil.php?id='.$resultat['id'].'>Modifier</a></li>';?>
    <?php
    }
    ?>
                </ul>

                <div id="contenu">
                        <?php

 


$reponse = mysql_query("SELECT pseudo, prenom, photo1 FROM infoclients WHERE pseudo='".$_SESSION['pseudo']."'");
while ($donnees = mysql_fetch_array($reponse) )
{
?>

<p>Votre descriptif: <?php echo $donnees['pseudo']; ?> <br /> </p>

 <p><img src="images/<?php echo $donnees['photo1']; ?>" alt="image" /></p>

<?php
}

mysql_close();
?>

                </div>
<?php
}else { //on ne s'est pas encore connecté

    echo 'vous devez être inscrit pour pouvoir vous connecté , vous allez être redigé vers la page d inscription.';
 include('index.php');
  redirection('inscription.php');

 }


?>
</body>
   </html><!-- Rappel : fin de la page -->

 		

1 2

Cette discussion est classée dans : message, php, mysql, session, reponse


Répondre à ce message

Sujets en rapport avec ce message

Session php [ par chmanu ] Bonjour, voici mon pb : j'execute une requete SQL dont j'affiche les resultats dans "page1.php". A coté de chaque resultat, je met un lien qui renvoi pb session php/mysql [ par joduak ] Yop ! Voilà j'ai 2 petites questions urgentes. Vous serez super cool de bien répondre à mes questions !! :) C'est au niveau des sessions php avec bas Sessions permissions [ par Soul EX ] session_start(); $login = $_POST["login"]; $password = $_POST["password"]; $connexion = mysql_connect("*","*","*"); mysql_select_db("*",$connexion); pb de boucle je supose en php ( navigation dans un tableau associé) [ par fredericmaill ] Bonjour @ tous !!! Voila je vous explique mon problème, je réalise un système d’authentification en php avec un system de sessions. Ce script permet l pb de boucle je supose en php ( navigation dans un tableau associé) [ par fredericmaill ] Bonjour @ tous !!! Voila je vous explique mon problème, je réalise un système d’authentification en php avec un system de sessions. Ce script permet l php: fonction mail(), compatibilité yahoo, hotmail et autres [ par cguibs82 ] Bonjour, Je sais que plusieurs post parlent du même sujet. mais je n'arrive pas à le faire fonctionner.je bâtis un newsletter. le problème est que yah un méchant bug dans mon chat [ par spiesalex ] Salut tous le monde j'ai vraiment un probleme lorsque j,actualise ma page tous se multiplie! ex: http://membres.netrock.ca/lga/tribunat.php voici m PB avec les SESSIONS [ par jadiema ] Bonjour à tous, Je veux créer un espace membre en PHP utilisant les SESSIONS et connecté à une base MySQL. J'utilise FREE pour cela et j'ai bien créé message d'erreur authentification [ par didine6 ] Bonjour,voici mon problème : j'ai une page auth.php avec un login et un mot de passe. Ce script (ci-dessous) vérifie si l'utilisateur est bien dans la Sessions : passage de PHP4 à PHP5 [ par arnold002 ] Bonjour à tous,Je fais tourner un site web en local grâce à EasyPhp.Je viens de passer de la version 1.8 (PHP4) à la version 2.0 (PHP5).Aucun problème


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales