Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: jmv7 le le 10-06-2007 a 18:06:10

Titre: Néophyte : Problème php et mise à jour en ligne
Posté par: jmv7 le le 10-06-2007 a 18:06:10

Bonjour,

Je suis en train de réaliser un site en flash avec des pages php que j'appelle pour mettre à jour en ligne des textes.txt (externes); ça fonctionne en partie seulement.
Les 3 pages que j'appelle sont: Accueil/news-Présentation-La Caserne.
Lorsque dans ma page php "Accueil/news" je mets mon texte complet précédé de "&mytext=" et que j'envoie, la mise à jour en ligne se fait bien dans Accueil/News sur le site, mais lorsque je reviens dans ma page php correspondante, le "&mytext=" a disparu ainsi que la quasi totalité du texte.
Le texte doit être trop long, car celà n'arrive pas dans les 2 autres pages qui ont un texte plus court.
Y a t-il une solution?
Important: les pages php m'ont été fournies par une personne, car je n'y connais rien ou presque. Je lui ai soumis ce problème, mais elle ne voit pas...
Pour mieux vous rendre compte: http://creationsitenet.com.free.fr, cliquez administrateur en bas à droite, puis entrez mot de passe: toto.

Le code de ma page ci-dessous :


Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Page de mise a jour</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
</script>
<style type="text/css">
<!--
.Style5 {color: #FF0000}
.Style6 {color: #FFFFFF}
.Style8 {color: #FFFFFF; font-weight: bold; }
-->
</style>
</head>

<body bgcolor="#000000">

<div align=center>

<?PHP

if (get_magic_quotes_gpc()) {
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
}

$yourFile = "news.txt";
if(!$_POST['submit']) {
$fs = fopen($yourFile, "r");
while(!feof($fs)) {
$fileData = fread($fs, 2024);
}
}else{
$fs = fopen($yourFile, "w");
fwrite($fs, $_POST['fileData']);
}
fclose($fs);
?>

<form method="POST">

<table border=0 cellspacing=10 cellpadding=0 width="700">
<tr>
<td width="100
" rowspan=2 align=center bgcolor="#000000" style='border:solid red 1.5pt'>
<p><img src="casque.jpg" width="145" height="103"></p> </td>
<td width="600" bgcolor="#FF0000" valign=bottom style='border:solid red 1.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class="Style6"><font face="Arial" size="4"><b>Mise &agrave; jour &quot;NEWS&quot; </b></font></p> </td>
</tr>
<tr>
<td width="521" style='border:solid red 1.5pt;padding:5.5pt 5.4pt 5.4pt 5.4pt'>
<p><strong><font face="Arial" color="#FFFFFF" size="2">Pour que cela fonctionne:
</font></strong><font face="Arial" size="2"><span class="Style5"><span class="Style8">1-</span></span></font><strong><font face="Arial" size="2"><span class="Style5"> Ne pas toucher &agrave; </span></font> <span class="Style5"><font face="Arial" size="2"><span class="Style6">&quot;&amp;mytext=&quot; 2-</span> allez &agrave; <span class="Style6">affichage/codage ou encodage et </span>Cliquez <span class="Style6">&quot;Unicode (UTF- 8)&quot; 3- <span class="Style5">&eacute;crivez votre texte et envoyez. </span></span></font></span><font face="Arial" color="#FFFFFF" size="2"><br>
Pour voir le r&eacute;sultat, fermez cette page et relancez votre site.</font></strong></p>
</td>
</tr>
<tr>
<td align=center colspan=2 bgcolor="#FF0000" style='border:solid red 1.5pt'>
<p align=center><font face="Arial" color="#FFFFFF" size="2"><b>Le contenu de News </b><strong>:</strong></font><br>
<textarea name="fileData" rows=20 cols=94><?PHP print $fileData; ?></textarea>
</p></td>
</tr>
<tr bgcolor="#000000">
<td width="100" bgcolor="#FF0000">
<div align="left">
<input type="submit" value="ENVOYEZ votre texte" name="submit">
</div>
<td width="521" align=center bgcolor="#FF0000" style='border:solid red 1.5pt'>
<p align="right">
<input name="button1" type="button" onClick="javascript:window.location='update.php?';"value="Accueil / News">
<input name="button2" type="button" onClick="javascript:window.location='update1.php?';"value=" Historique ">
<input name="button3" type="button" onClick="javascript:window.location='update2.php?';"value=" Présentation ">
<input name="button4" type="button" onClick="javascript:window.location='update3.php?';"value=" La Caserne ">
</p> </td>
</tr>
</table>
</form>

</form>

</div>

</body>

</html>


Comme c'est compliqué pour moi, j'espère avoir été assez clair.
Merci pour ceux qui voudront bien m'épauler.

jmv7

Titre: Re:Néophyte : Problème php et mise à jour en ligne
Posté par: ToToMaStEr le le 11-06-2007 a 20:52:08

Si j'ai bien compris ton pb,
Quand tu reviens en mode admin tu perd le début de texte:

1) Si tu les perds aussi en visu public vois pour un pb de longueur fichier .txt.

2) Si tu les perds que en admin à ce moment essaye de comparer tes ouvertures de .Txt je sais que suivant le signe que tu met devant ta lettre d'ouverture .Txt en php le mode d'ouverture est differant!

ToTo

Titre: Re:Néophyte : Problème php et mise à jour en ligne
Posté par: jmv7 le le 11-06-2007 a 23:30:07

Bonsoir,

Je perds le "mytext=" et une bonne partie du texte qu'en admin et pas sur le site.

Maintenant, comme je l'ai précisé je suis néophyte et je ne sais que faire...

Cordialement,

jmv7

Titre: Re:Néophyte : Problème php et mise à jour en ligne
Posté par: ToToMaStEr le le 12-06-2007 a 08:49:06

Salut,

Ok, et bien essaye de comparer tes codes d'ouverture en admin et en public.

Sinon regarde si sur la fonction Fopen il n'y a pas de limitation suivant la lettre associée.

ToTo

Titre: Re:Néophyte : Problème php et mise à jour en ligne
Posté par: jmv7 le le 12-06-2007 a 10:44:31

Bonjour,

Merci déjà de te pencher sur mon problème.
Peut-être en effet que le hic provient de la lettre de fopen, mais je n'en sais rien. D'après toi pourquoi il y a un fopen avec un "r" et un autre avec un "w" ?

Merci encore

jmv7


Code:
$yourFile = "news.txt";
if(!$_POST['submit']) {
$fs = fopen($yourFile, "r");
while(!feof($fs)) {
$fileData = fread($fs, 1024);
}
}else{
$fs = fopen($yourFile, "w");
fwrite($fs, $_POST['fileData']);
}
fclose($fs);

Titre: Re:Néophyte : Problème php et mise à jour en ligne
Posté par: ToToMaStEr le le 12-06-2007 a 12:00:03

Le "r" ouvre le fichier en lecture seulement(lecture seule), le "w" ouvre le fichier en écriture et détruit ce qu'il contient.

Essaye d'augmenter le "1024", je ne connait pas bien le travail sur fichier mais c'est peut etre une limitation de char, dans ce cas là remplace le par 1000 par exemple:


Code:
$fileData = fread($fs, 10000);


ToTo

Titre: Re:Néophyte : Problème php et mise à jour en ligne
Posté par: jmv7 le le 12-06-2007 a 12:55:15

Re,

BRAVO !!! et Merci mille fois !

J'ai remplacé 1024 par 10000, et ça marche !

:DCordialement,

jmv7

Titre: Re:Néophyte : Problème php et mise à jour en ligne
Posté par: ToToMaStEr le le 12-06-2007 a 13:51:55

O plaisir de pouvoir aider ;D

ToTo


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.