Forums Développement Multimédia

Aller au contenu

Pb session PHP + AJAX

CODE Ajax JQuery EaseJs

3 réponses à ce sujet

#1 nicolas.perussel

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 234 messages

Posté 29 January 2008 - 10:29 AM

Bonjour à tous,

Je rencontre un petit pb que je n'arrive pas à résoudre...

je me suis fait un petit formulaire de connexion en PHP et Ajax et la pb c'est que PHP fait des siennes...

Code HTML

<div id="message"></div>

<form action="" name="connexion" method="post" enctype="multipart/form-data">

	<label>Identifiant</label>
	<input type="text" id="login" name="login" /> <br/>
	
	<label>Mot de passe</label>	<input type="password" id="password" name="password" /> <br/>
	
	<input type="button" name="submit" value="Envoyer" onclick="verification(login.value, password.value);"/>

</form>

Code AJAX (seulement la fonction) :

function verification(login, password) {
	
var xhr = getXhr();
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			reponse = xhr.responseText;
			document.getElementById('message').innerHTML = reponse;
		}
	}
	
xhr.open("POST","include/php/verification_connexion.php",true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1");
login = document.connexion.login.value;
password = document.connexion.password.value;
xhr.send("login="+escape(login)+"&password="+escape(password));
}

Code PHP :
function debut_session($id, $nom, $societe) {
	session_start();
	$_SESSION['id_client'] = $id;
	$_SESSION['nom_client'] = $nom;
	$_SESSION['societe'] = $societe;
	$_SESSION['marker'] = true;
}

function redirection($chemin) {
	header("Location: $chemin");
}


include("../../connexion.php");

$login = isset($_POST['login']) ? $_POST['login'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';

if ( ($login != '') && ($password != '')) {

$requete = "SELECT * FROM compte_client WHERE login='".$login."' AND password='".$password."' ";
$resultat = mysql_query($requete) or die(mysql_error());
$dsp = mysql_fetch_object($resultat);
$res = mysql_num_rows($resultat);

	if ($res == 1) {
		debut_session($dsp->id, $dsp->nom, $dsp->societe);
		redirection("espace_travail.php");	
	} else {
		echo "<b>Vous devez d'abord être client et avoir obtenu vos identifiants de connexion pour vous connecté.</b>";
	}
} else {
	echo "<b>Vous devez saisir votre identifiant et votre mot de passe</b>";
}

Le message d'avertissement :

Warning: session_start(): Cannot send session cookie - headers already sent by et bla bla bla... idem pour le header...

j'ai aucun header envoyé ni aucune sortie... je comprends pas ce message... serait-ce la fonction AJAX qui "déconne" ?

merci à tous

#2 Matthieu!

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 4003 messages

Posté 29 January 2008 - 10:35 AM

Même pas un espace ou saut de ligne avant une balise php ? dans connexion .php ? dans verification_connexion.php ?

Et là tu ne déclares pas un header ?
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1"); 


#3 codesign

  • Members
  • PipPipPipPipPipPipPipPip
  • 502 messages

Posté 29 January 2008 - 10:37 AM

Salut, première chose, est-ce que ton code PHP fonctionne sans passer par un appel AJAX ?
Deuze, est-ce que tu n'aurais pas un espace qui trainerait en début de fichier PHP ?
Troize, c'est justement dans le blabla que tu devrais trouver la ligne ou du moins un début de réponse permettant de t'aiguiller wink.gif

#4 nicolas.perussel

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 234 messages

Posté 29 January 2008 - 10:49 AM

merci de votre reactivité...

j'avais des espaces blancs dans le fichier connexion.php (merci au bla bla bla gourou.gif )

merci encore !



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP