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 :

Transmettre variable sur une page?


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut Transmettre variable sur une page?
    Bonjour,
    J'ai une page php qui affiche entre deux balises html, le résultat d'une requête :
    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
     
    <div class="Article">
    <?php
    // on se connecte à MySQL
    $db = mysql_connect('ADRESS', 'USER', 'PASSWORD');
     
    // on sélectionne la base
    mysql_select_db('test',$db);
     
    // on crée la requête SQL
    $sql = 'SELECT titre,contenu FROM Test';
     
    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
        echo $data['titre'].' '.$data['contenu'];
        }
     
    // on ferme la connexion à mysql
    mysql_close();
    ?> 
    </div>
    Reste du code HTML...
    Ca fonctionne plutôt pas mal !
    Mais je voudrais créer un lien vers une autre page et je dois transmettre à cette nouvelle page, le contenu de la variable $data['contenu']
    Comment puis-je faire?

    Je pense que ce n'est pas compliqué...
    Merci de votre aide,
    Cordialement,
    Jojo

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    je vois au moins 3 méthodes :

    1/ enregistrer dans une session (la variable sera alors accessible de partout, tant que la session est ouverte)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php session_start(); // OBLIGATOIRE (tout en haut de page)
    // ... (blablabla ... requete) ...
    // enregistrement en session
    $_SESSION['contenu-a-transmettre'] = $data['contenu'];
    // lien vers la page
    ?>
    	<a href="la-page.php">aller ici</a>
     
    ----- la-page.php : -----
    <?php session_start(); // OBLIGATOIRE (tout en haut de page)
    // recuperation :
    $contenu_recup = $_SESSION['contenu-a-transmettre'];
    // [...] suite du traitement
    ?>
    2/ envoyer par $_GET (dans l'URL) :
    (ATTENTION cependant a ne pas transmettre de données sensible qui seront visibles dans l'URL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    // ... (blablabla ... requete) ...
    // lien vers la page
    ?>
    	<a href="la-page.php?get-contenu=<?php echo urlencode($data['contenu']); ?>">aller ici</a>
     
    ----- la-page.php : -----
    <?php
    // recuperation :
    $contenu_recup = urldecode($_GET['get-contenu']);
    // [...] suite du traitement
    ?>
    Voir :
    - urlencode()
    - urldecode()

    3/ envoyer par $_POST (avec un bouton par exemple) :
    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
    <?php
    // ... (blablabla ... requete) ...
    // lien vers la page (sous forme de formulaire / bouton)
    ?>
    	<form method="post" action="la-page.php">
    		<input type="hidden" name="contenu-a-transmettre" value="<?php echo addslashes($data['contenu']); ?>" />
    		<button name="lienpage" type="submit">aller ici</button>
    	</form>
     
    ----- la-page.php : -----
    <?php
    // recuperation :
    $contenu_recup = stripslashes($_POST['contenu-a-transmettre']);
    // [...] suite du traitement
    ?>

  3. #3
    Invité
    Invité(e)
    Par défaut
    Cela dit (voir ci-dessus) ...
    DANS TON CAS, il s'agit de transmettre à la page suivante une infos contenues dans ta BdD.

    Pourquoi ne pas lui transmettre plutot simplement ... l'ID de l'enregistrement ?
    => envoyer par $_GET (dans l'URL) :
    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
    <?php
    // REQUETE
    $sql = "SELECT id,titre,contenu FROM Test"; // on veut aussi l'id
    // ... (blablabla) ...
    // lien vers la page
    ?>
    	<a href="la-page.php?getid=<?php echo $data['id']); ?>">aller ici</a>
     
    ----- la-page.php : -----
    <?php
    // recuperation :
    $id_recup = mysql_real_escape_string($_GET['getid']);
    $sql = "SELECT contenu FROM Test WHERE id = '".$id_recup."';"; // on recupere le contenu
    // ...
    $contenu_recup = $data['contenu'];
    // [...] suite du traitement
    ?>
    voir : mysql_real_escape_string()

  4. #4
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Merci de ton aide, concernant ce que je veux faire j'ai trouvé une méthode... mais ça marche pas je dois avoir un soucis ce caractères " ou '...
    J'ai ajouté un echo dans ma requete :
    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
    <?php
    // on se connecte à MySQL
    $db = mysql_connect('SITE', 'USER', 'PWD');
    
    // on sélectionne la base
    mysql_select_db('test',$db);
    
    // on crée la requête SQL
    $sql = 'SELECT titre,contenu FROM Test';
    
    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
        echo $data['titre'].' '.$data['contenu'];
    
    	$var = $data['contenu'];
        echo "<Div class="Administrer"><a href='full.php?variable=$var'>Administrer</a></div>";
    
        }
    // on ferme la connexion à mysql
    mysql_close();
    ?>
    J'ai un problème sur la ligne en gras... je pense que sa doit être un problème de "QUOTE" avec les guillemets...

    Cette méthode te parait-elle correcte? (pour moi c'est plus simple que ce que tu m'a donné ! je débute !!!)
    Merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    C'est la méthode 2/ !
    remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    // ...
    	$var = $data['contenu'];
        echo "<Div class="Administrer"><a href='full.php?variable=$var'>Administrer</a></div>";
    // ...
    ?>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    // ...
    ?>
        <div class="Administrer"><a href="full.php?variable=<?php echo urlencode($data['contenu']); ?>">Administrer</a></div>
    <?php
    // ...
    ?>
    note : il est préférable de "sortir" le code html du code php (comme je l'ai fait)
    c'est une bonne habitude à prendre,
    et ca évite les cafouillages de quotes (')/ double-quotes (")

  6. #6
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Merci beaucoup !
    Par contre je vais transmettre l'index et j’exécuterais de nouveau la requête dans le nouveau formulaire php...
    Par contre, je n'arrive pas à récupérer la variable pour la placer dans un text area... j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php				 
    $contenu_recup = urldecode($_GET['variable']);
    echo $contenu_recup;
    ?>
    Je galère !

    Merci de ton aide.

  7. #7
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    J'ai trouvé !
    Il fallait rajouter des " !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php				 
    $contenu_recup = urldecode($_GET['variable']);
    echo "$contenu_recup";
    ?>
    Comme je te le disais, je vais transmettre le N° d'index...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Qu'y a-t-il de compliqué ?
    je t'ai donné 4 méthodes : NE LES MELANGE PAS !

    Récupérer l'index : c'est la méthode 4 (celle de mon 2eme post)

    Remets-nous le code de tes 2 pages, qu'on y voit plus clair

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

Discussions similaires

  1. [XL-2010] Afficher un tableau de variable sur une page excel
    Par Blaiz58 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 22/12/2014, 15h32
  2. probleme transmettre variable d'une page a une autre
    Par encours dans le forum Langage
    Réponses: 2
    Dernier message: 11/11/2011, 14h18
  3. supprimer une variable sur une page
    Par mipou dans le forum Langage
    Réponses: 4
    Dernier message: 08/01/2009, 15h09
  4. effacer des variables sur une page web
    Par mipou dans le forum Langage
    Réponses: 1
    Dernier message: 07/01/2009, 20h19
  5. Réponses: 12
    Dernier message: 23/06/2004, 13h50

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