htmlentities() ???

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : htmlentities() ???

par dark_vidor » 02 mars 2005, 21:31

généralement un \n signifie un retour ligne aussi dans le code ( dans les bases de donnée du moins c'est le cas... il me semble)
comment on fait pour preserver le \n mais enlever le retour ligne qui se fait

j'aimerai ainsi op^timiser au maximum mes textes avant insertion en base ^^

autre question comment on utilise avec easy php la base en local ( c 'est koi les identifiants et tt ^^ )

par Xenon_54 » 02 mars 2005, 05:50

Je te conseille alors de ne pas stocker la version "convertie" de ta chaine (avec les <br />). Tu devrais plutôt stocker directement ton texte et convertir à l'affichages les retours de ligne en <br /> avec nl2br(). Cela t'économisera 6 octets. :lol:

De plus, cette manière de faire t'évitera bien des soucis. Surtout si tu désires ensuite pouvoir modifier le texte en question: les retours de lignes auront été préservés et donc directement affichage dans un textarea.

;)

par Flood » 02 mars 2005, 00:03

Hello,

Regarde l'utilité de la fonction nl2br()...
Tu peux aussi t'en sortir avec des str_replace() avec comme paramètres un jeu avec \r et \n...

Si tu veux supprimer aussi les espaces répétés au moins deux fois consécutives, alors un petit preg_replace() te fera le boulot...

/Flood

par dark_vidor » 01 mars 2005, 23:10

ben personne ne sait :cry: :cry:

par dark_vidor » 26 févr. 2005, 12:26

les retour chariots sont effectivement converti en <br>

il faut egalement que les retour ligne soit enlevé pour optimiser les pages ...
des logiciels le font ... mé dans ce cas precis c'est pour optimiser un texte avant un insertion dans la base de donnée pour éviter qu'elle soit trop grosse

es ce possible :roll:

par ouckileou » 25 févr. 2005, 15:27

quels espaces inutiles ?
ici tu n'as que des retours chariots converti en <br>

par dark_vidor » 25 févr. 2005, 12:31

arf oué effectivement dans la source ça fonctionne :roll:

en fait j'aimerai creer un script capable de me convertir des textes de cette forme
Bienvenue à tous sur La Derniere Bataille !
Nous avons lancé la version 2 du site ... elle est le fruit de quelques semaines de réflexion et de travail. Nous espérons qu'elle vous plaira et nous nous excusons de la gène occasionnée par le travail restant ...
Bonne visite !
en
Bienvenue &agrave; tous sur La Derniere Bataille !<br> Nous avons lanc&eacute; la version 2 du site ... elle est le fruit de quelques semaines de r&eacute;flexion et de travail. Nous esp&eacute;rons qu'elle vous plaira et nous nous excusons de la g&egrave;ne occasionn&eacute;e par le travail restant ...<br>Bonne visite !<br>
il faudrait donc que s'effectue non seulement le changement des caractère spéciaux et que tout les espaces inutiles soit virer aussi

es ce possible ?

Re: htmlentities() ???

par ouckileou » 25 févr. 2005, 00:27

Un \'apostrophe\' en <strong>gras</strong>
ça c'est ce que tu verras dans ta page
au lieu de
Un 'apostrophe' en <strong>gras</strong>
pour voir ça il faut regarder dans le source

même si effectivement les GET et les POST se mélangent un peu ici,
le code fonctionne très bien chez moi

par Epeda » 25 févr. 2005, 00:06

A mon avis tu devrais être un poil plus courtois avec les gens qui prennent la peine de te répondre.

Ton textarea se trouve en dehors de ta balise form, c'est pourquoi lors de l'envoi du formulaire et des données, ton écho ne retourne RIEN.

Concernant le POST et le GET...
if (isset($_GET['value'])) 
Ca c'est un test. Il est fait en GET...
$text = $_POST['text']; 
Ca c'est une affectation de valeur à une variable. Elle est faite en POST... Ton "if" étant faux, il ne fait pas l'attribution. Donc il ne fera pas ton écho...
<form name="form" method="post" action="index.php?value=ok"> 
Ca c'est ton formulaire. Il est fait en POST...

Conclusion : soit tu mets tout en GET, soit tout en POST...

par dark_vidor » 24 févr. 2005, 18:53

le test est bien avec un post :roll:

le get c'est pour voir si le formulaire est envoyer :arrow:

le texte area en dehors du formulaire ça na rien a voir ...
sinon pk ça fonctionne pas nan plus mon
<? echo htmlentities($text);?> ? :roll:

par Cyrano » 24 févr. 2005, 15:37

Pas seulement ça : le textarea est en dehors du formulaire, tu n'obtiendras donc de toute façon pas le contenu ;)

par Epeda » 24 févr. 2005, 15:29

Tu fais le test avec un GET alors que ton formulaire est en POST

htmlentities() ???

par dark_vidor » 24 févr. 2005, 15:24

voila je me trouve devant un petit pb

lorsque j'execute en local ceci (avec easyphp) avec la phrase
Un \'apostrophe\' en <strong>gras</strong>
<?
$textf = "";

if (isset($_GET['value']))
{
$text = $_POST['text'];
$textf = htmlentities($text);
}
?>
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form" method="post" action="index.php?value=ok">
  <textarea name="text" cols="50" rows="10"></textarea>
  <br>
  <br>
  <input type="submit" name="Submit" value="Envoyer">
</form>
Texte apres<br>
<br>
<textarea cols="50" rows="10"><? echo($textf); ?></textarea>
<br>
<br>
<? echo htmlentities($text);?>
</body>
</html>
j'obtiens dans les deux cas
Un \'apostrophe\' en <strong>gras</strong>
au lieu de
Un 'apostrophe' en <strong>gras</strong>
comme marqué dans la doc
http://fr.php.net/manual/fr/function.htmlentities.php

pk ? pouvez vous m'expliquer ?

merci par avance