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 :

passer une variable à une page php


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut passer une variable à une page php
    Bonjour
    j'ai une page si le pseudo existe accède au choix du tournoi "quel_tournoi2.php"
    dans la page quel_tournoi2.php je peux utiliser la variable $pseudo puisque require déclaré après la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    connect.php
    ...
        }else{    
            echo 'Le Player '.$pseudo. ' existe bien sous le Pseudo '.$donnees['pseudo'];        
            require("/quel_tournoi2.php");     //à la place de require: ?><a href="quel_tournoi2.php?pseudo=" <?php echo  $pseudo;?> ""</a><?php 
                                                        ne fonctionne pas
        }
        $rep->closeCursor();    
    ...
    mais à la fin d'exécution d'un programme je voudrais que l'utilisateur puisse accéder de nouveau la page choix du tournoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    fin_tournoi.php
    ...           
               " <?php echo  $pseudo;?> " <br/>
     
               Retournez au choix du tournoi  <a href="quel_tournoi2.php?pseudo=" <?php echo  $pseudo;?> "">clique ici</a> 
                <?php
                //require("/quel_tournoi2.php");
                ?>
    ...
    si j'utilise l'adressage url avec la variable je suis obligé dans quel_tournoi2.php de récupérer la variable avec GET mais j'aurais une erreur avec connect.php qui n'envoit pas de variable!
    et si j'utilise require à la place de l'adresse url require charge le fichier quel_tournoi2.php (même avant d'avoir fait un choix)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    quel_tournoi2.php
    ...
           
    Bonjour <?php echo $_GET['pseudo']; ?> <br/>//obligé pour récupérer la variable avec l'adresse url
        
    Bonjour <?php echo $pseudo ;?>  Quel tournoi voulez vous Jouer ?<br/><br/>//​variable récupéré grâce au require
    ...
    les 2 méthodes ne fonctionne pas en même temps

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quel fait la page connect.php exactement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    la page connect.php a reçu le pseudo d'un formulaire et a recherché dans la base de donnée si pseudo existait.
    une fois que pseudo existe il lui envoi le formulaire quel_tournoi2.php pour choisir le tournoi.
    là c'est facile avec require le formulaire s'affiche et la variable pseudo peut être ré-affichée.
    mais à la fin de tournoi.php je ne sais pas comment donner le choix de retourner au formulaire quel_tournoi2.php en envoyant la variable pseudo!

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si le pseudo est celui de l'utilisateur qui se connecte, utilise alors plutôt une session PHP pour conserver le pseudo tout le long de la navigation.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    Merci

    je viens de tester avec une session!
    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
    //connected.php :
     
    <?php session_start(); // On démarre la session 
    echo 'connected.php session id '.session_id().'<br/>';
    ?><br/>
    ...
    <?php
     
    //echo 'Vérification du Player <br/>';	
    	include("/ConnexionBaseBridgez.php");
    	$connexion=connexionBaseBridgez();//connexion à Base de donnée test (qui fonctionne)
    	//récupération du pseudo 
    	$pseudo = $_POST['pseudo'];	
    	$sql = "CAll identifie(:p_pseudo)";
    	/* pour mémoire identifie(:p_pseudo):
    	BEGIN
    	SELECT  pseudo
    	FROM players 
            WHERE  pseudo = p_pseudo ;
    	END
    	*/
    	$rep = $connexion->prepare($sql);
    	$rep->execute(array(':p_pseudo'=>$pseudo));		
    	$donnees = $rep->fetch();
    	$rep->closeCursor();
    	if ($donnees['pseudo']=='') {
    		$no_pseudo = 'ERREUR : Le Player '.$pseudo. ' n\'exite pas !!! <br/> '; 
    		require ("/connect.html");
    		//header ('location: connect.html');//redirige l'utilisateur vers la page connect.html
    		//la variable $no_pseudo n'est pas visible avec une relocation
    		//exit;
    	}else{	
    		$_SESSION['pseudo'] = $pseudo;
    		$existe = 'Le Player '.$pseudo. ' existe bien sous le Pseudo '.$donnees['pseudo'];		
    		//echo $existe ;
    		require("/quel_tournoi.php");
     
    	}
    l'identification de la session est unique ? un joueur qui se connecte à un identifiant de session unique ?

    j'ai fait l'essai : 2 appels à la page connect (depuis mon pc)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- connect.html : -->
     
    <p> <!-- Page permettant la connexion simplement avec le pseudo -->
     
    	<?php echo $no_pseudo ;?><br /><br />
     
            Veuillez taper votre Pseudo :<br />
    </p>
    <form action="connected.php" method="POST">
    <p>
           <label for="pseudo">Votre pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br/><br/>
           <input type="submit" value="Valider" />
    </p>
    </form>
    j'inscris 2 noms différents et lorsque la session est démarrée pour chacun l'identifiant de session est identique pour les 2 joueurs
    copie de ce que me renvoi "quel_tournoi.php" à l'écran pour chaque joueur
    premier joueur "niva":
    connected.php session id = nnf0hakpi2fujm1j9mu3tguhc7
    connected.php $pseudo = niva

    quel_tournoi.php session id = nnf0hakpi2fujm1j9mu3tguhc7
    quel_tournoi.php $pseudo = niva
    deuxième joueur "COBA":
    connected.php session id = nnf0hakpi2fujm1j9mu3tguhc7
    connected.php $pseudo = COBA

    quel_tournoi.php session id = nnf0hakpi2fujm1j9mu3tguhc7
    quel_tournoi.php $pseudo = COBA

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    session_id() : est utilisé pour récupérer ou définir l'identifiant de session pour la session courante.
    L'identifiant de SESSION n'a rien à voir avec l'identification du joueur.

    Citation Envoyé par marco62118 Voir le message
    la page connect.php a reçu le pseudo d'un formulaire et a recherché dans la base de donnée si pseudo existait.
    En l'occurence, le pseudo enregistré en bdd doit être UNIQUE.
    est-ce bien le cas ?

    Généralement, on enregistre en SESSION le pseudo et/ou l'identifiant/index du joueur (id_user, AUTO-INCREMENT donc forcément UNIQUE).

    Donc, ce qui identifie formellement un joueur, c'est $_SESSION['pseudo'] ou $_SESSION['id_user'].

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    OUI dans la base donnée le pseudo sont bien unique!

    Ce qui m'inquiète comme je transmets plusieurs données qui sont bien sûr propre à chaque joueur après avoir ouvert une session pour chacun d'eux que c'es données se mélange.
    Je croyais que le fait de démarrer une session avec "session_start()" pour chaque joueur ouvrait un tableau de variable propre à chaque session avec un identifiant de session différent pour chaque session ouverte!

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    La session est unique dans un navigateur donné, c'est ce qui te permet d'ouvrir plusieurs onglets sans avoir à t'identifier à chaque fois. Tu ne peux pas avoir 2 utilisateurs connectés en même temps dans un même navigateur (sauf peut-être en utilisant la navigation privée, j'ai jamais essayé)
    Par contre, tu peux avoir 2 utilisateurs connectés sur la même machine si tu utilises 2 navigateurs différents (Chrome et Firefox par exemple)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    Merci à tous

    je viens de comprendre
    en fait de la même machine PC avec le même navigateur (précision de Celira) si j'ouvre plusieurs onglet internet avec des pseudos différents je n'ouvrirais qu'une seule session! c'est exact???
    Bien sûr il n'y a aucun intérêt de faire ce ci-dessus, mais si un farfelu faisait cette manipulation : ID de session serait identique mais les variables qu'on y associe apparemment ne se mélange pas (d'après l'essai que j'ai fait)
    Mais si je suis sur le même réseau interne exemple 2 PC dans la même maison sur la même Box. Si chacun des PC joint le site il y aura bien 2 sessions différentes?? (apparemment c'est ce que j'ai testé)

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu as tout compris.
    Même navigateur => 1 seule session
    Deux navigateurs (ex: IE et Firefox) sur un même PC => 2 sessions
    Deux PC différents => 2 sessions

    C'est pour ça qu'il faut toujours se déconnecter du site ET fermer le navigateur quand on utilise un ordinateur public (web-café, bibliothèque, école...)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    Merci beaucoup

    a t-on un moyen de repérer si 2 utilisateurs (2 pseudos) différent utilisent la même machine ?

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je ne suis pas sûre. Tu peux faire des essais avec les données REMOTE_xxxx de $_​SERVER, notamment $_SERVER['REMOTE_ADDR'] qui récupère l'IP et $_SERVER['REMOTE_USER'], mais je ne suis pas sûre qu'elles soient renseignées et fiables.

    Pourquoi veux-tu vérifier cela, exactement ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    comme c'est un site de jeux de bridge en ligne.
    chaque participant va jouer 16 donnes (parties de cartes), à la fin de chaque partie on voit toutes les cartes des 4 joueurs.
    Des petits malins joue le tournoi sous un pseudo et rejoue le tournoi avec un autre pseudo plus facile après avoir vu les cartes des autres et ainsi faire un meilleur score.
    bien sûr ils n'ont rien à y gagner mais si on pouvait éviter les tentations

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu fais ça, tu empêches des gens qui partagent une machine d'utiliser ton site. Toutes les familles n'ont pas un ordinateur par personne, ni plusieurs comptes configurés dessus.

    De plus, de ce que je connais du bridge, il y a une distribution aléatoire de cartes non ? Donc une personne qui joue plusieurs parties de suite ne joue pas la même partie plusieurs fois (sinon, ça va vite être ennuyeux)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par marco62118 Voir le message
    ...Des petits malins joue le tournoi sous un pseudo et rejoue le tournoi avec un autre pseudo plus facile après avoir vu les cartes des autres et ainsi faire un meilleur score...
    Tu ne pourras pas empêcher quelqu'un d'utiliser DEUX ordinateurs en même temps !

    Et comme dit Celira, comment pourrait-on jouer plusieurs fois la même partie ??

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Tu ne pourras pas empêcher quelqu'un d'utiliser DEUX ordinateurs en même temps !
    Ou plus probablement, une combinaison ordi/tablette/smartphone.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  17. #17
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    Merci à tous les deux

    Oui c'est vrai on ne peut pas empêcher plusieurs personnes d'une même maison à jouer. si bien c'est une question de conscience!

    pour information c'est un tournoi dont je vous parle et la particularité du bridge c'est que tout le monde joue les mêmes parties (ici 16 donnes par tournoi et un tournoi par jour) puis on fait un classement des résultats. ici un tournoi contre et avec les robots (2 robots adversaires et 1 robot partenaire) il n' y a qu'un classement Nord Sud mais dans un tournoi humain il y a 2 classements un pour les Nord Sud et un pour les Est Ouest ce qui fait même si on avait eu 16 donnes pourries sans jeu en Est Ouest on peut être premier des Est Ouest, ça dépend comment on a mieux défendu que tous les autres Est Ouest.
    j'espère être clair

  18. #18
    Invité
    Invité(e)
    Par défaut
    C'est vrai que le bridge s'apparente plus aux échecs qu'à la belote : on doit savoir anticiper les coups...

    Ici, tant qu'il n'y a pas d'argent en jeu... il faut croire au fairplay des joueurs..

  19. #19
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    l’Intérêt du bridge en tournoi c'est que on ne peut pas incriminer la qualité des cartes puisqu'on joue tous avec les mêmes jeu mais surtout la qualité de l'adversaire et sa propre qualité !

    mais la belote c'est bien aussi mais beaucoup moins de cartes , un niveau de contrat beaucoup plus facile à déterminer et surtout là il n'y a pas ce système de tournoi et la qualité du jeu qu'on a influe principalement sur la réussite.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer une variable de page en page
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 04/09/2007, 13h19
  2. [PHP-JS] Passer une variable javascript en php
    Par bibom dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2006, 21h39
  3. [xsl / Php] faire passer une variable XSL en PHP
    Par klowlead dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 24/05/2006, 13h59

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