Pomoc s php scriptem – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s php scriptem – PHP – Fórum – Programujte.comPomoc s php scriptem – PHP – Fórum – Programujte.com

 

21. 8. 2008   #1
-
0
-

Dělám jakousi diskuzi, která sice funguje, ale potřebuju aby se příspěvky ukládaly v obráceném pořadí.Ted když napíšu příspěvek tak se uloží jako poslední(dolu).Já se to pokouším udělat obráceně, tak že se příspěvek uloží na první místo(nahoře).
Jedná se o dost jednoduchou diskuzi bude to chtít jen menší úpravu ale já nejsem v php moc zkušenej.
Tohle je zkrácená verze kodu která se stará o zápis a zobrazení.

<?

$jmeno = $_POST['jmeno'];
$zprava = $_POST['zprava'];

if ($zprava!="" and $jmeno!=""){
$celek="<p>Zpráva byla zaslána<strong>$jmeno</strong></p><p>$zprava</p><hr>";
$soubor = fopen ('data-2.inc','a');
fwrite ($soubor, $celek);
fclose ($soubor);
}
?>

<? include "data-2.inc"; ?>

<form action="diskuse-2.php" method="post"></p>
<table>
<tr><th>*Jméno: </th><td><input type="text" name="jmeno" maxlength="25"></td></tr>
<tr><th>*Zpráva: </th><td><textarea cols="60" rows="5" name="zprava"></textarea></td></tr>
<tr><th></th><td><input type="submit" value="odeslat"></td></tr>
</table>
</form>

Příspěvky se ukládají do externího souboru data-2.inc. Napište jestli máte nějakou radu nebo víte jak to předělat.

Nahlásit jako SPAM
IP: 85.13.98.–
21. 8. 2008   #2
-
0
-

Precti si neco o rezimech otevirani souboru, snad ti to dojde.

http://cz.php.net/fopen

Nahlásit jako SPAM
IP: 78.102.164.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
21. 8. 2008   #3
-
0
-

Díky,ted jsem vyrešil jak to udelat, aby to psalo od začátku souboru.Problém je v tom že nová zpráva přepíše tu starou.
Pokusil jsem se to vyřešit tímto.Mělo by to načíst původní přízpěvky a spolu s novými je znova uložit.

<?php


$jmeno = $_POST['jmeno'];
$zprava = $_POST['zprava'];

if ($zprava!="" and $jmeno!=""){
$celek="<p><strong>$jmeno</strong></p><p>$zprava</p><hr>";
$soubor = fopen ('data-2.inc','r+');
$filename = "data-2.inc";
$old = fread($soubor, filesize($filename))
$souborcomp = "$celek."".$old";
fwrite ($soubor, $souborcomp);
fclose ($soubor);
}

Nemůžu se zbavit chyby na 11. řádku.Máte někdo jinej né moc složitej nápad jak to upravit a spravit tu chybu.

Nahlásit jako SPAM
IP: 85.13.98.–
Proxymus0
Stálý člen
21. 8. 2008   #4
-
0
-

Nemýlím-li se, tak se proměnné nepíšou do úvozovek...
tedy:



...
$souborcomp = $celek.$old;
...

Nahlásit jako SPAM
IP: 213.194.221.–
Santas0
Věrný člen
22. 8. 2008   #5
-
0
-

mne to pride ako ten podla mna divny sposob zapisu napr. echo "nieco a $premenna";

Nahlásit jako SPAM
IP: 195.91.55.–
http://psandtner.sk/blog
Prog.0
Věrný člen
22. 8. 2008   #6
-
0
-

Cele to 14- riadkové šialenstvo môžeš nahradiť týmto:

$subor = 'data-2.inc';
file_put_contents( $subor , $novy_prispevok . file_get_contants($subor) );

...ale ukladať príspevky do súboru je zlý spôsob.

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
22. 8. 2008   #7
-
0
-

Nejprve jsem opravil ty uvozovky=žádnej efekt.
Pak jsem se pokusil použít to co radil Prog.,a skončil jsem u tohodle "Call to undefined function: file_put_contents()...."

Nahlásit jako SPAM
IP: 88.146.176.–
Paja2
~ Moderátor
+2
Věrný člen
25. 8. 2008   #8
-
0
-

To jonmar679 :
tuším že funkce file_put_contents je dostupná až od php verze 5.

Nahlásit jako SPAM
IP: 217.112.165.–
25. 8. 2008   #9
-
0
-

To Paja2 : Aha,právě jsem zjistil že na serveru je PHP 4.3.4. Takže na file_put_contents atd. můžu zapomenout.

Nahlásit jako SPAM
IP: 85.13.98.–
shamania0
Duch
25. 8. 2008   #10
-
0
-

Ta chyba na jedenáctém řádku byla proto, že na desátém neni středník.
Jinak psaní proměných do uvozovek je normální věc jen už by se tam neměly používat ty tečky tedy:
$jedna = "$dva$tri"; je to samé jako $jedna = $dva.$tri;
Proč tedy použít uvozovky? Proto: $jedna = "druha promena: $dva a treti promena je: $tri";

Nahlásit jako SPAM
IP: 194.212.214.–
PHP,MySQL,JS,CSS,Flash (AS)
KIIV
~ Anonymní uživatel
8632 příspěvků
25. 8. 2008   #11
-
0
-

omfg kde furt berete ty includy? to je ta nejvetsi prasarna co muzete udelat !!!!

vite co se stane kdyz se posle ve formulari treba <?php cokoliv; ?> ???
a vy to pak includnete?

Nahlásit jako SPAM
IP: 77.237.136.–
KIIV
~ Anonymní uživatel
8632 příspěvků
25. 8. 2008   #12
-
0
-

nebo si prispevky ukladej do pole ... samo az po odstraneni vsech nebezpecnejch znaku...
neco jako
$prispevek[] = "$blabla";

a pole uz pozpatku vypsat snad zmaknes

Nahlásit jako SPAM
IP: 77.237.136.–
26. 8. 2008   #13
-
0
-

Tak ted to funguje ale né tak jak jsem čekal.Když napíšu zprávu 1 tak se mi zobrazí zpráva jedna.Ale když napíšu zprávu 2 tak se mi zobrazí zprávy 1, 2, 1. Když napíšu zprávu 3 tak se zobrazí 1, 2, 1, 3, 1, 2, 1.
Kod bez částí na odstranění nebezpečných znaků a formuláře na zadávání:

<?php

if ($zprava!="" and $jmeno!=""){ //provede se pokud není prázdná zpráva a jméno
$celek="<p><strong>$jmeno</strong></p><p>$zprava</p><hr>";
$soubor = fopen ('data-2.inc','r+'); //otevře soubor pro doplňování
$filename = "data-2.inc";
$old = fread($soubor, filesize($filename));
$souborcomp = "$celek$old";
fwrite ($soubor, $souborcomp); //zapíše zprávu
fclose ($soubor); //zavře soubor
}
?>

Nahlásit jako SPAM
IP: 85.13.98.–
KIIV
~ Anonymní uživatel
8632 příspěvků
26. 8. 2008   #14
-
0
-

To jonmar679 : mozna kdyby si otevrel soubor pro zapis a ne doplnovani pak by to fungovalo...

tj nejdriv ho otevres pomoci "r" nactes, zavres a pak o hotevres pomoci "w" tim se smaze puvodni obsah... a nepripojujes k nemu pak novej

Nahlásit jako SPAM
IP: 77.237.136.–
26. 8. 2008   #15
-
0
-

Konečně to funguje jak jsem chtěl.Děkuju všem co mi pomohli a poradili. :smile18:

Nahlásit jako SPAM
IP: 85.13.98.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý