IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Jquery Mobile - Connexion Serveur - Session


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 21
    Par défaut Jquery Mobile - Connexion Serveur - Session
    Bonjour à tous !

    Voilà je boss sur une application faite en HTML5 + Jquery Mobile. Mon problème se porte uniquement sur le Jquery.
    Cette application démarre en demandant de se connecter. Donc on a un côté client et un serveur (fait en PHP et relié à une BDD MySQL).

    Donc j'arrive sur la page, j'entre login + mot de passe et je "submit". Là via de l'AJAX, j'envoie la requête de connexion à mon serveur qui me répond avec du JSON success si la connexion est valide. Jusqu'ici tout fonctionne.

    Seulement, une fois la connexion validée par le serveur, cela m'amène sur une seconde page dont le but est d'afficher une liste de groupes provenant de la BDD MySql. Donc pour cela je fais une nouvelle requête AJAX pour demander l'affichage de cette liste (le serveur répond ok+la liste ou NotConnected).
    Côté serveur PHP j'ai fait en sorte que pour cette requête, le client DOIT être connecté (ce qui est fait page précédente).

    Mais en fait je reçois toujours NotConnected, comme ci entre la première et la seconde requête je "perdais la connexion".
    Je pense qu'il s'agit en fait d'un problème de sessions non ? Si tel est le cas, je ne connais pas bien le système de sessions et j'ai peut être mal fait les choses...

    Voilà donc mon problème. Je vous met ci-dessous le code pour plus de précisions.
    Le code Client (Jquery) : avec la première requête de connexion (qui fonctionne), puis la requête pour SelectGroupe qui me répond NotConnected
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    $(document).on('pageinit', '#loggin', function(){ 
        $(document).on('click', '#submit', function() { // catch the form's submit event
            if($('#login').val().length > 0 && $('#mdp').val().length > 0){
                // Send data to server through the Ajax call
                // action is functionality we want to call and outputJSON is our data
                    $.ajax({url: 'http://localhost:8888/Apeiron/server/data.php',
                        data: {'action' : 'Connexion', 'login': $('#login').val(), 'mdp':$('#mdp').val()},
                        type: 'get',                  
                        async: 'true',
                        dataType: 'json',
    //                    beforeSend: function() {
    //                        // This callback function will trigger before data is sent
    //                        $.mobile.loading('show', {theme:"a", text:"Please wait...", textonly:true, textVisible: true}); // This will show ajax spinner
    //                    },
    //                    complete: function() {
    //                        // This callback function will trigger on data sent/received complete
    //                        $.mobile.loading('hide'); // This will hide ajax spinner
    //                    },
                        success: function (result) {
                            if(result.success) {
                                alert(result.success);
                                $.mobile.changePage("#second");
                            } else {
                                alert('Logon unsuccessful! ' + result.status);
                            }
                        },
                        error: function (request,error) {
                            // This callback function will trigger on unsuccessful action               
                            alert('error Connexion : ' + error + ' request Connexion : ' + request);
                        }
                    });                  
            } else {
                alert('Please fill all necessary fields!');
            }          
            return false; // cancel original event to prevent form submitting
    		//makeCorsRequest();
        });   
    });
     
    $(document).on('pagebeforeshow', '#second', function(){ 
        $.mobile.activePage.find('.ui-content').html('Welcome ' + $('#login').val());
        $.ajax({url: 'http://localhost:8888/Apeiron/server/data.php',
                        data: {'action' : 'SelectGroupes'},
                        type: 'get',                  
                        async: 'true',
                        dataType: 'json',
                        beforeSend: function() {
                            // This callback function will trigger before data is sent
                            $.mobile.loading('show', {theme:"a", text:"Please wait...", textonly:true, textVisible: true}); // This will show ajax spinner
                        },
                        complete: function() {
                            // This callback function will trigger on data sent/received complete
                            $.mobile.loading('hide'); // This will hide ajax spinner
                        },
                        success: function (result) {
                            if(result.success) {
                                alert(result.success);
                                $.mobile.changePage("#second");                        
                            } else {
                                alert('Logon unsuccessful! ' + result.status);
                            }
                        },
                        error: function (request,error) {
                            // This callback function will trigger on unsuccessful action               
                            alert('error SelectGroupe : ' + error + ' request SelectGroupe : ' + request);
                        }
                    });
    });
    Le code côté serveur (PHP) gérant les requêtes et les sessions (normalement :s mais ca doit pas bien fonctionner) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    include "config.php";
    	// Permet de charger les classes utilisées automatiquement
    	function chargerClasse($classe)
    	{
    	  require "classes/" . $classe . '.class.php'; 
    	}
    	// Indication à PHP que la fonction 'chargerClasse'
    	// doit être utiliser pour charger une classe non déclarée
    	spl_autoload_register('chargerClasse');
    	session_start();
     
    	// Si la connexion n'est pas encore faite avec la bdd
    	if (!isset($_SESSION['connexion']))
    	{
    	  $connexion = new ConnexionBDD($BDD_host, $BDD_base, $BDD_user, $BDD_password);
    	  $_SESSION['connexion'] = $connexion;
    	}
    	// Si elle est déjà faite
    	else
    		$connexion = $_SESSION['connexion'];
     
    	$bdd = $connexion->pdo();
     
    	// Création des managers
    	$UsersManager = new UsersManager($bdd);
    	$GroupesManager = new GroupesManager($bdd);
    	$HTTPRequest = new HTTPRequest($bdd);
     
    	if(isset($_GET['action']) && $_GET['action'] != "")
    		$action = $_GET['action'];
    	else
    		$action = "";
     
    	// Si la session perso existe, on restaure l'objet.
    	if (isset($_SESSION['user'])) 
    	{
    	  $user = $_SESSION['user'];
    	}
     
    	// Si la session groupes existe, on restaure l'objet.
    	if (isset($_SESSION['groupes'])) 
    	{
    	  $groupes = $_SESSION['groupes'];
    	}
    	else
    		$groupes = array();
     
    	// Si l'utilisateur n'est pas connecté
    	if(!$HTTPRequest->IsConnected())
    	{
    		if($action == "Connexion" && isset($_GET['login']) && isset($_GET['mdp'])
    			&& $_GET['login']!="" && $_GET['mdp']!="")
    		{
    			$user = $UsersManager->Connexion(new Users(null, $_GET['login'], $_GET['mdp'], null, null, null));
    		}
    		else if($action == "Inscription")
    		{
    			if(isset($_GET['login']) && isset($_GET['mdp']) && isset($_GET['mail'])
    					&& $_GET['login']!="" && $_GET['mdp']!="" && $_GET['mail']!="")
    				{
    					$user = new Users(null, $_GET['login'], $_GET['mdp'],
    						$_GET['mail'], null, null);
    					$UsersManager->add($user);
    				}
    				else
    				{
    					$HTTPRequest->Wrong("wrongData");
    				}
    		}
    		else
    		{
    			$HTTPRequest->Wrong("NotConnected");
    		}
    	}
    	// Si l'utilisateur est connecté
    	else
    	{
                    switch($action)
    		{
                            case "SelectGroupes" :
    					$groupes = $GroupesManager->SelectGroupes($user);
    			break;
    			case...
    			default :
    				$HTTPRequest->Wrong("WrongAction");
    			break;
    		}
    	}
     
    	// Si on a créé un user, on le stocke dans une variable session
    	if (isset($user)) 
    	{
    		$_SESSION['user'] = $user;
    	}

    Voilà j'espère que vous m'avez compris, n'hésitez pas s'il vous manque des infos ou des précisions et d'avance merci à ceux qui prendront le temps de m'aider.
    Bonne soirée

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 201
    Par défaut
    Bonjour,
    ton problème est visiblement plus un soucis coté serveur, je déplace.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 21
    Par défaut
    Hello,

    Merci, en effet

    Et par la même occasion, petit UP

    n'hésitez pas si vous voulez + de détails ou + de code ou autre,

    Merci

Discussions similaires

  1. Connexion Serveur Distant PhoneGap/JQuery Mobile
    Par milene31 dans le forum jQuery
    Réponses: 0
    Dernier message: 11/04/2013, 10h14
  2. Connexion client mobile et serveur JEE
    Par hichem tunis dans le forum Java EE
    Réponses: 1
    Dernier message: 30/09/2011, 16h15
  3. Connexion à une base de donnée Oracle avec PhoneGap et JQuery Mobile
    Par charfi-dev dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 17/06/2011, 12h11
  4. Connexion serveur - application mobile
    Par elmagique dans le forum Général Java
    Réponses: 0
    Dernier message: 23/05/2010, 19h30
  5. Windows Mobile : connexion à un serveur
    Par Nemesis007 dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 14/12/2009, 21h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo