Quand j'appelle un fichier php en utilisant Ajax, je fais ceci:session PHP n'est pas réglé en utilisant php & ExtJS
function logIntoApp(){
Ext.Ajax.request({
url:'php/login.php',
params:{
action:'login',
email:Ext.getCmp('userLogin').getValue(),
motDePasse:Ext.getCmp('passwordLogin').getValue()
},
method:'GET',
success:function(result, request){
//Ext.MessageBox.alert('Success',);
if(result.responseText == 'admin'){
//Ext.MessageBox.alert('Alert', result.responseText);
window.location.replace("administration.php");
}
else if(result.responseText == 'pro'){
//Ext.MessageBox.alert('Alert', result.responseText);
window.location.replace("proAdministration.php");
}
else{
Ext.MessageBox.alert('Alert', result.responseText);//'Email ou mot de passe incorrect!');
}
},
failure:function(result, request){
Ext.MessageBox.alert('Failed', 'Erreur de chargement de données');
}
});
}
dans mon fichier php, je mis un _SESSION $ pour l'utiliser dans mon administration.php
if($role=='Administrateur'){
$_SESSION['role']='admin';
$_SESSION['email']=$email;
$message = 'admin';
}
Et dans mon administration.php, je ceci:
<?php
session_start();
echo "alert(''". $_SESSION['role'] . ")";
if($_SESSION['role']=='admin'){
//echo "alert('pro')";
}
else{
//echo "alert('admin')";
header("Location:index.php");
}
?>
Et dans mon index.php je ceci:
<?php
session_start();
$_SESSION['role']='visiteur';
$_SESSION['email']='no';
?>
le problème est que je ne suis jamais redirigé vers administration.php, je pense parce que le $ _SESSION [ « rôle »] est jamais défini comme « admin »
Comment les espaces ne seront-ils pas utiles? Vous pouvez commencer la session quand vous voulez, assurez-vous juste qu'il est avant d'utiliser la superglobale $ _SESSION, et oui, avant d'envoyer une sortie. – AlexanderMP
Ce n'est pas pertinent. Vous pouvez avoir autant d'espaces/sauts de ligne/onglets que vous le souhaitez entre Php et session_start() ;. La seule chose qui compte, c'est que rien n'est imprimé avant le tag php. – halfdan