Page 1 sur 1

Texte formulaire dans mysql retour chariot = &nbsp;<b

Posté : 22 févr. 2005, 10:45
par jean
le résultat de mon formulaire est envoyé par e-mail et les champs nom, e-mail, et texte sont insérés dans une base mysql.
Dans le champ texte les retours chariot se mettent sous la forme" &nbsp;<br />" et quand je demande le tableau des réponses, les &nbsp;<br /> apparaissent aussi.
merci de me donner un bon conseil
jean

Posté : 22 févr. 2005, 10:53
par Jerem'
Un peu de code pourrait nous aider :wink:

Posté : 22 févr. 2005, 11:08
par pascaltje
si je comprends le peu d'indice, les retours chariot sont transformés avant insertion et envoi des données.

Vérifie le script enter la récupération des données et leur insertion / envoi. ça doit se trouver dans ce coin là.

A+

Pascal qui lit entre les lignes

merci pour les réponses, un peu plus d'info

Posté : 23 févr. 2005, 15:59
par jean
mon formulaire et la relation à mysql a été faits avec "phpFormGen", un sript chouette.
Dans ma table mysql texte les retours chariot sont de la forme" &nbsp;<br / ".
j'ai réalisé un fichier php pour aller chercher les info sur ma base :
le résultat fait aussi apparaitre les " &nbsp;<br / "
<HTML>
<HEAD>
<TITLE> phpInfo.net </TITLE>
<STYLE>
BODY { font-family: Arial; font-size: 13px; color: #1C2D67 }
TD { font-family: Arial; font-size: 13px; color: #1C2D67 }

A {font-family:Arial;font-size:13px;color:#003FFF;text-decoration:none}
A:link {font-family:Arial;font-size:13px;color:#003FFF;font-weight:bold}
A:visited {font-family:Arial;font-size:13px;color:#003FFF;font-weight:bold}
A:hover {font-family:Arial;font-size:13px;color:#003FFF;font-weight:bold}

A.off {font-family:Arial;font-size:13px;color:#C0D780;font-weight:bold}
</STYLE>
</HEAD>

<BODY BGCOLOR="#9DAEE8">


<?php
$cfgHote = 'localhost';
$cfgBase = 'mara';
$cfgUser = 'root';
$cfgPass = '??';
$nom_table = 'form';
$champs= 'DATE_FORMAT(date, "%d/%m %H:%i") AS d, Nom, email, Tel, Message';
$cfg_nbres_ppage = 10;
$cfg_nb_pages= 10;


mysql_connect($cfgHote, $cfgUser, $cfgPass);

// on regarde si il faut rechercher des mots clés
$mots = str_replace('%', '', $mots);
$mots = str_replace('_', '', $mots);
$mots = trim($mots);
if ($mots != '')
{
$where = " WHERE Nom LIKE '%".addslashes($mots)."%' OR ";
$where .= "Message LIKE '%".addslashes($mots)."%'";
$criteres = "?mots=".urlencode($mots);
}
else
{
$where = '= latin1_column';
$criteres = "?";
// remplacer les retours chariot par des retours à la ligne
// simple pour tout le monde
$mots=nl2br($mots);

// supprimer les retour à la ligne d'un texte
$mots=str_replace(CHR(10),"",$mots);
// et celle là aussi :
$mots=str_replace(CHR(13),"",$mots);
}

// Recherche du nombre de lignes
$sql = 'SELECT count(*) ';
$sql .= 'FROM '.$nom_table;
$sql .= $where;

$resultat = mysql_db_query($cfgBase, $sql);
$enr = mysql_fetch_array($resultat);

if (($nbtotal = $enr[0]) == 0)
{
echo 'Aucune réponse trouvée';
}
else
{
if (!isset($debut)) $debut = 0;

// recherche des réponses
$sql = 'SELECT '.$champs.' ';
$sql .= 'FROM '.$nom_table.' ';
$sql .= $where;
$sql .= ' ORDER BY id';
$sql .= ' LIMIT '.$debut.','.$cfg_nbres_ppage;

$resultat = mysql_db_query($cfgBase, $sql);
$nbenr = mysql_num_rows($resultat);

// plage de réponses
$barre_nav = '<TABLE BORDER=0 WIDTH="100%" CELLPADDING=3 CELLSPACING=1>';
$barre_nav .= '<TR><TD BGCOLOR=#DCDCDC WIDTH="40%" ALIGN="left">';
$barre_nav .= 'Réponses <B>'.($debut + 1).'</B> à  <B>'.($debut + $nbenr).'</B>';
$barre_nav .= ' sur <B>'.($nbtotal).'</B></TD>';

// barre de navigation
$barre_nav .= "<TD BGCOLOR=#FCFDDF ALIGN='left' WIDTH='60%'>&nbsp;";
if ($nbtotal > $cfg_nbres_ppage)
{
$barre_nav .= barre_navigation($nbtotal, $nbenr,
$cfg_nbres_ppage,
$debut, $cfg_nb_pages,
$criteres);
}
$barre_nav .= "</TD></TR></TABLE>\n";

// affichage de la barre de navigation
echo $barre_nav;

// affichage des donn••es
$cpt = 0;
echo "<TABLE BORDER=0 CELLPADDING=1 CELLSPACING=1 WIDTH='100%'>";
while ($enr = mysql_fetch_array($resultat))
{
echo afficher_ligne($debut + $cpt + 1, $enr);
$cpt++;
}
echo "</TABLE>\n";

// 2me barre après les résultats si nécessaire
if ($nbtotal > $cfg_nbres_ppage && $cpt > ($cfg_nbres_ppage / 2))
{
echo $barre_nav;
}
}

// Zone de recherche
echo "<FORM METHOD=GET>\n";
echo "<B>Rechercher</B>&nbsp;&nbsp;";
$mots = stripslashes(htmlspecialchars($mots));
echo "<INPUT TYPE='text' NAME='mots' VALUE=\"".$mots."\">";
echo "&nbsp;&nbsp;<INPUT TYPE='submit' VALUE='Go !'>";
echo "</FORM>\n";

// ------------------------------------------------------------------------
// barre_navigation
// ------------------------------------------------------------------------
function barre_navigation($nbtotal,
$nbenr,
$cfg_nbres_ppage,
$debut, $cfg_nb_pages,
$criteres)
{
// --------------------------------------------------------------------
$cfg_nb_pages= 10; // Nb de n de pages affichées dans la barre
$lien_on= '&nbsp;<A HREF="{cible}">{lien}</A>&nbsp;';
$lien_off= '&nbsp;{lien}&nbsp;';
// --------------------------------------------------------------------

$query= $criteres.'&debut=';

// début << .
// --------------------------------------------------------------------
if ($debut >= $cfg_nbres_ppage)
{
$cible = $query.(0);
$image = image_html('images/gauche_on.gif');
$lien = str_replace('{lien}', $image.$image, $lien_on);
$lien = str_replace('{cible}', $cible, $lien);
}
else
{
$image = image_html('images/gauche_off.gif');
$lien = str_replace('{lien}', $image.$image, $lien_off);
}
$barre .= $lien."&nbsp;<B>&middot;</B>";


// précédent < .
// --------------------------------------------------------------------
if ($debut >= $cfg_nbres_ppage)
{
$cible = $query.($debut-$cfg_nbres_ppage);
$image = image_html('images/gauche_on.gif');
$lien = str_replace('{lien}', $image, $lien_on);
$lien = str_replace('{cible}', $cible, $lien);
}
else
{
$image = image_html('images/gauche_off.gif');
$lien = str_replace('{lien}', $image, $lien_off);
}
$barre .= $lien."&nbsp;<B>&middot;</B>";


// pages 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10
// -------------------------------------------------------------------

if ($debut >= ($cfg_nb_pages * $cfg_nbres_ppage))
{
$cpt_fin = ($debut / $cfg_nbres_ppage) + 1;
$cpt_deb = $cpt_fin - $cfg_nb_pages + 1;
}
else
{
$cpt_deb = 1;

$cpt_fin = (int)($nbtotal / $cfg_nbres_ppage);
if (($nbtotal % $cfg_nbres_ppage) != 0) $cpt_fin++;

if ($cpt_fin > $cfg_nb_pages) $cpt_fin = $cfg_nb_pages;
}

for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++)
{
if ($cpt == ($debut / $cfg_nbres_ppage) + 1)
{
$barre .= "<A CLASS='off'>&nbsp;".$cpt."&nbsp;</A> ";
}
else
{
$barre .= "<A HREF='".$query.(($cpt-1)*$cfg_nbres_ppage);
$barre .= "'>&nbsp;".$cpt."&nbsp;</A> ";
}
}


// suivant . >
// --------------------------------------------------------------------
if ($debut + $cfg_nbres_ppage < $nbtotal)
{
$cible = $query.($debut+$cfg_nbres_ppage);
$image = image_html('images/droite_on.gif');
$lien = str_replace('{lien}', $image, $lien_on);
$lien = str_replace('{cible}', $cible, $lien);
}
else
{
$image = image_html('images/droite_off.gif');
$lien = str_replace('{lien}', $image, $lien_off);
}
$barre .= "&nbsp;<B>&middot;</B>".$lien;

// fin . >>
// --------------------------------------------------------------------
$fin = ($nbtotal - ($nbtotal % $cfg_nbres_ppage));
if (($nbtotal % $cfg_nbres_ppage) == 0) $fin = $fin - $cfg_nbres_ppage;

if ($fin != $debut)
{
$cible = $query.$fin;
$image = image_html('images/droite_on.gif');
$lien = str_replace('{lien}', $image.$image, $lien_on);
$lien = str_replace('{cible}', $cible, $lien);
}
else
{
$image = image_html('images/droite_off.gif');
$lien = str_replace('{lien}', $image.$image, $lien_off);
}
$barre .= "<B>&middot;</B>&nbsp;".$lien;

return($barre);
}


// ------------------------------------------------------------------------
// image_html
// ------------------------------------------------------------------------
function image_html($img, $align = "absmiddle")
{
$taille = @getimagesize($img);
return '<IMG SRC="'.$img.'" '.$taille[3].' BORDER=0 ALIGN="'.$align.'">';
}

// ------------------------------------------------------------------------
// afficher_ligne
// ------------------------------------------------------------------------
function afficher_ligne($cpt, $enr)
{
// alternance des couleurs des lignes de réponses
$couleur = ($cpt % 2)
? '#EEEEEE'
: '#FFFFFF';
echo '<TR BGCOLOR="'.$couleur.'">';

// nb de réponse
echo '<TD ALIGN="right" NOWRAP WIDTH="1%">&nbsp;<B>'.$cpt.'</B>.&nbsp;</TD>';

// date
echo '<TD ALIGN="left"NOWRAP WIDTH="1%">&nbsp;';
echo htmlspecialchars($enr['d']);
echo '&nbsp;</TD>';

// nom+email
echo '<TD ALIGN="left"NOWRAP WIDTH="1%">&nbsp;';
$nom = htmlspecialchars($enr['Nom']);


if ($enr['email'] != "")
{
$mail = str_replace('@', '@', $enr['email']);
echo "<A HREF='mailto:".htmlspecialchars($mail)."'>";
echo $nom;
echo "</A>";
}
else
{
echo $nom;
}
echo '&nbsp;</TD>';

// Tel
echo '<TD WIDTH="10%">&nbsp;';
echo htmlspecialchars($enr['Tel']);
echo '&nbsp;</TD>';

// message

echo '<TD WIDTH="100%">&nbsp;';
echo htmlspecialchars($enr['Message']);
echo '&nbsp;</TD>';

echo '</TR>';
}

?>

</BODY>
</HTML>