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 :

Construction d'un lien


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut Construction d'un lien
    Bonjour,

    je construis un lien de cette façon dans un script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableg[$i]= 'Timbre '.$num[$i].', '.$legende[$i].' & ligne='.$tab[$i];
    Dans la page ça donne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="pop.php?<?php echo $tableg[0]; ?>"</a>
    le problème c'est que la variable "legende" est tronquée après la première lettre
    par exemple ça ne donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.timbres-de-france.com/collection/pop.php?Timbre%20N%C2%B0%20%201,%20C%20&%20ligne=1
    or la légende est "Cérès" je n'ai que le "C" majuscule.
    Je précise que la table est en utf8 et donc le contenu de la colonne est le suivant : Cérès

    Si quelqu'un à une idée du problème je suis preneur.

    Je précise que j'utilise la variable "legende" en affichage par un "echo" dans une autre page et que là ça marche parfaitement

    Merci

  2. #2
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu as essayé d'utiliser la fonction urlencode (et sa soeur urldecode) ?
    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]

  3. #3
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut
    Bonjour,

    Merci pour la réponse, mais ça ne donne rien j'ai toujours ça dans la page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pop.php?Timbre N°  1, C &amp; ligne=1

  4. #4
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 422
    Par défaut
    J'ai résolu mon problème, par contre je n'ai toujours compris pourquoi je récupère que la première lettre dans la variable "legende" et je récupère la totalité dans la variable "desi"

    pour info je vous met le script complet modifier (avant j'avais "$legende[$i]" dans $tableg[$i] à la place de "$desi[$i]")

    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
    <?php
     
    foreach($tab as $i => $tabnum)
    	{
    		$query = "SELECT num, desi, Num_yvert, largeur, hauteur, chemin_photo, photo FROM collec_0 WHERE num = '".mysqli_real_escape_string($base_gene, $tabnum)."'";
    		$stmt = mysqli_query($base_gene, $query);
     
    		if(mysqli_num_rows($stmt) > 0)
    		{
    			$row = mysqli_fetch_assoc($stmt); // Récupération des valeurs
    			$legende[$i]=trim($row['desi']);
    echo $legende[$i];echo '<br>';
    			$desi[$i] = trim($row['desi']);
    echo $desi[$i];echo '<br>';			
    			$num[$i] = htmlspecialchars(trim($row['Num_yvert']));
    			$larg[$i]=trim($row['largeur']);
    			$haut[$i]=trim($row['hauteur']);
    			$photo[$i]=trim($row['photo']);
    			$chemin[$i]=trim($row['chemin_photo']);
    			$t=explode('/', $chemin[$i]);
    			if(isset($t[1])) $chemin[$i]='image/'.$t[1].'/';
     
    			$desi[$i] = 'timbre '.$num[$i].', '.$desi[$i].'';
    			$tableg[$i]=$desi[$i].' &amp; ligne='.$tab[$i];
    			$image[$i]= $_SESSION["adresse_site"].$chemin[$i].$photo[$i].' "'.' '. ' width="'.$larg[$i].'"'. ' height="'.$haut[$i].'' ;
     
    		} else { // num pas trouvé en BdD !
    			$desi[$i] = '?';
    			$num[$i] = '?';
    			$desi[$i] = '"timbre '.htmlentities($num[$i]).', '.$desi[$i].'"';
    		}
    		//echo 'num = '.$tabnum.' : '.$desi[$i].'<br />';
    	}
     
    ?>
    je pense, mais je n'ai pas l'explication que c'est parce que "legende" n'apparait pas dans le SELECT
    si vous avez une explication ....

    Merci

  5. #5
    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
    Honnêtement ton code est atrocement compliqué avec des trim, des htmlspecialchars, des htmlentities, 10 variables indexées sur 30 lignes de code.

    Les vérifications et nettoyages de chaînes c'est à l'insertion qu'il faut les faire. Dans le même esprit, au moment de lire les infos dans ta table tu ne devrais plus avoir à te demander si le chemin contient un / ou non.
    Bref à relire comme ça, c'est difficile de s'y retrouver pour comprendre l'objectif de chaque ligne.

    Il y a quand même quelque chose qui me choque, c'est la présence d'espaces dans tes chaines (pour quelqu'un qui a mis des trim partout c'est un comble )
    Par exemple :
    (qui au passage est illisible)
    ou la
    ou là
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Bonne construction des tables et liens dans access
    Par Guillo7 dans le forum Modélisation
    Réponses: 10
    Dernier message: 27/11/2012, 16h37
  2. Réponses: 0
    Dernier message: 14/07/2009, 22h20
  3. Construction et liens
    Par mla75 dans le forum Modélisation
    Réponses: 3
    Dernier message: 23/07/2007, 10h02
  4. Construction de lien, Incompatibilié Firefox
    Par CanardJM dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/06/2007, 18h26
  5. Erreur de syntaxe lors de la construction d'un lien
    Par sosophie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 17h02

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