PHP сессия не устанавливается с помощью php & EXTJS - PullRequest
0 голосов
/ 20 сентября 2010

Когда я вызываю php-файл с помощью Ajax, я делаю это:

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');
        }
    });
}

в моем php-файле я установил $ _SESSION, чтобы использовать его в моей администрации.php

if($role=='Administrateur'){
                    $_SESSION['role']='admin';
                    $_SESSION['email']=$email;
                    $message = 'admin';
                }

И в моем Administration.php у меня есть это:

<?php
session_start();
echo "alert(''". $_SESSION['role'] . ")";
    if($_SESSION['role']=='admin'){
        //echo "alert('pro')";
    }
    else{
        //echo "alert('admin')";
        header("Location:index.php");
    }
?>

И в моем index.php у меня есть это:

<?php

    session_start();
    $_SESSION['role']='visiteur';
    $_SESSION['email']='no';


?>

проблема в том, что меня никогда не перенаправляют на Administration.php, я думаю, потому что $ _SESSION ['role'] никогда не устанавливается как 'admin'

Ответы [ 3 ]

0 голосов
/ 20 сентября 2010

Я не эксперт ExtJS, но, судя по логике, ваш result.responseText всегда равен alert('something'), и никогда не бывает чем-то простым, например admin или pro, поэтому доходит до последнего else заявление. Может быть, вы должны исправить вывод, отправленный PHP, пропустите alert()

0 голосов
/ 08 марта 2011

Я использовал UTF-8, проблема в том, что он отправляет символ спецификации перед потоком, поэтому он считает, что session_start () отправляется не первым. Я могу использовать UTF-8 (без спецификации). Надеюсь, это поможет:)

0 голосов
/ 20 сентября 2010

Вы должны попробовать session_start сразу после тега php без пробелов между началом сессии и тегом php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...