Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Formularz + zapis do pliku - pomoc
Moraw09
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.06.2009

Ostrzeżenie: (0%)
-----


Witam,
Na wstępie dodam że raczkuje w PHP, na stronie korzystam z takiego oto skryptu obsługującego formularz:
(przesyłam dane z formularza, zapisując w pliku .txt.)

Wrzucam tylko fragmenty kodu PHP, aby nie zaśmiecać.
Mój problem polega na tym że, pomimo iż wszystko dobrze działa, są czasem przypadki kiedy ktoś zbyt szybko kliknie "dodaj".
Puste pola formularza próbują zostać zapisane do pliku i czasem się wtedy wszystko chrzani...

Czy ktoś może mi pomóc, i pokazać jak napisać fragment kodu umieszczonego tuż przed zapisałem do pliku, który w momencie kiedy zapisywane pola tekstowe (zmienne $tresc, $autor.. itp) mają np. mniej niż 3 znaki odrzuca je, nie zapisuje,i przekierowuje do innej strony?

Z góry dziękuję, będe bardzo wdzięczny. Próbowałem sam na kilka sposobów, ale nic nie działa.

przykładowy formularz:

  1. <form action="" method="POST">
  2. <b>Data i godzina:</b>
  3. <br>
  4. <textarea name="autor" rows="1" cols="46"></textarea><br>
  5. <b>Miejsce:</b>
  6. <br>
  7. <textarea name="tresc" rows="4" cols="46">'.$tresc.'</textarea><br />
  8. <b>Autor:</b>
  9. <br>
  10. <textarea name="wykonawca" rows="1" cols="30">'.$wykonawca.'</textarea>
  11. <br />
  12. </br>
  13. <input type="submit" value="Dodaj" /></form>
  14. </td>
  15. </tr>



Kod obsługujący formularz:

  1. <?php
  2. $file=fopen($nazwa,'a+');
  3. $plik=file($nazwa);
  4.  
  5. if(isset($_GET['delid']))
  6. {$f = fopen($nazwa, "w");
  7.  for($i=0;$i<count($plik);++$i)
  8.  {
  9.    if($plik[$i][0]==$_GET['delid'])
  10.    {
  11.      $ok=1;
  12.    }
  13.    else
  14.    {
  15.      if($ok==1){$plik[$i][0]=$plik[$i][0]-1;}
  16.      fputs($f, $plik[$i]);
  17.    }
  18.  }
  19. fclose($f);
  20. header('location: '.$adres);
  21. }
  22.  
  23.  
  24.     $data=date('d.m.Y H:i:s');
  25.     $autor=strip_tags($_POST['autor']);
  26.     $tresc=strip_tags($_POST['tresc']);
  27.     $wykonawca=strip_tags($_POST['wykonawca']);
  28.  
  29.    
  30.     $tresc=str_replace(array('*|*',"\n"),array('**',''),$tresc);
  31.    
  32.    
  33.    $lp=count($plik);
  34.          flock($file,2);
  35.        fputs($file,$lp.'*|*'.$autor.'*|*'.$data.'*|*'.$tresc.'*|*'.$_SERVER['REMOTE_ADDR'].'*|*'.$wykonawca."r\n");
  36.          flock($file,3);
  37.          setcookie($_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_URL'],"anty",time()+$anty_flood);
  38.          header('location: '.$adres);
  39.          exit;      
  40.  
  41.  
  42. for($i=0;$i<count($plik);++$i) {
  43.  
  44. $komorka=explode('*|*',$plik[$i]);
  45.  
  46.  
  47. if(isset($_SESSION['login'])){$admin=' - Wysłano z IP: '.$komorka[4].' (<a href="?delid='.$komorka[0].'">Usuń</a> '.$IP.')';}else{$admin="";}
  48.  
  49. echo '<DIV CLASS="l"><p class="autor"> - dodano: <i>'.$komorka[2].'</i> '.$admin.'</p><p class="news">temat:  <b>'.$komorka[1].'</b><br>'.$komorka[3].'</p><p class="wykonawca">autor:  '.$komorka[5].'</p></DIV><HR>';
  50.  
  51. }
  52.  
  53. fclose($file);
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


strlen" title="Zobacz w manualu PHP" target="_manual

ew. dla czegoś bardziej skompilowanego użyj wyrażeń regularnych i preg_match" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
Moraw09
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.06.2009

Ostrzeżenie: (0%)
-----


hm.. właśnie tak chciałem zrobić, ale jakkolwiek bym to pisał, nie działało.. mógłbym prosić o napisanie tej pętli warunkowej dokładnie tak jak powinna wyglądać?
z góry dzięki.
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Tutaj nikt nie daje gotowców. Pokaż swój kod po przeróbkach i zobaczymy co da się zrobić w tej sprawie.
Go to the top of the page
+Quote Post
Moraw09
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.06.2009

Ostrzeżenie: (0%)
-----


ok, czy coś w tym stylu ma sens?
(dla pola treść)
  1. <?php
  2. $data=date('d.m.Y H:i:s');
  3.    $autor=strip_tags($_POST['autor']);
  4.    $tresc=strip_tags($_POST['tresc']);
  5.    $wykonawca=strip_tags($_POST['wykonawca']);
  6.  
  7.    $lwykonawca= strlen($wykonawca);
  8.    $lautor= strlen($autor);
  9.    $ltresc= strlen($tresc);
  10.  
  11. if($ltresc < 3 )
  12.   {
  13.    header('Location: www.innastrona.pl');
  14.   }
  15.   else
  16.   {
  17.   $tresc=str_replace(array('*|*',"\n"),array('**',''),$tresc);
  18.      
  19.   $lp=count($plik);
  20.         flock($file,2);
  21.         fputs($file,$lp.'*|*'.$autor.'*|*'.$data.'*|*'.$tresc.'*|*'.$_SERVER['REMOTE_ADDR'].'*|*'.$wykonawca."r\n");
  22.         flock($file,3);
  23.         setcookie($_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_URL'],"anty",time()+$anty_flood);
  24.         header('location: '.$adres);
  25.         exit;      
  26.    }
  27. ?>


Ten post edytował Moraw09 9.06.2009, 15:58:47
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Jak najbardziej. (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 16:19