Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzanie długości stringa podczas wysyłania formularza
Forum PHP.pl > Forum > Przedszkole
kaiba55
Witajcie. Otóż mam sobie formularz który wysyła tam jakieś dane.
Dane są odbierane i pokazywane.
Oto skrypt:
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="styl.css" />
  4. <title>Shoutbox</title>
  5. </head>
  6.  
  7. <form action="index.php" method="GET">
  8. <input type=text name="nick"/><br>
  9. <input type=text name="wpis"/><br>
  10. <input type=submit value="wyslij"/>
  11. </form>
  12. <?php
  13.  
  14. $imie=$_GET['nick'].'<br>';
  15. $wpis=$_GET['wpis'].'<br>';
  16. $data=date("H:i:s").'<br>' ;
  17.  
  18.  
  19. if(empty($_GET['nick'])||empty($_GET['wpis'])) //czy formularz nie jest pusty
  20. echo "uzupelnij caly formularz".'<br>';
  21. else
  22. {
  23.  
  24. $imie3=fopen("imie.txt", "a"); //zapisujemy do pliku
  25. fputs($imie3,$imie);
  26. fclose($imie3);
  27.  
  28. $wpis3=fopen("wpis.txt","a");
  29. fputs($wpis3,$wpis);
  30. fclose($wpis3);
  31.  
  32. $data3=fopen("data.txt", "a");
  33. fputs($data3, $data);
  34. fclose($data3);
  35. }
  36.  
  37. $plik1="imie.txt";
  38. $plik2="wpis.txt";
  39. $plik3="data.txt";
  40. if((filesize($plik1)==0)||(filesize($plik2)==0)) //pusty plik
  41. echo 'pliki są puste!- brak danych do wczytania';
  42. else
  43. {
  44. $imie2=fread(fopen("imie.txt", "r"), filesize("imie.txt")); //wczytujemy pliki
  45. $wpis2=fread(fopen("wpis.txt", "r"), filesize("wpis.txt"));
  46. $data2=fread(fopen("data.txt", "r"), filesize("data.txt"));
  47. }
  48. ?>
  49.  
  50.  
  51. <div id="nick">
  52. <?php
  53. echo "nick".'<br>';
  54. echo $imie2;
  55. ?>
  56.  
  57. </div>
  58.  
  59.  
  60. <div id="wpis">
  61. <?php
  62. echo "wpis".'<br>';
  63. echo $wpis2;
  64. ?>
  65. </div>
  66.  
  67.  
  68. <div id="data">
  69. <?php
  70. echo "data".'<br>';
  71. echo $data2;
  72. ?>
  73.  
  74. </div>


Jednak chciałbym żeby podczas wysyłania formularzu sprawdzało długość tego co wyślę i jesli długość będzie ponad jakąś liczbę- nie wysyłało danych. Próbowałem coś takiego dorzucić, ale nie do końca wiem jak to zrobić tak żeby działało:
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="styl.css" />
  4. <title>Shoutbox</title>
  5. </head>
  6.  
  7. <form action="index.php" method="GET">
  8. <input type=text name="nick"/><br>
  9. <input type=text name="wpis"/><br>
  10. <input type=submit value="wyslij"/>
  11. </form>
  12. <?php
  13.  
  14. $imie=$_GET['nick'].'<br>';
  15. $wpis=$_GET['wpis'].'<br>';
  16. $data=date("H:i:s").'<br>' ;
  17.  
  18. if((strlen($_GET['nick'])>10)||strlen($_GET['wpis']>10))
  19. echo 'za dlugi tekst w formularzu';
  20. else
  21. if(empty($_GET['nick'])||empty($_GET['wpis'])) //czy formularz nie jest pusty
  22. echo "uzupelnij caly formularz".'<br>';
  23. else
  24. {
  25.  
  26. $imie3=fopen("imie.txt", "a"); //zapisujemy do pliku
  27. fputs($imie3,$imie);
  28. fclose($imie3);
  29.  
  30. $wpis3=fopen("wpis.txt","a");
  31. fputs($wpis3,$wpis);
  32. fclose($wpis3);
  33.  
  34. $data3=fopen("data.txt", "a");
  35. fputs($data3, $data);
  36. fclose($data3);
  37. }
  38.  
  39. $plik1="imie.txt";
  40. $plik2="wpis.txt";
  41. $plik3="data.txt";
  42. if((filesize($plik1)==0)||(filesize($plik2)==0)) //pusty plik
  43. echo 'pliki są puste!- brak danych do wczytania';
  44. else
  45. {
  46. $imie2=fread(fopen("imie.txt", "r"), filesize("imie.txt")); //wczytujemy pliki
  47. $wpis2=fread(fopen("wpis.txt", "r"), filesize("wpis.txt"));
  48. $data2=fread(fopen("data.txt", "r"), filesize("data.txt"));
  49. }
  50. ?>
  51.  
  52.  
  53. <div id="nick">
  54. <?php
  55. echo "nick".'<br>';
  56. echo $imie2;
  57. ?>
  58.  
  59. </div>
  60.  
  61.  
  62. <div id="wpis">
  63. <?php
  64. echo "wpis".'<br>';
  65. echo $wpis2;
  66. ?>
  67. </div>
  68.  
  69.  
  70. <div id="data">
  71. <?php
  72. echo "data".'<br>';
  73. echo $data2;
  74. ?>
  75.  
  76. </div>


Nie wiem jak zrobić taką właśnie rozbudowaną instrukcję warunkową. Liczę na waszą pomoc.
Pozdro.
materkamil
Lepiej użyć funkcji preg_match która oprócz sprawdzenia długości zabezpieczy Cię przed niechcianymi znakami
kaiba55
wporządku, ale kwestia tego jak zrobić odpowiednią instrukcje warunkową, żeby w niej był zarówno preg match jak i empty, z tym mam problem
ciekawskiii
masz prawie ok ale pomieszales nawiasy, popraw na
  1. if((strlen($_GET['nick'])>10) || strlen($_GET['wpis'])>10)


jesli o to biega to musi dzialac, string w nawiasach ()
kaiba55
dziękuję, oto mi własnie chodziło smile.gif
!*!
mb_strlen jak już, jest dokładniejsze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.