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 :

Récupérer un lien après un clic [PHP 4]


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut Récupérer un lien après un clic
    Bonjour,

    Je débute en Php/Mysql.

    J'ai un table avec un champ "url"
    Je récupère des champs sur une page php dans un tableau en boucle.

    J'ai voudrais créer un lien cliquable qui ouvre une nouvelle fenêtre et charger le lien présent dans mon champ "url"

    Je ne demande pas la réponse, mais au moins la fonction qui permet ce genre de chose car je suis un peu perdu et mes recherches sont restées dans réponses.

    Edit :
    J'ai des liens qui sont telecharger.php?id=XXXX
    Je voudrais récupérer l'id dans télécharger.php et qu'il ouvrir le lien correspondant à l'id

    Merci d'avance de m'orienter.

    Cdlt

  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
    Bonjour,

    Tu peux faire simplement une redirection :
    la page telecharger.php lit l'id, interroge la base, redirige vers l'url indiquée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Bonjour,

    Tu peux faire simplement une redirection :
    la page telecharger.php lit l'id, interroge la base, redirige vers l'url indiquée.
    C'est exactement ce que je cherche à faire.
    Mais quel fonction permet de récupérer l'id dans une url, si on fait en sorte que le lien soit

    telecharger.php?id=XX

    Merci

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Ce n'est pas une fonction mais ce que tu cherches c'est

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Citation Envoyé par Kerod Voir le message
    Ce n'est pas une fonction mais ce que tu cherches c'est
    Merci,

    Voilà ce que j'ai fais :

    Lien dans ma page :

    Mon fichier telecharger.com

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
     
    require ("includes/connect.php");
    $id=$_GET['id'];
     
    $select="SELECT * FROM roms WHERE id='$id'";
     
    header("Location: " . $data['dl']);
    ?>
    Mais ça ne fonctionne pas

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

    Enlève les ' ' autour de $id dans ta requête.

  7. #7
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $select="SELECT * FROM roms WHERE id='$id'";
    header("Location: " . $data['dl']);
    il ne manque pas un peu des lignes entre ces deux la ? execution de la requete ? fetch des resultats ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Après quelques jours de prise de tête, J'ai réussi !! Merci pour vos conseils !

    Pouvez vous juste me confirmer que le code est bien fait, optimisé et sécurisé.

    Merci de votre retour

    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
    echo "<script language=\"JavaScript\">";
    require ("includes/connect.php");
    $id=$_GET['id'];
     
    $requete="SELECT * FROM roms WHERE id=$id";
    $result=mysql_query($requete, $db);
    $lecture=mysql_fetch_object($result);
     
     
    echo "setTimeout(\"window.location='$lecture->dl'\",3000);";
    mysql_free_result($result);
    mysql_close();
    echo "</script>";
    ?>

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Le code ci-dessus, en fait je ne pense pas qu'il soit sécurisé car si l'ID n'existe pas, la page tourne ne boucle.

    Pouvez vous m'aider pour faire un echo que si l'ID n'existe pas.

    Merci !

  10. #10
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonjour

    Comme ceci ?

    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
    <?php
    echo "<script language=\"JavaScript\">";
    require ("includes/connect.php");
     
    $id=$_GET['id'];
     
     
    if (!empty($id)) {
        $requete="SELECT * FROM roms WHERE id=$id";
        $result=mysql_query($requete, $db);
        $lecture=mysql_fetch_object($result);
     
        echo "setTimeout(\"window.location='$lecture->dl'\",3000);";
        mysql_free_result($result);
        mysql_close();
    } else {
    // ici indiquer ce qu'il faut faire si l'id est vide...
    }
     
     
    echo "</script>";
    ?>
    Attention à la valeur de $id : si elle vaut zéro empty considèrera que $id est vide : http://php.developpez.com/faq/index....variable-empty

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Citation Envoyé par 12monkeys Voir le message
    Bonjour

    Comme ceci ?

    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
    <?php
    echo "<script language=\"JavaScript\">";
    require ("includes/connect.php");
     
    $id=$_GET['id'];
     
     
    if (!empty($id)) {
        $requete="SELECT * FROM roms WHERE id=$id";
        $result=mysql_query($requete, $db);
        $lecture=mysql_fetch_object($result);
     
        echo "setTimeout(\"window.location='$lecture->dl'\",3000);";
        mysql_free_result($result);
        mysql_close();
    } else {
    // ici indiquer ce qu'il faut faire si l'id est vide...
    }
     
     
    echo "</script>";
    ?>
    Attention à la valeur de $id : si elle vaut zéro empty considèrera que $id est vide : http://php.developpez.com/faq/index....variable-empty
    OK merci mais c'est + pour le cas où l'ID n'existe pas

    Mais c'est impec, j'essaye de le peaufiner, Merci

  12. #12
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Oui bien sur, alors tu peut utiliser isset.

    Mais cela ne sera pas pratique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $var = '';
     
    if (isset($var)) { echo 'var est initialisé mais vite !'; } else { echo 'var n\'est pas initalisé'; }
    Dans cet exemple tu verra le premier echo alors que $var n'as pas de valeur...

    Avec l'exemple que je t'ai donné, en remplaçant empty par isset la requête va s'exécuter même si tu as un lien du genre telecharger.php?id=

    C'est pour ça que je t'ai donné l'exemple avec empty...

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    OK merci pour ces précisions,

    mais dans mon cas :

    j'ai 100 enregistrement id 1 à 100 donc

    si quelqu'un tente d'aller sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.pourpocketpc.com/telecharger.php?id=10000
    Ca m'affiche le texte comme si l'ID existe, en le redirigeant en boucle vers la page http://www.pourpocketpc.com/telecharger.php?id=10000, voilà mon soucis

  14. #14
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Oui j'avais pensé à te préciser qu'il faut un peu sécuriser le tout...

    Vérifie ta variable ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $var = intval($var);// retourne la valeur numérique entière équivalente d'une variable
    var_dump($var);// pour vérifier
    if (($var >= 1) and ($var <= 100)) ..
    Maintenant combine le tout...

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Super !!!!!!

    Merci pour tout, voici le code final modifié à ma sauce pour reprendre le nombre d'entrée pour les futures mises à jours, merci @ vous, j'ai appris un paquet de trucs
    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
     
    <?php
    require ("includes/connect.php");
    mysql_query("UPDATE roms SET clic=clic+1 where id='$id'");
     
    $id=$_GET['id'];
    $counter=mysql_query("SELECT COUNT(*) NBR_ENTREE FROM roms where public='1'");
    $row=mysql_fetch_object($counter);
     
    $id = intval($id);// retourne la valeur numérique entière équivalente d'une variable
    if (($id >= 1) and ($id <= $row->NBR_ENTREE)) {
        $requete="SELECT * FROM roms WHERE id=$id";
        $result=mysql_query($requete, $db);
        $lecture=mysql_fetch_object($result);
     
    echo "<br/>";
    echo "<br/>";
    echo "<br/>";
    echo "<table border=\"0\" class=\"tabwait\" cellpadding=\"0\" cellspacing=\"0\">";
    echo "<tr>";
    echo "<td class=\"tdmodel\">Téléchargement en cours...</td>";
    echo "</tr><tr>";
    echo "<td class=\"tdwait\">Le téléchargement de la Rom <a href=\"$lecture->dl\"><strong>$lecture->title</strong></a> va démarrer dans quelques instants. S'il ne se lancerait pas automatiquement, vous pouvez <a href=\"$lecture->dl\"><strong>Cliquer Ici</strong></a> pour lancer le téléchargement.</td>";
    echo "</tr>";
    echo "</table>";
    echo "<script type=\"text/javascript\">";
    echo "setTimeout(\"window.location='$lecture->dl'\",3000);";
    echo "</script>";
        mysql_free_result($result);
        mysql_close();
    } else {
     
    echo "<br/>";
    echo "<br/>";
    echo "<br/>";
    echo "<table border=\"0\" class=\"tabwait\" cellpadding=\"0\" cellspacing=\"0\">";
    echo "<tr>";
    echo "<td class=\"tdmodel\">Problème de redirection...</td>";
    echo "</tr><tr>";
    echo "<td class=\"tdwait\">Le téléchargement n'existe pas, vous allez être redirigé vers la page d'accueil.</td>";
    echo "</tr>";
    echo "</table>";
    echo "<script type=\"text/javascript\">";
    echo "setTimeout(\"window.location='index.php'\",3000);";
    echo "</script>";}
    ?>

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Ah nan, j'ai un soucis;

    $row->NBR_ENTREE représente le nombre d'entrée, mais l'ID peut etre plus grand.

    Exemple : 100 enregistrement
    Mais ID le plus grand = 103 si on a effacé certains ID entre temps Je corrige ça !

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    Voila Il récupère l'interval entre l'id le plus petit et l'id le plus grand

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <?php include('includes/header.php'); ?>
    </head>
    <body>
    <?php
    require ("includes/connect.php");
    mysql_query("UPDATE roms SET clic=clic+1 where id='$id'");
     
    $id=$_GET['id'];
     
    $counter = mysql_query("SELECT id FROM roms ORDER BY id DESC LIMIT 0,1");
    $row = mysql_fetch_array($counter);
    $counter2 = mysql_query("SELECT id FROM roms ORDER BY id ASC LIMIT 0,1");
    $row2 = mysql_fetch_array($counter2);
     
    $id = intval($id);// retourne la valeur numérique entière équivalente d'une variable
    if (($id >= $row2["id"]) and ($id <= $row["id"])) {
        $requete="SELECT * FROM roms WHERE id=$id";
        $result=mysql_query($requete, $db);
        $lecture=mysql_fetch_object($result);
     
    echo "<br/>";
    echo "<br/>";
    echo "<br/>";
    echo "<table border=\"0\" class=\"tabwait\" cellpadding=\"0\" cellspacing=\"0\">";
    echo "<tr>";
    echo "<td class=\"tdmodel\">Téléchargement en cours...</td>";
    echo "</tr><tr>";
    echo "<td class=\"tdwait\">Le téléchargement de la Rom <a href=\"$lecture->dl\"><strong>$lecture->title</strong></a> va démarrer dans quelques instants. S'il ne se lancerait pas automatiquement, vous pouvez <a href=\"$lecture->dl\"><strong>Cliquer Ici</strong></a> pour lancer le téléchargement.</td>";
    echo "</tr>";
    echo "</table>";
    echo "<script type=\"text/javascript\">";
    echo "setTimeout(\"window.location='$lecture->dl'\",3000);";
    echo "</script>";
        mysql_free_result($result);
        mysql_close();
    } else {
     
    echo "<br/>";
    echo "<br/>";
    echo "<br/>";
    echo "<table border=\"0\" class=\"tabwait\" cellpadding=\"0\" cellspacing=\"0\">";
    echo "<tr>";
    echo "<td class=\"tdmodel\">Problème de redirection...</td>";
    echo "</tr><tr>";
    echo "<td class=\"tdwait\">Le téléchargement n'existe pas, vous allez être redirigé vers la page d'accueil.</td>";
    echo "</tr>";
    echo "</table>";
    echo "<script type=\"text/javascript\">";
    echo "setTimeout(\"window.location='index.php'\",3000);";
    echo "</script>";}
    ?>
    </body>
    </html>

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

Discussions similaires

  1. [MySQL] Comment afficher du texte après un clic sur un lien?
    Par david252 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/07/2011, 01h09
  2. [AJAX] Lien qui change après un clic
    Par Francois TJP dans le forum AJAX
    Réponses: 0
    Dernier message: 25/12/2010, 09h08
  3. Comment effectuer une redirection après un clic sur un lien
    Par Angelik dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/11/2007, 23h13
  4. Déroulement d'un liste après un clic sur un lien
    Par mullger dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/08/2007, 14h33
  5. Un lien où un texte s'affiche dessous après le clic
    Par brunoperel dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/07/2007, 16h55

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