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 :

Nombre caractères url


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut Nombre caractères url
    Bonjour à tous,

    Pour un site interne j'ai fais un ptit dev qui permet d'extraire des données d'une DB par rapport à une liste de références envoyées par un formulaire et ensuite cela génère un lien pour permettre le téléchargement de cette liste au format Excel. Jusque là rien de méchant.

    Je rencontre juste un problème : j'ai atteins le nombre de caractères max que je peux mettre dans une url. En effet je n'avais pas anticipé que les utilisateurs allaient essayer d'extraire plus de 700 références et je m'étais dis que la limite de 2000 caractères était large...

    Du coups avant de mettre en place une limite au niveau du formulaire, est-ce qu'il existe un moyen de garder le même fonctionnement de lien cliquable et ne plus avoir cette limite ?

    Peut être passer la liste dans une variable de session lié à l'utilisateur ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    si cela se présente sous forme d'un formulaire (tu ne fournis pas ton code, donc obligé de deviner) (l'action permettant de générer la liste en format Excel), pour transmettre cette liste à l'action, je la mettrais en variable $_POST.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Merci de ta réponse.

    Difficile de mettre la totalité du code.

    Le process est :

    • l'utilisateur colle sa liste dans un champ texte du formulaire;
    • clic sur envoyer;
    • ça affiche le résultat sous forme de tableau HTML dans son navigateur et génère en même temps un lien pour qu'il puisse télécharger ce même résultat mais au format Excel.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Une solution est de ne plus passer par une requête GET mais pas une requête POST a la quelle tu ajoutes les paramètres dans le body. Du coup plus de problème de limitation.
    Si tu veux conserver un lien cliquable ca demandera un peu de jaavascript avec probablement une requête ajax pour envoyer la requête POST sur le clic d'un lien , mais rien de très compliqué
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Si tu veux conserver un lien cliquable ca demandera un peu de jaavascript avec probablement une requête ajax pour envoyer la requête POST sur le clic d'un lien , mais rien de très compliqué
    Ok

    Et l'idée de stocker cette liste dans une variable de session utilisateur avec un nom correspondant à un id aléatoire et ensuite j'aurais juste à passer cette id en paramètre dans l'url ?

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je doute d'avoir tout compris car d'après moi, pas besoin de js ni d'ajax : on met la liste dans un champ texte du formulaire (de type POST) (name="list") et dans l'action, on la récupère dans $_POST['list'] et aucune liste à mettre dans une URL : juste un lien pour télécharger le fichier Excel qui lui, contiendra la liste. Ca irait comme ça, ou j'ai pas compris ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Ca irait comme ça, ou j'ai pas compris ?
    Je pense que tu n'a pas compris, la faute à mon explication peut être

    Le résultat du formulaire est en premier affiché à l'écran (moyennement une mise en forme html) car l'utilisateur ne télécharge pas systématiquement le fichier Excel. En même que cet affichage, un lien pour lancer la génération du fichier est affiché. Derrière c'est la même requête sans la partie html.

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Ah oui, le fichier Excel, il faut le générer...Mais dans ce cas, j'imagine que l'action de ton formulaire va récupérer cette liste, et peut donc créer le fichier Excel et là, un 2e formulaire : télécharger. OK, ça fait un 2e clic. Ca va pas ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  9. #9
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Pour une simple raison d'optimisation et charge serveur je préfère générer le fichier uniquement lorsqu'il est demandé et non à chaque fois. Le téléchargement du fichier doit représenter 20% des cas d'usage.

    Avant de me lancer dans l'ajax que je ne maitrise pas trop, je vais tenter l'option variable dans _SESSION.

    Je vous tiens au courant du choix fait.

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je crois que c'est possible avec mon idée, sauf que la première action ne crée pas le fichier Excel ; cela sera fait dans l'action du 2e formulaire et une fois créé, il n'y aura qu'à fournir son URL à l'utilisateur. Non ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #11
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    Bonjour,

    Pour toi, "lien" signifie <a href="....

    Mais rien n'empêche d'avoir un <button>, dans un form en post, et un input hidden contenant cette fameuse liste.

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Jérôme, ça change quoi de faire un lien avec <button> plutôt qu'avec <a href="... ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  13. #13
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Pour toi, "lien" signifie <a href="....
    Oui pour moi un lien est bien un <a href="..."

    Idée de code simplifié :

    "Premier formulaire pour que l'utilisateur colle sa liste"

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form>
    <input type="text" name="list1">
    <input type="submit" value="Envoyer">
    </form>

    Le résultat s'affiche dans le navigateur et haut par exemple je pourrais caser un au form

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form qui post vers ma fonction php qui génère le fichier Excel>
    <input type="hidden" name="list2" value="Ma liste de référence à rallonge">
    <button type="submit">Télécharger le fichier</button>
    </form>

    Si il n'y a pas de limite du nombre de caractères dans un champ input de type text alors cela pourrait marcher.

  14. #14
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut

    maxlength
    [...]Si aucune valeur n'est fournie pour maxlength ou qu'une valeur invalide est fournie, il n'y a pas de contrainte de taille maximale.
    [...]
    @laurentSc
    Comme l'a bien compris et traduit flipflip, ça sert justement à ça :
    • passer les paramètres en POST (dans un <input type="hidden">)
      au lieu d'en GET dans l'URL.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action="fonction_php_qui_genere_le_fichier_Excel.php">
        <input type="hidden" name="list2" value="<?= $liste_de_reference_a_rallonge; ?>" />
        <button type="submit">Télécharger le fichier Excel</button>
    </form>

    N.B. Précédemment, j'étais sur ma mini-tablette (mini-clavier !)
    Ce qui explique le style minimaliste de ma réponse

  15. #15
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Je vais faire des tests avec le hidden, ça me parait être la plus simple à mettre en place sans trop chambouler le code déjà en place.

    Merci pour l'aide.

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    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 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    oui, j'avais pas saisi que du coup, on fait un <form>...astucieux.

    flipflip, tu devrais jreaux62...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. Caractère URL encodé
    Par djaize dans le forum Général Java
    Réponses: 2
    Dernier message: 16/12/2010, 18h28
  2. Problème nombre caractère identifiant Virtuemart
    Par Steph67 dans le forum Services
    Réponses: 0
    Dernier message: 10/12/2009, 11h23
  3. Compter nombre caractère d'une chaîne
    Par bobosh dans le forum Débuter
    Réponses: 7
    Dernier message: 29/12/2008, 09h04
  4. Convertion Caractères URL
    Par papawemba dans le forum C#
    Réponses: 1
    Dernier message: 27/06/2007, 13h53
  5. [VBA-E]Limite nombre caractères dans TextBox ?
    Par srame dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 26/04/2007, 11h21

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