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 identifiant dans URL


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut Transmettre identifiant dans URL
    Bonjour ,

    Je souhaite aller sur la page mess.php , en transmettant dans l'URL l'id qui a la valeur num de l'enregistrement resultAntiques.

    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
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
      $updateSQL = sprintf("UPDATE shop_mess SET num=%s, rep=%s WHERE id=%s",
                           GetSQLValueString($_POST['num'], "int"),
                           GetSQLValueString($_POST['rep'], "text"),
                           GetSQLValueString($_POST['id'], "int"));
     
      mysql_select_db($database_facevspile, $facevspile);
      $Result1 = mysql_query($updateSQL, $facevspile) or die(mysql_error());
     
      $updateGoTo = 'mess.php?id='.$row_resultAntiques['num'];
      if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?') > -1) ? '&' : '?';
        $updateGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $updateGoTo));
    }
    En appliquant le script ci dessus , j'obtiens dans l'URL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/facevspile/Templates/mess.php?id=&
    donc , pas d'id ???

    HAbroc

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Pour une redirection, n'utilise pas une URL (pas de htt://...), mais un chemin absolu ou relatif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Location: mess.php?id='.$row_resultAntiques['num']);
    Par contre, on ne sait pas d'où sort ce tableau $row_resultAntiques['num'] ?
    Ca ne serait pas plutôt : $_POST['num'] ?

    Petite remarque en passant.
    J'ai jamais trop adhérer à cette méthode du sprintf pour les requêtes.
    Je préfère la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $updateSQL = "UPDATE shop_mess SET num = '".(int)$_POST['num']."', rep = '".mysql_real_escape_string($_POST['rep'])."' WHERE id = '".(int)$_POST['id']."'";

  3. #3
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    Donc je remplace la ligne simplement comportant header par le code ci-dessous et ça doit marcher ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: mess.php?id='.$row_resultAntiques['num']");

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,
    Transmettre des informations d'url en url n'est pas bon car c'est souvent sauvegarder dans l'historique des navigateurs. Utilises une variable session.

  5. #5
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    J'ai fait ceci , toujours dans l'espoir de transemttre par l'URL ( au moins vers cette page ) :

    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
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
      $updateSQL = sprintf("UPDATE shop_mess SET num=%s, rep=%s WHERE id=%s",
                           GetSQLValueString($_POST['num'], "int"),
                           GetSQLValueString($_POST['rep'], "text"),
                           GetSQLValueString($_POST['id'], "int"));
     
      mysql_select_db($database_facevspile, $facevspile);
      $Result1 = mysql_query($updateSQL, $facevspile) or die(mysql_error());
     
      $updateGoTo = 'mess.php?id='.$row_resultAntiques['num'];
      if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?') > -1) ? '&' : '?';
        $updateGoTo .= $_SERVER['QUERY_STRING'];
      }
      header("Location: mess.php?id='.$row_resultAntiques['num']");
    }
    mais là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\facevspile\Templates\messages.php on line 54
    où la ligne 54 correspond à header...

  6. #6
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Synthaxe incorrecte, tu n'utilise pas d'éditeur de code avec coloration synthaxique ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header('Location: mess.php?id='.$row_resultAntiques['num']);

  7. #7
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    Merci , j'essaie ce soir ...

    Non , je n'ai pas d'éditeur de code avec coloration syntaxique ( je développe mon site avec dreamveaver CS3 : je sais ...OUHHHH ! ) ; mais si vous en avez un à conseiller ...

  8. #8
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    Je viens d'essayer => Plus de parse error ; mais toujours pas de id dans l'URL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/facevspile/Templates/mess.php?id=

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Si il n'y a pas d'id dans la chaine je ne vois pas comment ceci pourrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $updateGoTo = 'mess.php?id='.$row_resultAntiques['num'];
    Car là tu indiques que $row_resultAntiques['num'] est indéfini.

    Aussi, et comme l'a indiqué RunCodePHP, où est déclaré $row_resultAntiques['num'] ?

    Si $_POST['id'] contient l'identifiant, pourquoi ne pas faire ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $updateGoTo = 'mess.php?id='.$_POST['id'];
    // [...]
    header('Location: '.$updateGoTo);
    Si tu cherches un éditeur professionnel, je te conseille phpDesigner. Il n'est pas très cher comparé à des solutions comme Zend Studio et offre des fonctionnalités similaires.

  10. #10
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    J'ai réussi !!!

    Pour cela , j'ai envoyé mon formulaire en mettant action="messages10.php?id=<?php echo $row_resultAntiques['num']; ?> dans ma page messages.php

    J'ai créé la page messages10.php qui fait :

    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
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
      $updateSQL = sprintf("UPDATE shop_mess SET num=%s, rep=%s WHERE id=%s",
                           GetSQLValueString($_POST['num'], "int"),
                           GetSQLValueString($_POST['rep'], "text"),
                           GetSQLValueString($_POST['id'], "int"));
     
      mysql_select_db($database_facevspile, $facevspile);
      $Result1 = mysql_query($updateSQL, $facevspile) or die(mysql_error());
     
      $updateGoTo = 'mess.php?id='.$row_resultAntiques['num'];
      if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?') > -1) ? '&' : '?';
        $updateGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $updateGoTo));
    et j'obtiens bien dans la page mess, l'URL suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/facevspile/Templates/mess.php?id=&id=324
    pour lequel 324 est bien l'id que je cherche à avoir ...à savoir le nunéro que j'ai enregistré dans le champ num dans ma table shop_mess.

    Je suppose que cela n'est pas trés orthodoxe ...mais au moins j'ai récupéré mon id ...

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut Produire une chaîne de caractères assez complexes et contenant du code PHP
    Bonsoir,

    je voudrais produire une chaîne de caractères du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom=<?=$nom?>&prenom=<?=$prenom?>&nomfichier1=<?=$_FILES['toto1']['name']?>&nomfichier2=<?=$_FILES['toto2']['name']?>
    avec la possibilité de concaténer à nom=<?=$nom?>&prenom=<?=$prenom> une suite de &nomfichieri=<?=$_FILES['totoi']['name']?> où i peut varier de 1 à 5. Donc si le début de la chaîne (nom=<?=$nom?>&prenom=<?=$prenom>) est invariable, la suite dépend de l'existence ou non des fichiers ; comme il peut y en avoir 5, ça fait 32 (2^5) possibilités ; donc, je n'ai pas envie de me faire c... à faire un switch avec 32 cas ; je préfère faire 5 tests (une boucle de 1 à 5) et concaténer une chaîne du type (&nomfichieri=<?=$_FILES['totoi']['name']?>) si le fichier existe. Le but étant, une fois que la chaîne est construite, d'appeler un code du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe width=0 height=0 src="URL.php?nom=<?=$nom?>&prenom=<?=$prenom?>&nomfichieri=<?=$_FILES['totoi']['name']?>" frameborder=0></iframe>
    afin d'appeler un fichier PHP auquel j'aurais passé les paramètres utiles.
    Mon problème est donc de réaliser cette chaîne qui contient elle-même des noms de variables PHP. Est-ce faisable ?

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

Discussions similaires

  1. Transmettre des données dans url
    Par diengkals dans le forum jQuery
    Réponses: 6
    Dernier message: 06/12/2012, 14h58
  2. [MySQL] Récupération identifiant dans URL
    Par grumly22 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/06/2006, 10h47
  3. Envoyer ses identifiants dans une URL.
    Par Pragmateek dans le forum Langage
    Réponses: 9
    Dernier message: 28/05/2006, 23h25
  4. Bouton radio et espaces dans URL
    Par lra dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/01/2005, 17h09
  5. [JSP] carac & dans URL et XML
    Par c.tranquille dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 24/07/2003, 16h00

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