Placer un Lien complet dans une base MySql

jadu29 Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -  
 Jerome -

Bonjour,

je cherche à placer dans une base de données un lien vers une page précise, mais MySql place une chaine qui n'est pas traitée en PHP ni HTML à la lecture

// ********** Table textes valides ****** ci-dessous le travail qu'on veut faire :		
$sql = "SELECT * FROM harmonieuniverselle.textesvalides  WHERE titre LIKE   '%$mot%'   " ;
foreach ($conn->query($sql)as$col) {
	 if(isset($col['titre'])){
	 	$titre="<a href='https://harmonieuniverselle.bzh/TEXTES_VALIDES/affichage-txt/affichetexte.php?auteur=";
	 	$titre.=$col['auteur'];
	 	$titre.="&titre=";
	 	$titre.=$col['titre'];
	 	$titre.=">";
	 	$titre.=$col['titre'];
	 	$titre.="</a>";
	 	$recherche= strip_tags($col['resume']);
		}  else {
			echo "quedalle !";
			}
	$sql=$conn->prepare('INSERT INTO chercheBdd  (ID,titre, recherche, recherche2, recherche3)VALUES(:ID,:titre, :recherche, :recherche2, :recherche3)');
	$sql->execute(array(
			'ID' => NULL,
			'titre' => $titre,
			'recherche' => $recherche,
			'recherche2' =>"",
			'recherche3' =>""
			));
	}
		// ********************* ci-dessus le travail  est fait, on continue !

et dans la base c'est :

<a target='_blank' href='https://

et à la lecture le lien est imbuvable, en plus !

https://harmonieuniverselle.bzh/TEXTES_VALIDES/affichage-txt/affichetexte.php?auteur=Jacques+DUSSIN&titre=De+qui%2C+de+quoi+venons+nous+%3F%3EDe+qui%2C+de+quoi+venons+nous+%3F+-+%7C+-+Apr%C3%A8s+lecture+du+livre+%26%2334%3BLe+p%C3%A8re+de+nos+p%C3%A8res%26%2334%3B+de+Bernard+WERBER%2C+j


A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Bonjour,

De quel type est le champ dans lequel tu veux stocker ton lien ?

Si c'est un varchar .. l'as tu dimensionné assez grand ? ( par précaution, tu peux sans mal prévoir de le mettre à 2048 )

Mais visiblement, le "stockage" du lien en bdd fonctionne vu le lien que tu nous montres ... non ? ( si le lien ne passe pas sur le forum.. n'hésites pas à nous mettre une capture écran du contenu de cette table  pour nous montrer à quoi ça ressemble... )

Et pour ce qui est de l'affichage .. ne fais tu pas un traitement sur la variable avant de l'utiliser ?  Il serait bon de nous montrer le code qui te sert à faire l'affichage...


0
Jerome
 

Bonjour,

Pour stocker le lien dans la base de données, il faut effectivement prévoir un champ d'une taille suffisante (là, ça a l'air limité à 32 caractères...).

Ensuite, je trouve curieux de stocker une balise HTML complète (<a href=''...) là ou la cible du lien suffirait, même si le protocole (https) est peut-être important dans ton cas (si le but est de stocker d'autres types de liens que du https ?).

Le lien est encodé pour être utilisé, il faudrait essayer de le stocker en utilisant urlencode, puis urldecode si tu as besoin de l'afficher.

-1