Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Maxymalna ilość znaków w formie
Forum PHP.pl > Forum > Przedszkole
dragonate
Witam
1.Mam problem tworzę swoją księgę gości i chcę ustawić maksymalną ilość znaków w każdej z tych formularzy textarea itp.
O to kod:
  1. <?php
  2.  
  3. <form method="POST" action="dodaj.php">
  4.         autor: <input type="text" name="T1" size="20">
  5.         <p>gg: <input type="text" name="T2" size="20"></p>
  6.         <p>&nbsp;</p>
  7.         </p>
  8.         <p>
  9.         <textarea rows="14" name="S1" cols="73"></textarea></p>
  10.         <p><input type="submit" value="Prześlij" name="B1"></p>
  11.         <p>&nbsp;</p>
  12.         </form>
  13.  
  14. ?>


2. Jak zrobic, zeby ktoś musiał coś wpisać w te formularze, jak nie to, żeby wyświetlał się tekst, jaka funkcja ?

Plik, ktory zapisuje wpisy do baz:
  1. <?php
  2. $file = fopen("baza.inc", 'a');
  3. if(fwrite($file, $_POST['S1'] . "n"))
  4. {
  5. echo 'Dziękuję za wpis<br />';
  6. }
  7. else
  8. {
  9. echo 'Niesty nie udalo się wysłać wpisu, skontaktuj się z administratorem strony<br />';
  10. }
  11. fclose($file);
  12.  
  13. $file1 = fopen ("baza1.inc", 'a');
  14. fwrite ($file1, $_POST['T1'] . "n");
  15. fclose($file1);
  16. $file2 = fopen ("baza2.inc", 'a');
  17. fwrite ($file2, $_POST['T2'] . "n");
  18. fclose ($file2);
  19. ?>
nospor
Cytat
i chcę ustawić maksymalną ilość znaków w każdej z tych formularzy
Przepraszam ze pytam, ale czy twoj post ma na celu poinformowanie nas wszystkich ze masz pewne zamiary, czy moze ma na celu o zapytanie jak to zrobic. Bo z tresci postu wynika ze ty nas infomujesz. Tak wiec odpowiadam: i bardzo dobrze. rob se ograniczenia.


a na powaznie. Pytasz sie? tak?
  1. <?php
  2. if (strlen($_POST['S1']) > 20) echo 'za duzo znakow';
  3. ?>
ein
wyprobuj maxlength

a tak poza tym sprawdzaj dlugosc po stronie php, bo po stronie klienta nic to nie da worriedsmiley.gif
nospor
maxlength dziala tylko dla inputow. dla textarea nie dziala
dragonate
Teraz mój plik wygląda tak:
  1. <?php
  2. $file = fopen("baza.inc", 'a');
  3. if(fwrite($file, $_POST['S1'] . "n"))
  4. {
  5. echo 'Dziękuję za wpis<br />';
  6. }
  7. else
  8. {
  9. echo 'Niesty nie udalo się wysłać wpisu, skontaktuj się z administratorem strony<br />';
  10. }
  11. if (strlen($file, $_POST['S1'] ? 20))
  12. else
  13. {
  14. echo 'za duzo znakow';
  15. }
  16. fclose($file);
  17.  
  18. $file1 = fopen ("baza1.inc", 'a');
  19. fwrite ($file1, $_POST['T1'] . "n");
  20. fclose($file1);
  21. $file2 = fopen ("baza2.inc", 'a');
  22. fwrite ($file2, $_POST['T2'] . "n");
  23. fclose ($file2);
  24. ?>


Błąd:
Parse error: parse error in c:\usr\krasnal\www\test\dodaj.php on line 11

Co jest źle ?

Chce zastosowac do wszystkich form ograniczenie.
nospor
przyjrzyj sie jeszcze raz uwanie mojemu kodowi. skad ci sie wzielo $file w strlen?
Jak robisz cos prze copy paste to rob to z glową. pozatym nie ? a >
i se poczytaj o if smile.gif
dragonate
Zrobiłem działa, lecz jak połączyć to, że nie wysłano, że jest za dużo znaków.
Bo mi wyświetla:
Dziękuję za wpis
za duzo znakow
nospor
Zeby programowac, oprocz wiedzy, trzeba tez troche myslec. Nie mozesz zapisywac do pliku, a dopiero potem sprawdzac czy mozesz zapisac. Troche logiki.

  1. <?php
  2.  
  3. if (strlen($_POST['S1'] > 20))
  4. echo 'za duzo znakow';
  5. else{
  6. if(fwrite($file, $_POST['S1'] . "n"))
  7. {
  8. echo 'Dziękuję za wpis<br />';
  9. }
  10. else
  11. {
  12. echo 'Niesty nie udalo się wysłać wpisu, skontaktuj się z administratorem strony<br />';
  13. }
  14. }
  15. ?>
dragonate
Jeszcze nie przyszła mi książka "php i MYSQL Vademecum Profesionalisty wydanie III" i jeszcze pewnych rzeczy nie rozumiem itp.

Mój kod wygląda tak:
  1. <?php
  2. if (strlen($_POST['S1'] > 20))
  3. echo 'za duzo znakow';
  4. else{
  5. if(fwrite($file, $_POST['S1'] . "n"))
  6. {
  7. echo 'Dziękuję za wpis<br />';
  8. }
  9. else
  10. {
  11. echo 'Niesty nie udalo się wysłać wpisu, skontaktuj się z administratorem strony<br />';
  12. }
  13. }
  14.  
  15. $file1 = fopen ("baza1.inc", 'a');
  16. fwrite ($file1, $_POST['T1'] . "n");
  17. fclose($file1);
  18. $file2 = fopen ("baza2.inc", 'a');
  19. fwrite ($file2, $_POST['T2'] . "n");
  20. fclose ($file2);
  21. ?>


I ma wyświetlać błąd:
Warning: fwrite(): supplied argument is not a valid stream resource in c:\usr\krasnal\www\test\dodaj.php on line 5
Niesty nie udalo się wysłać wpisu, skontaktuj się z administratorem strony

?
sobstel
Cytat(dragonate @ 2005-12-18 11:44:31)
Jeszcze nie przyszła mi książka "php i MYSQL Vademecum Profesionalisty wydanie III" i jeszcze pewnych rzeczy nie rozumiem itp.

co nie znaczy, ze pozwala ci to na zadawanie pytan, na ktore latwo odpowiedzi mozesz znalez w manualu. poczytaj o funkcjach plikowych, poogladaj przyklady, bo caly czas bedziesz mial jakis problem.

w twoim przykladzie wyglada na to, ze probujesz zapisywac do pliku, ktorego wczesniej nie otworzyles. skad php ma wiedziec na jakim pliku wykonywac fwrite?
w pierwszym przykladzie podanym w twoim pierwszym poscie bylo $file = fopen("baza.inc", 'a'); teraz tego nie widze
dragonate
  1. <?php
  2. $file = fopen("baza.inc", 'a');
  3. if (strlen($_POST['S1'] > 20))
  4. echo 'za duzo znakow';
  5. else{
  6. if(fwrite($file, $_POST['S1'] . "n"))
  7. {
  8. echo 'Dziękuję za wpis<br />';
  9. }
  10. else
  11. {
  12. echo 'Niesty nie udalo się wysłać wpisu, skontaktuj się z administratorem strony<br />';
  13. }
  14. }
  15.  
  16. $file1 = fopen ("baza1.inc", 'a');
  17. fwrite ($file1, $_POST['T1'] . "n");
  18. fclose($file1);
  19. $file2 = fopen ("baza2.inc", 'a');
  20. fwrite ($file2, $_POST['T2'] . "n");
  21. fclose ($file2);
  22. ?>


Teraz działa, lecz nie ma ograniczenia znaków.
nospor
jak to nie ma? Przeciez jest. Jesli pole S1 ma wiecej znakow niz 20 to wyswietli odpowiedni komunikat i nie zapisze do pliku baza.inc. Masz w tej chwili ustawione ograniczenie tylko na to jedno pole. Pozostale pola zapisujesz bez ograniczen

ps:
Cytat
Jeszcze nie przyszła mi książka "php i MYSQL Vademecum Profesionalisty wydanie III" i jeszcze pewnych rzeczy nie rozumiem itp.
Myslenie i logika jest nie zalezne od ksiązek. Logiczne przeciez wydaje sie ze, ze zanim cos zjesz, sprawdzasz, czy nie jest to spleśniałe. No chyba ze ty robisz na odwrot? Najpierw jesz a potem lecisz do doktora smile.gif NIe bierz tego do siebie, nie mam zlych intentcji, poprostu staram ci sie wytlumaczyc, ze niektore zachowania sa niezalezne od ksiazek smile.gif
dragonate
Respekt tongue.gif

Tylko teraz pojawia się problem.

Każdy formularz zrobiłem w innej bazie, a chcę zrobić wyświetlenie wpisów.
I trzeba by jakoś to złączyć, żeby w "Wyświetl Wpisy" było tak:

nick:
GG:
Treść:

Niestety nick mam w bazie baza1.inc, GG mam w baza2.inc, a treść mam w baza.inc dry.gif

Nie mam pojęcia jak to zrobić .... worriedsmiley.gif
nospor
1) retyyy, a czemu wszystko w innym pliku? echhh

2) no ale skoro sie upierasz, to musisz pobierac ity rekord z zkazdego pliku, i kazy ity rekord bedzie info danego ludka. nie widze problemu (oprcz tego ze wszystko w oddzielnych plikach smile.gif )
dragonate
Moge mieć wszystko w jednym pliku, tylko co i jak zrobić pozniej .... Rkingsmiley.png
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.