Probleme php
Résolu
Adrix08
Messages postés
126
Date d'inscription
Statut
Membre
Dernière intervention
-
Adrix08 Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
Adrix08 Messages postés 126 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
tout d'abord voici mon script :
$db=mysql_connect("localhost", "ADMIN", "admin");
mysql_select_db("flux_rss",$db);
$recherche=$_POST["recherche"];
$rubrique=$_POST["rubrique"];
$sql = "SELECT dateArticle, titreArticle FROM infosexpert WHERE rubrique= '$rubrique' AND texteParagraphe LIKE '%$recherche%' ORDER BY dateArticle DESC ";
//$req = mysql_query($sql)or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if ($_POST["rubrique"] == 'toutes')
{
$sql= "SELECT texteParagraphe, dateArticle, titreArticle FROM infosexpert WHERE texteParagraphe LIKE '%$recherche%' ORDER BY dateArticle DESC ";
}
$result1=mysql_query($sql);
while ($row=mysql_fetch_object($result1))
{
list($year, $month, $day) = explode("-", $row->dateArticle);
$months = array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre");
echo "<a href='resultat.php?titreArticle=".$row->titreArticle."'>".$row->titreArticle."</a> - (".$day." ".$months[$month-1]." ".$year.")<br>";
}
?>
<?php
while($row=mysql_fetch_array($result1))
{
?>
<center><ul>
<li><a href="resultat.php?titreArticle=<?php echo $row["titreArticle"];?>"></li><?php echo $row["titreArticle"];?></a> <?php echo $row["dateArticle"];?>
</ul></center>
<?php
}
mysql_close();
le probléme que je rencontre et un problème avec les apostrophe dans mes lien a ce nivo la :
echo "<a href='resultat.php?titreArticle=".$row->titreArticle."'>".$row->titreArticle."</a> - (".$day." ".$months[$month-1]." ".$year.")<br>";
les lien s'affiche parfaitement mais des qu'il y a un apostrophe l'url ce coupe.
exemple :
"vole ou perte d'une carte de paiement" le lien qui et relier a cette phrase est : vole ou perte d
rien de plus, quelqu'un pourrai til maider svp ?
merci
tout d'abord voici mon script :
$db=mysql_connect("localhost", "ADMIN", "admin");
mysql_select_db("flux_rss",$db);
$recherche=$_POST["recherche"];
$rubrique=$_POST["rubrique"];
$sql = "SELECT dateArticle, titreArticle FROM infosexpert WHERE rubrique= '$rubrique' AND texteParagraphe LIKE '%$recherche%' ORDER BY dateArticle DESC ";
//$req = mysql_query($sql)or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if ($_POST["rubrique"] == 'toutes')
{
$sql= "SELECT texteParagraphe, dateArticle, titreArticle FROM infosexpert WHERE texteParagraphe LIKE '%$recherche%' ORDER BY dateArticle DESC ";
}
$result1=mysql_query($sql);
while ($row=mysql_fetch_object($result1))
{
list($year, $month, $day) = explode("-", $row->dateArticle);
$months = array("janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre");
echo "<a href='resultat.php?titreArticle=".$row->titreArticle."'>".$row->titreArticle."</a> - (".$day." ".$months[$month-1]." ".$year.")<br>";
}
?>
<?php
while($row=mysql_fetch_array($result1))
{
?>
<center><ul>
<li><a href="resultat.php?titreArticle=<?php echo $row["titreArticle"];?>"></li><?php echo $row["titreArticle"];?></a> <?php echo $row["dateArticle"];?>
</ul></center>
<?php
}
mysql_close();
le probléme que je rencontre et un problème avec les apostrophe dans mes lien a ce nivo la :
echo "<a href='resultat.php?titreArticle=".$row->titreArticle."'>".$row->titreArticle."</a> - (".$day." ".$months[$month-1]." ".$year.")<br>";
les lien s'affiche parfaitement mais des qu'il y a un apostrophe l'url ce coupe.
exemple :
"vole ou perte d'une carte de paiement" le lien qui et relier a cette phrase est : vole ou perte d
rien de plus, quelqu'un pourrai til maider svp ?
merci
A voir également:
- Probleme php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
11 réponses
coucou Adrix08,
Il faut que tu utilises le \ pour les apostrophes, ça permet de dire a php que le caractère que suit est à ignoré.
Par exemple : $mot = "bonjour, comment t\'appelles-tu"
sinon il prend en compte le ' et ça fausse ton script qui se termine prématurément.
Bon courage
Il faut que tu utilises le \ pour les apostrophes, ça permet de dire a php que le caractère que suit est à ignoré.
Par exemple : $mot = "bonjour, comment t\'appelles-tu"
sinon il prend en compte le ' et ça fausse ton script qui se termine prématurément.
Bon courage
Adrix08
Messages postés
126
Date d'inscription
Statut
Membre
Dernière intervention
1
merci de ta reponse Tarxiarque ms le souci c que je ne peut pas faire sa car les titre que je veux afficher vienne directement de la base de données, et je ne peut pas changer sa
Bonjour.
C'est logique : Tu obtiens
echo "<a href='resultat.php?titreArticle="."vole ou perte d'une carte de paiement"."'>"
Ce qui est interprété comme <a href='resultat.php?titreArticle=vole ou perte d'une carte de paiement>
Les apostrophes (comme les accents ou les espaces) ne sont pas top, dans un lien...
La solution la plus élégante serait donc, en amont, de modifier la forme de tes liens (remplacer les caractères indésirables par des équivalents). Ce qui te donnerait, dans ton cas :
<a href='resultat.php?titreArticle=vol_ou_perte_d_une_carte_de_paiement'>
Mais ça risque de te demander pas mal de boulot (entre autres, dans ta base rajouter un champ URL).
Autre solution : utilise la fonction htmlEntities.
"<a href='resultat.php?titreArticle=".htmlEntitiess($row->titreArticle, ENT_QUOTES)."'>"...
C'est logique : Tu obtiens
echo "<a href='resultat.php?titreArticle="."vole ou perte d'une carte de paiement"."'>"
Ce qui est interprété comme <a href='resultat.php?titreArticle=vole ou perte d'une carte de paiement>
Les apostrophes (comme les accents ou les espaces) ne sont pas top, dans un lien...
La solution la plus élégante serait donc, en amont, de modifier la forme de tes liens (remplacer les caractères indésirables par des équivalents). Ce qui te donnerait, dans ton cas :
<a href='resultat.php?titreArticle=vol_ou_perte_d_une_carte_de_paiement'>
Mais ça risque de te demander pas mal de boulot (entre autres, dans ta base rajouter un champ URL).
Autre solution : utilise la fonction htmlEntities.
"<a href='resultat.php?titreArticle=".htmlEntitiess($row->titreArticle, ENT_QUOTES)."'>"...
Fatal error: Call to undefined function: htmlentitiess() in c:\program files\easyphp1-7\www\affichage\formulaire.php on line 29
voila ce que sa m'affiche apres avoir utiliser mis
echo "<a href='resultat.php?titreArticle='resultat.php?titreArticle=".htmlEntitiess($row->titreArticle,ENT_QUOTES)."'>".$row->titreArticle."</a>
voila ce que sa m'affiche apres avoir utiliser mis
echo "<a href='resultat.php?titreArticle='resultat.php?titreArticle=".htmlEntitiess($row->titreArticle,ENT_QUOTES)."'>".$row->titreArticle."</a>
Je crois que tu as une fonction php qui remédie à cela :
addslashes ()
Elle rajoute des anti-slashes après les apostrophes.
addslashes ()
Elle rajoute des anti-slashes après les apostrophes.
En reprenant l'exemple de la variable $mot que j'ai utilisé ci-dessus, tu procèdes de cette façon :
J'espère que ça répondra à ta question ^_^
$mot = addslashes($mot);
J'espère que ça répondra à ta question ^_^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si htmlentities ne fonctionne pas, tu peux essayer htmlspecialchars (je n'ai jamais su la différence entre les deux :-o ).
N'oublie pas de bien passer ENT_QUOTES en deuxième paramètre...
N'oublie pas de bien passer ENT_QUOTES en deuxième paramètre...
La différence entre les deux c'est que htmlspecialchars() remplace que les caractères tel que & " > < et ' alors que htmlentities() remplace tous les caractères qui ont des équivalents html.
Il est conseillé en général d'utiliser htmlentities() car il est plus complet ^^
Il est conseillé en général d'utiliser htmlentities() car il est plus complet ^^
htmlentities fonctionne le lien et bien fait, par contre des caractere speciaux son aparu apres ce qui fait que mes lien qui ont des accents ou autre ne fonctionne pas :s
Coucou,
Essayes de recomposer la chaine quand elle arrive sur ta page avec : html_entity_decode()
ça t'enlèvera les caractères spéciaux. (c'est l'opération inverse)
mais bon je ne sais pas si ça résoudra ton soucis.
Essayes de recomposer la chaine quand elle arrive sur ta page avec : html_entity_decode()
ça t'enlèvera les caractères spéciaux. (c'est l'opération inverse)
mais bon je ne sais pas si ça résoudra ton soucis.