par
prohand » 11 mars 2013, 22:11
bonsoir à tous,
Je vous écris ce soir car j'ai un problème d'insertion dans une base de donnée mysql lorsque je tente d'inserer une adresse mail avec un arobase;
Les accents fonctionnent correctement il y a que ce caractère qui ne passe pas.
voici la parti du code qui insère dans la base de donnée :
$objetMail = imap_utf8($objetMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$objetMail = utf8_encode($objetMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$emailExp = $from[0]->mailbox."@".$from[0]->host;
$corpsMail = get_part ($mbox, $key+1, "TEXT/PLAIN");
$corpsMail = imap_utf8($corpsMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$corpsMail = utf8_encode($corpsMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$idtMail= $key+1;
//Traitement Ins�rtion dans la base mysql
If (stripos($corpsMail, 'NAS_Srv-Home est termin') !== FALSE || stripos($objetMail, 'backup successful') !== FALSE || stripos($corpsMail, 'Sauvegarde ok') !== FALSE)
{
mysql_query("INSERT INTO sauvegardes (sujet,corpsmail,datemail,dateactuelle,etatsauvegarde,txsauvegarde) VALUES ('".addslashes($objetMail)."','".addslashes($corpsMail)."','$dateMail',now($),'$sauvegardeok','100')");
}
else
{
mysql_query("INSERT INTO sauvegardes (sujet,corpsmail,datemail,dateactuelle,etatsauvegarde,txsauvegarde) VALUES ('$objetMail','$corpsMail','$dateMail',now(),'$sauvegardenok','0')");
}
}
}
Voici la partie du code qui vérifie :
// on cr�e la requ�te SQL
$sql = 'SELECT sujet,corpsmail,datemail,dateactuelle,etatsauvegarde FROM sauvegardes ORDER BY dateactuelle DESC LIMIT 0,12';
?>
<TABLE width=100% border=1>
<TR>
<TD width=10% ><center><font color="red"><b>Date verification</b></font></center></TD>
<TD width=45% ><center><font color="red"><b>Sujet</b></font></center></TD>
<TD width=45% ><center><font color="red"><b>Mail</b></font></center></TD>
<TD width=20% ><center><font color="red"><b>Date de la sauvegarde</b></font></center></TD>
<TD width=10% ><center><font color="red"><b>Etat sauvegarde</b></font></center></TD>
</TR>
<?php
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
echo '<TR><b><TD width=10% ><center>'.$data['dateactuelle'].'</b> </center></TD>';
echo '<body><TD width=45% ><center><b>'.$data['sujet'].'</b></center></TD></body>';
$corp=$data['corpsmail'];
$corp = nl2br( $corp );
echo '<body><TD width=45% ><center><b>'.$corp.'</b></center></TD></body>';
echo '<b><TD width=20% ><center>'.$data['datemail'].'</b></center></TD>';
echo '<b><TD width=10% ><center>'.$data['etatsauvegarde'].'</b> </center></TD></TR>';
}
mysql_close();
?>
</TABLE>
</CENTER>
Je tiens à préciser que dans la base de donnée, l'arobase apparait bien.
Mon fichier qui affice à bien la balise meta suivant :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Je pense que le problème vient de l'affichage mais je ne sais pas d'ou.
Pouvez-vous m'aider ?
Merci beaucoup.
bonsoir à tous,
Je vous écris ce soir car j'ai un problème d'insertion dans une base de donnée mysql lorsque je tente d'inserer une adresse mail avec un arobase;
Les accents fonctionnent correctement il y a que ce caractère qui ne passe pas.
voici la parti du code qui insère dans la base de donnée :
[php] $objetMail = imap_utf8($objetMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$objetMail = utf8_encode($objetMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$emailExp = $from[0]->mailbox."@".$from[0]->host;
$corpsMail = get_part ($mbox, $key+1, "TEXT/PLAIN");
$corpsMail = imap_utf8($corpsMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$corpsMail = utf8_encode($corpsMail); // PERMET DE NE PAS AVOIR ISO=... pour les caracteres accentues
$idtMail= $key+1;
//Traitement Ins�rtion dans la base mysql
If (stripos($corpsMail, 'NAS_Srv-Home est termin') !== FALSE || stripos($objetMail, 'backup successful') !== FALSE || stripos($corpsMail, 'Sauvegarde ok') !== FALSE)
{
mysql_query("INSERT INTO sauvegardes (sujet,corpsmail,datemail,dateactuelle,etatsauvegarde,txsauvegarde) VALUES ('".addslashes($objetMail)."','".addslashes($corpsMail)."','$dateMail',now($),'$sauvegardeok','100')");
}
else
{
mysql_query("INSERT INTO sauvegardes (sujet,corpsmail,datemail,dateactuelle,etatsauvegarde,txsauvegarde) VALUES ('$objetMail','$corpsMail','$dateMail',now(),'$sauvegardenok','0')");
}
}
}
[/php]
Voici la partie du code qui vérifie :
[html]// on cr�e la requ�te SQL
$sql = 'SELECT sujet,corpsmail,datemail,dateactuelle,etatsauvegarde FROM sauvegardes ORDER BY dateactuelle DESC LIMIT 0,12';
?>
<TABLE width=100% border=1>
<TR>
<TD width=10% ><center><font color="red"><b>Date verification</b></font></center></TD>
<TD width=45% ><center><font color="red"><b>Sujet</b></font></center></TD>
<TD width=45% ><center><font color="red"><b>Mail</b></font></center></TD>
<TD width=20% ><center><font color="red"><b>Date de la sauvegarde</b></font></center></TD>
<TD width=10% ><center><font color="red"><b>Etat sauvegarde</b></font></center></TD>
</TR>
<?php
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
echo '<TR><b><TD width=10% ><center>'.$data['dateactuelle'].'</b> </center></TD>';
echo '<body><TD width=45% ><center><b>'.$data['sujet'].'</b></center></TD></body>';
$corp=$data['corpsmail'];
$corp = nl2br( $corp );
echo '<body><TD width=45% ><center><b>'.$corp.'</b></center></TD></body>';
echo '<b><TD width=20% ><center>'.$data['datemail'].'</b></center></TD>';
echo '<b><TD width=10% ><center>'.$data['etatsauvegarde'].'</b> </center></TD></TR>';
}
mysql_close();
?>
</TABLE>
</CENTER>
[/html]
Je tiens à préciser que dans la base de donnée, l'arobase apparait bien.
Mon fichier qui affice à bien la balise meta suivant :
[html]<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />[/html]
Je pense que le problème vient de l'affichage mais je ne sais pas d'ou.
Pouvez-vous m'aider ?
Merci beaucoup.