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

Langage PHP Discussion :

[PHP-JS] Variable globale form


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut [PHP-JS] Variable globale form
    Bonjour,
    A l'index d'un outil de mise à jour de contenu dynamique d'un site web j'ai mis un <form action ="monOutil.php" method = "POST"></form>
    avec champs de saisie (login et password) Or je souhaiterais que ces 2 variables soient globales et envoyées au fichier de connexion (connexion.php >> MySQL) sans pour autant appeller la page.
    Comment procéder?
    Merci

  2. #2
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    Ta question est un peu ambigüe.

    Ce que je comprends en te lisant, c'ets que tu veux envoyer les variables sans pour autant interagir avec le serveur. Je me doute que ce n'est pas ca...

    Alors, je devine:

    Première intuition:

    Tu veux qu'une fois le formulaire de connection rempli et envoyé, te retrouver sur ta page de départ.

    Deux solutions:
    A la fin de ton script connection.php tu fais une redirection grâce à la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header( "Location: $p_url" );
    Attention, si tu utilises cette méthode, alors connecion.php ne doit rien envoyer (pas d'affichage html) avant d'envoyer le header

    Ou alors, tu fais le traitement de ton formulaire dans le même fichier que celui-ci.
    le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" >
       tes inputs et autres champs de formulaire...
       <input type="submit" name="login_submit" />
    </form>
    Avant d'afficher le formulaire, tu peux vérifier s'il a déjà été soumis grâce à ce test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ( isset( $_POST['login_submit'] ) {
       //le formulaire a été soumis, il faut gérer les différents champs
       //s'il y a des erreurs, réafficher le formulaire...
    } else {
      // le formulaire n'a pas été soumis, l'afficher
    }
    Deuxième intuition:
    Ce qui te gêne est justement qu'il faille recharger la page.
    Dans ce cas, je ne vois qu'une solution (y'en a p'tet d'autres).
    Il faut que tu envoies la requête au serveur via la technologie AJAX (cf forum javascript)
    Tu pourras ainsi communiquer avec le serveur sans avoir à recharger une page
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  3. #3
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut
    Pardon MasterOfChakhaL de ne pas avoir été assez précis,
    Ici j'entend par variable globale, une variable qui n'est pas envoyée d'une page php à une autre mais plutôt une variable "omniprésente" sur tout le serveur.
    Ainsi le fichier connection.php qui est appellé tout au long du processus de mise à jour (pour éviter les redondances), aurais l'allure suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <? if($mavariableGlobaleLogin == "gugus" && $mavariableGlobalePassword == 12345){
     
    paramètres de connexions à bdd MySQL, etc...
     
    }else{
    echo "wrong password or wrong login try again mate...";
    } ?>
    C'est qu'il y a de plus simple je crois en matière de syntaxe, mais comment définir une variable globale sans déstination particulière (contrairement à $_POST['coucou'] ou $_GET['salut'])?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    On ne peut pas définir de variable qui soit trop globale. On peut toutefois définir des variables globales à une session. Une session n'existe que durant un temps limité et pour un utilisateur fixé. C'est peut être ce que vous cherchez, et c'est généralement ce qui est utilisé pour identifier un utilisateur avec son login, mot de passe et tout ce que vous voulez d'autre.

    Le mot "global" dans le sens du langage PHP signifie qu'une variable peut être accèdée dans n'importe quelle fonction d'un script. Il est possible de définir une variable comme globale, mais il me semble que ce n'est pas ce que vous cherchez et que le mot "global" porte donc à confusion.

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Je vais faire court, une des solutions est d'utiliser les sessions.
    Voir la doc http://uk.php.net/manual/fr/ref.session.php

  6. #6
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut
    Message reçu, merci!

    Une dernière: Si à chaque page php je souhaite que l'identifiant de session soit vérifié, est ce que je peux bloquer le reste du script si l'identifiant et le mot de passe sont incorrect et rediriger sur la page de login?

    Il faut utiliser header(), je crois? Ma solution n'est pas loin...

    Sinon est-il préférable de passer par du javascript?

    Merci

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    if($_SESSION['user'] != 0) // en admettant que tu crés $_SESSION['user'] au moment du login
    {
         // traitement pour gens logués
    }
    else
    {
        // traitement pour gens non logués
    }
    // le if devrait p'tet être remplacé par un isset pour eviter les warning
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Il n'est jamais préférable d'utiliser du javascript, mais souvent il est intéressant de coupler les deux. On ne peut pas se baser en général sur javascript parce que beaucoup de client (ou d'antivirus) désactivent l'exécution des script, ce qui rend l'usage pour des néophytes de l'informatique très compromis. Mais parfois on a pas trop le choix ou alors, on préfère doubler ce que fait le serveur : certains clients (il y a longtemps) ne supportaient pas la redirection par le serveur. Alors par javascript on pouvait rediriger en cas d'échec. Ici, ce n'est effectivement pas nécessaire, mais à l'avenir vous trouverez certainement des choses à renforcer du coté client.

Discussions similaires

  1. Variable globale forms Oracle
    Par islamov2000 dans le forum Forms
    Réponses: 3
    Dernier message: 10/11/2011, 08h33
  2. [Forms]Variable global en oracle form
    Par Sabact dans le forum Forms
    Réponses: 6
    Dernier message: 03/11/2006, 14h31
  3. Variable globale à plusieurs pages .php
    Par rivaol dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2006, 09h12
  4. [EasyPHP] variables globales PHP et EasyPHP
    Par Mucsy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 27/03/2006, 10h50
  5. variable globale pour plusieurs Form
    Par ced2004 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/04/2005, 08h50

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