La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Prise en compte du html dans un formulaire
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Prise en compte du html dans un formulaire  (Lu 907 fois)
Prise en compte du html dans un formulaire
« sur: le 01-01-2007 a 19:35:59 »
hackiles
Membre récent
*

Hors-Ligne

Messages: 51





Voir le Profil    E-Mail
Répondre avec citation

Bonjour

Je butte sur quelques aspects des formulaires php/mysql:

Comment le html peut-il être pris en compte dans l'enregistrement d'un formulaire pour être pris en compte lors de l'affichage du contenu de l'enregistrement?

Comment prendre en compte le retour à ligne dans le formulaire?
(pour éviter les <br>)

Merci

Rapporter au modérateur  

Re:Prise en compte du html dans un formulaire
« Répondre #1 sur: le 01-01-2007 a 19:43:00 »
theonlydrayk
Invité

E-Mail
Répondre avec citation

Salut

Je ne comprend vraiment pas ce que tu veut dire. Tu devrais poster un bout de code html ou une URL pour ta page.

Moi mon code html fait pas de <br> quand j'en ecrit pas mais ca peut etre different par chez vous :p

Rapporter au modérateur  
Re:Prise en compte du html dans un formulaire
« Répondre #2 sur: le 02-01-2007 a 11:52:24 »
hackiles
Membre récent
*

Hors-Ligne

Messages: 51





Voir le Profil    E-Mail
Répondre avec citation

En gros j'ai des formulaires html qui permette de remplir ma base sql et des script qui qui affiche le contenu de la base.

Mais ces formulaires ne prennent pas en compte le code html et les retour à la ligne.
Exemple: si je rentre:

En gros j'ai des <b>formulaires</b> html qui permette de remplir ma base sql et

des script qui qui affiche le contenu de la base.


la page d'affichage me renvois:
En gros j'ai des <b>formulaires</b> html qui permette de remplir ma base sql et des script qui qui affiche le contenu de la base.

Je n'ai donc ni le passage à la ligne ni l'interprétation de la balise <b>.

Pourtant dans phpmyadmin le passage à la ligne à l'air d'être pris en compte mais pas la balise html qui est transformée en &lt;b&gt;

Rapporter au modérateur  
Re:Prise en compte du html dans un formulaire
« Répondre #3 sur: le 02-01-2007 a 20:12:22 »
theonlydrayk
Invité

E-Mail
Répondre avec citation

  C'est parfaitement normal. phpmyadmin utilise la fonction php htmlentities() pour proteger contre le code html/javascript qu'il pourrais avoir a l'interieur de la base de donner.

  Pour le '<br>' c'est probablement une fin de ligne '\r\n' Windows/DOS ou '\n' Linux/Unix ou '\r' Macintosh. Je n'ai pas verifier avec phpmyadmin mais il est probablement converti en <br> ou afficher directement avec un <pre></pre>.

  Dapres ce que je comprend tu as un <input type="text"> ou un <textarea> et tu voudrais pouvoir laisser les utilisateurs entrer du html. Et ensuite l'afficher sur tes pages ? C'est vraiment deconseiller pour des raisons de securiter. N'importe qui va pouvoir modifier ton html et ajouter du javascript, faire un XSS pour voler les cookies de sessions, .....

  Tu peut faire ton propre script pour afficher le contenu de la base de donner sans passer par phpmyadmin qui fait des modifications sur les donners. De cette facon tu va savoir exactement ce qui il y a a l'interieur de ta base de donners.

  Il existe plusieurs method pour stocker des valeurs dans une base de donner comme htmlentities(), htmlspecialchar(), addslashes(), ....    Ton PHP peut aussi etre configurer avec magic_quotes pour eviter les SQL injection. Prend ce petit script pour voir dans ta configuration si les magic quotes sont activer :
Code:

<?php
if(get_magic_quotes_gpc())
   echo "Magic quotes are enabled";
else
   echo "Magic quotes are disabled";
?>


  Et si tu poste pas ton code html/php/sql personne peut deviner comment tu a fait le script et personne peut t'aider d'avantage...............

Poste ta configuration (PHP Version et les Magic Quotes)
Le Code complet HTML, PHP, SQL, ....
Qui va remplir les formulaires toi ? un administrateur dans un dossier proteger par un .htaccess, des utilisateurs anonymes ou enregistrer ....
Le mieux serait de donner un liens vers ta page pour savoir comment la securiter entre en jeux. (et si tu donne le liens poste aussi le php parce que on peut pas le voir ca).

Rapporter au modérateur  
Re:Prise en compte du html dans un formulaire
« Répondre #4 sur: le 03-01-2007 a 16:37:11 »
hackiles
Membre récent
*

Hors-Ligne

Messages: 51





Voir le Profil    E-Mail
Répondre avec citation

Merci pour tes conseilles j'ai trouvé un compromis avec la fonction  strip_tags en autorisants certaines balises (<b><i><u><br><h1> ....). Les formulaires utilisaient htmlentities.

Les formulaires pouvaient être utilisés par n'importe quel utilisateur enregistré.

J'ai testé ton script => Magic quotes are enabled

Il me reste maintenant à faire prendre en compte le passage à la ligne sans avoir recour à <br>

je ne comprend pas ce que tu veut dire:
Citation:
Pour le '<br>' c'est probablement une fin de ligne '\r\n' Windows/DOS ou '\n' Linux/Unix ou '\r' Macintosh. Je n'ai pas verifier avec phpmyadmin mais il est probablement converti en <br> ou afficher directement avec un <pre></pre>.

Etant que phpmyadmin (dans l'affichage du contenu) prend en compte le retour à la ligne le problème doit se situer dans le script d'affichage. Le voici (le site utilise le moteur de template smarty):
Citation:
{include file="header.tpl"}
{include file="menu.tpl"}
<div id="content">
{dynamic}
<div id="entete">- {$entete} -</div>
{if $list}
<form action="" method="post" id="liste">
{if $cours}
Trier par catÈgorie :&nbsp;
<select name="matiere" onchange="requestMatiere(this.form)">
   <option value="-1">MatiÈre</option>
   {html_options values=$id_matiere output=$libelle_matiere selected=$id_matiere_selected}
</select>&nbsp;
<select name='categorie' onchange="this.form.submit();">
   <option value="-1">CatÈgorie</option>
</select><br/><br/>
{/if}
{section name=item loop=$article_titre}
{if $article_auteur[item] != ''}<a href="auteurs-{$article_auteur_id[item]}-{$article_auteur_lien[item]}.html">{$article_auteur[item]}</a><br/>{/if}
{if $article_oeuvre[item] != ''}<a href="oeuvres-{$article_oeuvre_id[item]}-{$article_oeuvre_lien[item]}.html">{$article_oeuvre[item]}</a><br/>{/if}
<img src="images/puce.jpg" alt"article"/>&nbsp;<a href="{$article_type[item]}-{$article_id[item]}-{$article_titre_url[item]}.html">{$article_titre[item]}</a>&nbsp;&nbsp;<span style="font-size:12px">vu {$article_compteur[item]} fois<br/>DerniËre mise ‡ jour : {$article_date[item]}</span><br/>
{if $article_lien_modification[item] != ''}<img class="icon" src="images/page_edit.png" alt="edit"/>&nbsp;<a href="{$article_lien_modification[item]}">Modifier</a><br/>{/if}
<br/>
{/section}
{section name=item loop=$compteur}
<a class="compteur" href="javascript:navigate({$compteur[item]})">{$i[item]}</a>
{/section}
<input type="hidden" id="pos" name="pos"/>
</form>
{else}
<p class="underline">Description :</p>{$description}<br/>
{if $extrait != ''}<p class="underline">Extrait :</p>{$extrait}<br/>{/if}
<br/>{$contenu}<br/><br/>
{if $auteur != ' '}Auteur :<a href="auteurs-{$auteur_id}-{$auteur_lien}.html">{$auteur}</a>&nbsp;&nbsp;{/if}
{if $oeuvre != ''}Oeuvre :<a href="oeuvres-{$oeuvre_id}-{$oeuvre_lien}.html">{$oeuvre}</a><br/>{/if}
Date : {$date}<br/>
RÈdigÈ par : <a href="member.php?user={$id_user}">{$user}</a><br/>
{/if}
{/dynamic}
</div>
{include file="footer.tpl"}

Rapporter au modérateur  
Re:Prise en compte du html dans un formulaire
« Répondre #5 sur: le 03-01-2007 a 18:16:51 »
theonlydrayk
Invité

E-Mail
Répondre avec citation

Salut,

En general les sites web qui utilise le system Smarty sont concu en 3 axes : Modele, Vue, Controleur.

Modele comprend tout les access base de donner.
Vue c'est le system d'affichage et de cache. Smarty dans ton cas.
Controleur c'est la section principale qui redirige les demandes. Le noyau du site web.

Une page servit fonctionne a peu pres comme ca :

L'internaute demande une page web au controleur, le controleur demande a vue si la page est cache n'est pas expirer il l'envoit a l'internaute, sinon le controleur demande au modele les informations dans la base de donner, le controleur traite les informations et les envoye a vue. Vue cache la page et l'envoit a l'internaute.

C'est la section controleur de ton site web qui traite les informations c'est dans cette section qu'il faut regarder pour trouver le traitement. Smarty n'est la que pour la vue, mettre en cache et afficher les informations, il ne traite rien et n'est pas utile.


Quand tu tappe un 'enter' dans un <textarea> tu ne recois pas un <br> dans ta variable. Tu recois le caracteres  \r\n quand l'utilisateur a un ordinateur Windows, \r quand l'utilisateur a un ordinateur Macintosh, \n quand l'utilisateur a un ordinateur Linux. Ca peut etre modifier par le browser ou ton server web mais en general c'est ca. Avec un petit code php tu peut le remplacer.

Code:

<?php

// L'ordre des commandes est importante
// Convertir les fin de lignes Windows en fin de ligne Unix
$somevar = str_replace("\r\n", "\n", $somevar);
// Convertir les fin de lignes Macintosh en fin de ligne Unix
$somevar = str_replace("\r", "\n", $somevar);

// Convertir les fin de lignes Unix en fin de ligne html <br> ou <br /> pour le xhtml
$somevar = str_replace("\n", "<br>", $somevar);

?>

Je nai pas vue le code complet du site mais un site web concu en 3 axes Modele, Vue Controleur est assez complexe et en general il est nessecaire pour balancer les ressources memoire et processeur du serveur. C'est un systeme fragile et si il est mal modifier tu va te retrouver rapidement avec un system tres lents et si tu brise le principe modele, vue, controleur en plancants les commandes au mauvais endroit le prochain programmeur va avoir ben de la difficulter a modifier le site. C'est quelque chose de pas mal gros, complexe. On est rendu beaucoup plus loin/complexe que du code html/php/mysql et je pense que la pluparts des programmeur php amateur (meme tres bon) aurrais de la difficulter avec ca. Je pense que ca neccesite un programmeur proffessionel de preference la personne qui a concu le site pour eviter de perdre du temps.

  Il faut une bonne experience de ce type de site web et une bonne connaissance de la facon dont il a ete integrer pour modifier proprement un site web comme ca. Je parle de tout les principes de securiter et de la gestion des servers de base de donner, memoire et processeur. Je ne crois pas qu'avec des messages sur un forum tu arrive a regler ca.

  Si le site web ne fait qu'utiliser Smarty pour le cache et n'est pas concu selon les 3 axes je pense que c'est beaucoup moins important et la tu peut tenter ta chance meme si tu n'est pas exactement sur de ce que tu fait.

  Bon je m'arrete la avant d'ecrire une bible sur les sites web.

Rapporter au modérateur  
Re:Prise en compte du html dans un formulaire
« Répondre #6 sur: le 03-01-2007 a 18:33:00 »
hackiles
Membre récent
*

Hors-Ligne

Messages: 51





Voir le Profil    E-Mail
Répondre avec citation

Comme tu l'as deviné j'ai du mal à mis retrouver à cause de smarty mais le codeur est injoignable donc pour commencer à remplir la base je bidouille avec les quelques bases de programmation que j'ai...

Ton script marche parfaitement ! Merci beaucoup

Rapporter au modérateur  
Re:Prise en compte du html dans un formulaire
« Répondre #7 sur: le 12-01-2007 a 17:29:55 »
erwinol
Iznogoud Deluxe
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1845



Que la FARCE soit avec toi

Voir le Profil    WWW
Répondre avec citation

Pour le retour à la ligne, il suffit d'utiliser la fonction nl2br()

Rapporter au modérateur  

MySeoBox soumet vos sites sur des milliers d'annuaire
Vous possédez un annuaire ? Gagnez de l'argent avec celui-ci grâce à l'affiliation MySeoBox !
Re:Prise en compte du html dans un formulaire
« Répondre #8 sur: le 12-01-2007 a 19:33:37 »
theonlydrayk
Invité

E-Mail
Répondre avec citation

  Je n'aime pas la fonction nl2br(); parce qu'elle tiens en compte uniquement les fin de lignes Unix et pas les fin de lignes Window et Macintosh et elle offre un mauvais control sur le html ou le xhtml.

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg