Xmemy
Messages postés5Date d'inscriptionmercredi 13 février 2008StatutMembreDernière intervention14 mars 2008
-
13 févr. 2008 à 15:52
Xmemy
Messages postés5Date d'inscriptionmercredi 13 février 2008StatutMembreDernière intervention14 mars 2008
-
14 févr. 2008 à 15:45
Bien le bonjour à tous
Je dois développer un petit site internet pour l'entreprise où je fais stage, et je rencontre un petit problème avec un code javascript et plus particulièrement avec la requête SQL que j'inclus dedans.
J'ai donc un javascript qui me permet de faire un défilement automatique du texte de bas en haut. Dans ce javascript qui sert à faire défiler des nouvelles, il y a une chaine de caractères (120) qui provient d'une base de données qui provient d'un textarea.
J'ai remarqué quand quand ma chaine de caractères comptait des
l'affichage de mon javascript plantait complètement.J'imagine qu'il doit y avoir d'autre problème dans le genre.
Avant de mettre la chaine de caractères dans ma base données, je lui applique la fonction "nl2br"
Donc comment dois je faire pour réussir à faire fonctionner ce JS ?
//Le script
<script language="Javascript1.2">
var marqueecontents='<?php include('affnew.php'); ?>';
if (document.all){
document.write('<marquee direction="up" scrollAmount=3 style="width:267px;height:460px;border:1px black solid">'+marqueecontents+'</marquee>');
}
function regenerate(){
window.location.reload();
}
function regenerate2(){
if (document.layers){
setTimeout("window.onresize=regenerate",450);
intializemarquee();
}
}
function intializemarquee(){
document.cmarquee01.document.cmarquee02.document.write(marqueecontents);
document.cmarquee01.document.cmarquee02.document.close();
thelength=document.cmarquee01.document.cmarquee02.document.height;
scrollit();
}
function scrollit(){
if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
document.cmarquee01.document.cmarquee02.top-=speed;
setTimeout("scrollit()",100);
}
else{
document.cmarquee01.document.cmarquee02.top=marqueeheight;
scrollit();
}
}
window.onload=regenerate2;
</script>
-------------------------------------------
//page qui fait afficher
<?php
$query1="SELECT * FROM news WHERE idnews=22";
$reponse1=mysql_query($query1) or die ("La requête "$query1"n'a pas pu s'exécutée");
echo('');
while($donnees1=mysql_fetch_assoc($reponse1)){
echo('----
');
echo(''.$donnees1['titre'].'
'.$donnees1['previsu'].', ');
echo('');
}
echo('
');
?>
Xmemy
Messages postés5Date d'inscriptionmercredi 13 février 2008StatutMembreDernière intervention14 mars 2008 14 févr. 2008 à 11:47
à force de faire des recherches, j'ai réussi à cerner le problème. le problème ne vient pas du tout du code en lui même mais bien du résultat de la $query.
Il faut donc que j'arrive à formater la chaine de caractères pour quelle réponde à la syntaxe du javascript.
Pour le moment j'essaye ceci mais sans grand résultat je dois dire.
$cutted=substr($_POST['contenunew'], 0, 115);
$addpoint=$cutted."..";
$addbr=nl2br($addpoint);
$format=ereg_replace('
', '\n', $addbr);
$previsu=addslashes($format);
tout ce qui est au dessus du ereg_replace fonctionnent correctement, j'ai l'impression que c'est le addslashes qui ne fait pas correctement son travail, en effet quand je regarde dans ma base de données je peux voir que les ' et " ne sont pas échappé.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 14 févr. 2008 à 14:44
Bonjour,
>>j'ai l'impression que c'est le addslashes qui ne fait pas correctement son travail
tu dois n'avoir aucun doute la dessus : addslashes fonctionne sans aucun bug.
<hr /> Cordialement Bul «mon Site» «M'écrire»
Xmemy
Messages postés5Date d'inscriptionmercredi 13 février 2008StatutMembreDernière intervention14 mars 2008 14 févr. 2008 à 15:45
Bonjour,
Elle marche correctement jusqu'au moment ou je veux insérer la chaine de caractère dans ma base données. A ce moment là, quand je regarde dans ma base de données il n'y a plus aucun slash...
$titre=htmlentities($_POST['titrenew'], ENT_QUOTES);
//LA PREVISUALISATION
$cutted=substr($_POST['contenunew'], 0, 115);
$addpoint=$cutted."..";
$addbr=nl2br($addpoint);
$format=ereg_replace('
', '\n', $addbr);
$previsu=addslashes($format);
//LE CONTENU
$contenu=nl2br($_POST['contenunew']);
$contenu2=addslashes($contenu);
$query8="INSERT INTO news(titre, contenu, previsu) VALUE('".$titre."', '".$contenu2."', '".$previsu."')";
$reponse8=mysql_query($query8) or die ("La requête "$query8" n'a pas pu s'exécutée");
Je ne vois pas du tout pourquoi je n'ai plus de slash dans ma chaine :S