![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
Tak jak w temacie mam dwa pliki jeden zapisuje drugi wyswietla. Chcialem zrobic tak zeby formularz byl u gory a pod spodem wpisy ale niestety dla mmnie poczatkujacego przeroslo na razie moje sily (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Do zapisu Kod <? $pole1 = $_POST['pole1']; $pole2 = $_POST['pole2']; $pole3 = $_POST['pole3']; if(empty($pole1) and empty($pole2) and empty($pole3) ) { echo "<table class=pol border=0><tr><td>"."<div class=form>".'<form action="" method="post"><br/><br/> <b>Temat</b><br/> <input type="text" name="pole1" style="width: 400px;" /><br/><br/> <b>Komentarz</b><br/> <textarea name="pole2" style="width: 400px; height: 300px;"> </textarea> <br/> <b>Nick</b><br/> <input type="text" name="pole3" style="width: 400px;" /> <input type="submit" value="Zapisz" /> </form>'."</div>"."</td><tr></table>"; } else { $pole2 = str_replace("\n","",$pole2); $pole2 = str_replace("\n","<br>",$pole2); $dane = $pole1."`".$pole2."`".$pole3."\n"; $file = "baza.txt"; $fp = fopen($file, "a"); flock($fp, 2); fwrite($fp, $dane); flock($fp, 3); fclose($fp); echo "Dane zostały zapisane!"; echo "<a href=\"form2.php\">Zobacz wpisane dane</a>"; echo "<a href=\"test5.php\">Wróc</a>"; } ?> Do wyswitlania Kod <?php $file = file("baza.txt"); $file_rev = array_reverse($file); foreach($file_rev as $value) { $exp = explode("`",$value); echo "<table class=pol border=0 width=400px><tr><td class=wyr><b>".$exp[0]."</b>".nl2br(htmlspecialchars(trim($exp[1])))."".$exp[2]."".$exp[3]."</td></tr></table><hr />"; } echo "<a href=\"test5.php\">Wroc do pisania</a>"; ?> Probowalem przez include, laczyc to jakos ale nie dawalo rady :/ Nawet jak sie pokazywal formularz i wpisy razem to wpisy byly w odwroconej kolejosci a po dodaniu wpisu ladowalo sama strone zapisz.php bez fomularza tylko wpisy :/ Ten post edytował ryba303 25.11.2007, 16:42:38 |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
pisane z palca |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
Wyskakuje błąd przy zapisie a dokladnie przy file_put_contents wyskakuje
Kod [b]Fatal error[/b]: Call to undefined function: file_put_contents() in [b]/home/...../test13.php[/b] on line [b]119 [/b] (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Ten post edytował ryba303 25.11.2007, 20:20:22 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
zaktualizuj sobie wersje php
alternatywa: (podstaw pod if(file_put...) { ... }else{ ... }
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
Cytat zaktualizuj sobie wersje php po krotkiej rozmowie z adminem wlaczyli mi php5 wrzucilem to co podales za pierwszym razem ale cos nie działa znaczy zapisalo pierwszy wpis ale dopiero jak odswiezylem strone to sie pokazal niestety nastepne juz sie nie pokazuja :/ Ten post edytował ryba303 26.11.2007, 16:51:49 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
Cytat ale dopiero jak odswiezylem strone bo wcześniej nie masz jeszcze wpisu w pliku Cytat niestety nastepne juz sie nie pokazuja :/ dopisz ."\n" przy $pole3 |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
Obicuje ost pytanie (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) przynajmniej przez jakis czas bo nurtuje mnie jeszcze jedno ale to juz naprawde tylo kosmetyka poki co dodalem sobie jeszcze mala ochrone przed zbyt dlugimi wpisami, nie moc korzystanie ze znacznikow html i pokazanie daty i godziny wpisu taka mała kosmetyka ale to odsiwiezenie strony zeby zobaczyc dany wpis... ; (
Probowalem funkcja header ale ona dziala tylko na poczatku strony i tu kaplica :/ Chcialem zrobic tak ze gdy doda sie wpis przezuci na stonke www.jakasstona.pl/test.pl?action=zapisz poznieji spowrotem na www.jakasstona.pl/test.pl poszukam jeszcze u wujasa (google (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
Przed foreach daj
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
Dziala tylko teraz przestaly dzialac zabezpieczenia moje jak Twoje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale z tym moze sobie juz sam dam rade poki co dziekuje jak cos to na pewno sie odezwe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Probowalem ale jak dzialalo jedno to nie dzialo drugie jak dzialalo jedno to wykakiwal komunikat ze np przekroczono ilosc znakow ale bez wpisow i trzeba bylo juz odswiezac zeby sie pojawily i tu w sumie bylem w punkcie wyjscia natomiast z pustymi polami do wypelnienia tworzylo mi pusty wpis (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) no poprostu zwariowac idzie a ze wstalem dzis o 5 rano do pracy i ze moje umiejetnosci sa jeszcze jakie sa to znow musze napisac posta. Teraz wkleje caly kod strony z dodanym tylko tym fragmetnem zeby wysiwtlalo wpisy zaraz po wyslaniu komentarza. Kod <html>
<head> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <table class=pol border=0> <tr> <td> <div class="form"> <form action="?action=zapisz" method="post"> <br /><br /> <b>Temat</b> <br /> <input type="text" name="pole1" style="width: 400px;" /> <br /><br /> <b>Komentarz</b> <br /> <textarea name="pole2" style="width: 400px; height: 300px;"></textarea> <br /> <b>Nick</b> <br /> <input type="text" name="pole3" style="width: 400px;" /> <input type="submit" value="Zapisz" /> </form> </div> </td> <tr> </table> <? $pole1 = $_POST['pole1']; $pole2 = $_POST['pole2']; $pole3 = $_POST['pole3']; $act = $_GET['action']; $filename = 'baza.txt'; $file = file($filename); $cnt = count($file); //wyświetlanie $file_rev = array_reverse($file); if(!empty($pole1) or !empty($pole2) or !empty($pole3)) { $data = date("H:i:s d-m-Y"); echo ' <table class="pol" border="0" width="400px"> <tr> <td class="wyr"> <b>Temat:</b> ' .$pole1.' <br /> <b>Nick:</b> ' .$pole3.' <br /> <b>Komentarz:</b><br /><br /> ' .$pole2.' <br /><br /> <b>Wpis został dodany </b> ' .$data.' </td> </tr> </table> <hr />'; } foreach($file_rev as $linia) { $data = date("H:i:s d-m-Y"); $dana = explode("`", $linia); echo ' <table class="pol" border="0" width="400px"> <tr> <td class="wyr"> <b>Temat:</b> ' .$dana[0].' <br /> <b>Nick:</b> ' .$dana[2].' <br /> <b>Komentarz:</b><br /><br /> ' .$dana[1].' <br /><br /> <b>Wpis został dodany </b> ' .$dana[3].' </td> </tr> </table> <hr />'; } //zapis if($act == 'zapisz') { if(empty($pole1) or empty($pole2) or empty($pole3) ) { echo 'Nie uzupełniłeś wszystkich pól'; } else { $zm1=strlen($pole1); $zm2=strlen($pole2); $zm3=strlen($pole3); // echo ("$zm1"."$zm2"."$zm3"); if ($zm1 > 5){ $zm1_1=$zm1-5; die ("Wpis w polu1 został przekroczony o $zm1_1 znaków prosze go skrócić"); } if ($zm2 > 5){ $zm2_1=$zm2-5; die ("Wpis w polu2 został przekroczony o $zm2_1 znaków prosze go skrócić"); //exit; } if ($zm3 > 5){ $zm3_1=$zm3-5; die ("Wpis w polu3 został przekroczony o $zm3_1 znaków prosze go skrócić"); } $data = date("H:i:s d-m-Y"); $pole2 = str_replace("\n","<br />",$pole2); $file[($cnt+1)] = $pole1."`".$pole2."`".$pole3."`".$data."\n"; if(file_put_contents($filename, $file)) { echo 'Dane zostały zapisane'; } else { echo 'Wystąpił błąd podczas zapisu do pliku'; } } } $data = date("H:i:s d-m-Y"); echo ("Aktualnie jest $data"); ?> </body> </html> Ten post edytował ryba303 26.11.2007, 20:49:12 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
spróbuj tak |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
W koncu sie udalo (IMG:http://forum.php.pl/style_emoticons/default/yahoo.gif) a teraz ide spac ale spokojnie jeszcze tu wroce
========================================================================== No i wracam (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif) Dopiero teraz to zauwazylem. zapisuje komentarz ze strony np. www.jakastamstrona.pl/kom.php wpis sie dodaje i przezuca mnie do www.jakastamstrona.pl/kom.php?action=zapisz po czym jesli na przyklad chce odswiezyc wyskakuje komunikat Otwierana strona zawiera dane POSTDATA.Jesli dane zostana przeslane ponownie wszytkie zadania zostana wykonane od nowa... gdy wciskam ok oczywiscie dodaje mi ten sam wpis (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) a i jeszcze godzina w poscie przed zmienia sie na godzine dodania tego nowego, oczywiscie na www.jakastamstrona.pl/kom.php wszytko jest ok tak samo z dodaniem nowego wpisu na www.jakastamstrona.pl/kom.php?action=zapisz Da sie z tym cos zrobic czy niestety musze liczyc na to ze ludzie bede klikac anuluj (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował ryba303 28.11.2007, 22:28:42 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
ja to rozwiązuje stosując sesje
przy dodaniu wpisu ustawiam nową sesje np. $_SESSION['review'] = 1; przed zapisem sprawdzam czy taka sesja istnieje jeśli tak to wpis nie zostanie dodany. w innej części strony musisz także umieścić kod który usunie Ci tą sesje (jeśli np ktoś będzie chciał dodać jeszcze jeden INNY wpis) czyli np przy formularzu wstawiasz unset($_SESSION['review']); |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
No to cos pokrecielem gdy dodam wpis na www.jakastamstrona.pl/kom.pl?action=zapisz pokazuje mi teraz dwa takie same wpisy jak wroce na www.jakastamstrona.pl/kom.php juz pokazuje jeden a gdy dodaje nowego wpisa to pokazuje oczywsicie dwa ale tamte eczesniejsze juz widac pojedynczo (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Co do sesji Kod $_SESSION['review'] = 1; if ($_SESSION['review'] = 1;){ exit} to wstawiłem Kod . . . if(file_put_contents($filename, $file)) . . . a Kod <? unset($_SESSION['review']); ?> no i cos sie pokrecilo a ze do sesji jeszcze nie doszedlem wiec moglem cos hmmm pomylic na samej gorze przed promularzem unset Ten post edytował ryba303 28.11.2007, 23:33:44 |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
Kod if ($_SESSION['review'] = 1;){ raz ze nie porównujesz (==) a przypisujesz 1 do sesji dwa co robi tam średnik? Miałem czas wiec proszę:
Ten post edytował b_chmura 29.11.2007, 00:04:58 |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
Czyli wniosek z tego taki, że jeżeli chce miec zabezpieczenie przed POSTDATA muszę juz oddzielnie wejść na stronkę zeby zobaczyc wpsiy w tym przypadku na www....action=view dopiero wtedy wyświetlają jeśli znów dodam wpis i jestem na www....action=zapisz to przy odświeżeniu wyskoczy komunikat o próbie dodaniu tego samego wpisu ale to samo jest gdy z tamtej pozycji chce sie dopisac nowy wpis. Hmmm muszę sie wysapać i wybrać czy wpisy maja sie pojawiać od razu czy zabezpieczenie przed POSTDATA
|
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
teraz jeśli wyskoczy Ci okienko z postadatą i dasz ok to wpis sie nie doda (wyskoczy komunikat o próbie wpisaniu takiego samego newsa)
a tak poza tym: Temat: odswiezanie strony zapis bardzo ciekawa lektóra |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%)
|
Ile osob tyle rozwiazan, ale mam jeszcze jedno pytanie teraz jest tak ze po zapisaniu przezuca mnie najpierw www....action=zapisz i tu w razie odswiezenia wykoczy komunikat dopiero po kliknieciu w linka przezuca do www....action=zview i moje pytanie czy nie da sie tak zrobic zeby pomijac to www....action=zapisz i odrazu przezucalo do www....action=zview gdzie odswiezac mozna juz do woli. Wiem ze jest funckcja header (location: index.php) ale ja trzeba na poczatek bo wywala blad przynajmniej tak mi robilo. Tam w tych postach bylo jakies rozwiazanie z header, przestuduiuje je dokladniej.
|
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 813 Pomógł: 34 Dołączył: 18.03.2007 Skąd: o stamtąd Ostrzeżenie: (0%)
|
|
|
|
|
![]() ![]() |
|
Aktualny czas: 5.01.2026 - 06:21 |