Autor | Zpráva | ||
---|---|---|---|
Truuhlik Profil |
#1 · Zasláno: 18. 3. 2009, 07:14:25 · Upravil/a: Truuhlik
Mám jednoduchý skript, který mi odeslaná data s formuláře zapisuje do jednoho souboru.
Problém je v tom, že se to zapisuje pod sebe, takže nejnovjější text je poslední a já potřebuju aby byl vždy nahoře jako první. Může mi někdo poradit jak na to? (nepoužívám databázi) Toto je ten skript: <?php $adresa = $_POST['adresa']; $titulek = $_POST['titulek']; $datum = date(dmY); $clanek = $_POST['clanek']; $autor = $_POST['autor']; $kontrola = $_POST['kontrola']; if ($adresa!="" and $titulek!="" and $clanek!="" and $autor!="" and $kontrola=="10"){ echo "<h3>Odesláno</h3>"; if (isset ($adresa) && isset($titulek) && isset($datum) && isset($clanek) && isset($autor)){ $fp = fopen("file.html", "a"); fwrite($fp, "<a href='file.html' title='$datum'>".$titulek."</a><br>".$clanek); fclose($fp); } } else { echo "<h3>Neodesláno</h3>"; } ?> |
||
srigi Profil |
#2 · Zasláno: 18. 3. 2009, 07:24:24 · Upravil/a: srigi
V tvojom pripade sa zda jedinou moznostou nacitat cely subor do premennej, premennu zretazit so vstupnym textom a vysledny string zapisat do noveho suboru.
BTW ten skript je sialene nezabezpeceny, uvazoval si co sa stane, ked do pola $_POST['clanek'] zapise navstevnik PHP kod? |
||
Truuhlik Profil |
#3 · Zasláno: 18. 3. 2009, 07:28:30
„V tvojom pripade sa zda jedinou moznostou nacitat cely subor do premennej, premennu zretazit so vstupnym textom a vysledny string zapisat do noveho suboru.“
„BTW ten skript je sialene nezabezpeceny, uvazoval si co sa stane, ked do pola $_POST['clanek'] zapise navstevnik PHP kod?“ Ano s tím $_POST['clanek'] tam o tom vím, to ještě musím nějak ošéfovat. Spíš jsem se tě chtěl zeptat - nenapsal bys mi jednoduchou kostru jak to udělat s tím seřazením? Já už si s tím nevím rady. |
||
Truuhlik Profil |
#4 · Zasláno: 18. 3. 2009, 14:58:13
Fakt byste mi někdo nemohl napsat nějaký jednoduchý kód? Já si s tím nevím rady.
|
||
tragi Profil * |
#5 · Zasláno: 18. 3. 2009, 15:13:18
zkus pred fwrite soupnout prikaz rewind($fp);
|
||
keeehi Profil |
#6 · Zasláno: 18. 3. 2009, 15:16:03
fopen("file.html", "r+");99%
|
||
Truuhlik Profil |
#7 · Zasláno: 18. 3. 2009, 15:43:51
tragi a keeehi děkuju za snahu. Takže zkusil jsem šoupnout ten příkaz rewind($fp); před to fwrite, ale pořád mi to zapisuje nejnovější pod předchozí.
A ta druhá možnost fopen("file.html", "r+"); to mi vyhovuje, ale problém je v tom, že to vymaže to předchozí a zůstane tam zase jenom to nové. Jsem v koncích. |
||
keeehi Profil |
#8 · Zasláno: 18. 3. 2009, 15:51:00
tak se zkus podívat sem, jestli by ti něco nějak pomohlo.
nebo: $filename = "file.html"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fwrite($handle, $contents."<a href='file.html' title='$datum'>".$titulek."</a><br>".$clanek); fclose($handle); |
||
Truuhlik Profil |
#9 · Zasláno: 18. 3. 2009, 18:51:06
„tak se zkus podívat sem, jestli by ti něco nějak pomohlo.“
„nebo:“ „12345 $filename = "file.html";$handle = fopen($filename, "r");$contents = fread($handle, filesize($filename));fwrite($handle, $contents."<a href='file.html' title='$datum'>".$titulek."</a><br>".$clanek);fclose($handle);“ takže jsem to vyzkoušel - ono se tam ani nic nezapsalo - tak jsem zkusil dát r+ - pak už se to zapsalo ale nějak divně mi to vždycky jedenkrát zkopírovalo předchozí text |
||
keeehi Profil |
#10 · Zasláno: 18. 3. 2009, 19:22:06
Truuhlik
Tady je řešení. I když je dost nešťastné, funguje. $filename = "file.html"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); $handle = fopen($filename, "w+"); fwrite($handle, $contents."<a href='file.html' title='$datum'>".$titulek."</a><br>".$clanek); fclose($handle); |
||
Truuhlik Profil |
#11 · Zasláno: 18. 3. 2009, 20:59:06
keeehi moc díky z kód, zapisovat to zapisuje tak jak má, jenom se mi pořád nechce zapisovat nejnovější text jako první - pořád jde ten nejnovější text dolů - čili první text je nejstarší a poslední je nejnovější
|
||
keeehi Profil |
#12 · Zasláno: 18. 3. 2009, 21:54:34 · Upravil/a: keeehi
sry oprav 6. řádek na toto
fwrite($handle, "<a href='file.html' title='$datum'>".$titulek."</a><br>".$clanek.$contents); pak už to bude fungovat ;) |
||
Truuhlik Profil |
#13 · Zasláno: 18. 3. 2009, 22:06:39
„sry oprav 6. řádek na toto“
„1 fwrite($handle, "<a href='file.html' title='$datum'>".$titulek."</a><br>".$clanek.$contents);“ „pak už to bude fungovat ;)“ děkuju, děkuju, děkuju - už to fajčí jako o život - ještě jednou díky |
||
Časová prodleva: 17 let
|
0