Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [HTML][PHP]Wysyłanie Formularza

Napisany przez: tytan 6.11.2013, 03:42:08

Witam ,dopiero od nie dawna bawie sie w php i mam taki problem,
chodzi o to ze napisałem formularz w postaci 1 pola tekstowego, oraz ustawiłem go przesyłanie do pliku za pomocą nowego wyrażenia php 5 " file_put_contents ".
I chciałbym zeby mozna było zrobić blokade ze z jednego komputera mozna wysłać 2 formularze na dobe np albo ogólnie , moze byc np z 1 adresu ip.
I nie mam zieloneog pojecia jak to mogłbym uczynić ,licze na pomoc wink.gif
z góry dziekuje osobą które sie zainteresują.

Napisany przez: jacobson 6.11.2013, 07:59:49

jezeli musisz zapisywac to do pliku to zapisuj tam przy okazji informacje o uzytkowniku ktory przeslal formularz i przed kazdym kolejnym zapisem sprawdzaj czy juz istnieje wpis tego uzytkownika i jak tak to blokuj wysylanie.

Napisany przez: tytan 7.11.2013, 01:59:33

Tylko jaka funkcja odpowiada za wyciaganie IP , i dokladnie gdzie to dodać.
Niżej podałem kod , bede wdzieczny jak ktoś pokaze jak to powinno wygladać i wytłumaczy wink.gif
Oraz chodziło by mi jeszcze o to ze jak pole jest puste wyswietla "musisz wypełnic pole"
wyswietla to od razu po wejsciu na strone , a mi by chodziło zeby pokazywało sie dopiero jak ktoś pola nie wypełni i kliknie wysłanie.




  1. <?php
  2. $skarga= $_POST['tekst'];
  3. if(http://www.php.net/empty($skarga)) {
  4. http://www.php.net/echo "Musisz wypełnić pole <br />";
  5. }
  6. else {
  7. $wyslanie = "Podanie jest następujące: $skarga <br /><br /><hr>";
  8.  
  9.  
  10. http://www.php.net/echo "Twoje podanie zostało wysłane";
  11. file_put_contents("podanie.html", $wyslanie, FILE_APPEND);
  12. }
  13.  
  14. ?>

Napisany przez: Turson 7.11.2013, 09:55:15

Co do wypełnienia pola możesz zastosować "required" w formularzu z HTML5, a żeby informacja pokazywała się po wysłaniu formularza, akcje sprawdzania wykonujesz dopiero jak zmienna POST istnieje

Napisany przez: vermis 7.11.2013, 10:09:03

Pole istnieje i jest puste:

  1. if (http://www.php.net/isset($_POST['tekst']) && $_POST['tekst'] == '') {
  2. // komunikat
  3. }


IP użytkownika
  1. $_SERVER['REMOTE_ADDR']

Napisany przez: tytan 7.11.2013, 14:32:03

Kod przerobiłem i elgancko działa wink.gif
Z uzytkownikiem IP sobie zrobie pózniej bo narazie nie mam czasu , ale wiem o co chodzi.
Wielkie dzięki , jak bede potrzebował pomocy wiem ze moge na was liczyć wink.gif
Jakby ktoś miał taki sam problem to kod na dole.

  1. <?php
  2.  
  3.  
  4.  
  5. $skarga= $_POST['tekst'];
  6. if (http://www.php.net/isset($_POST['tekst']) && $_POST['tekst'] == '') {
  7. http://www.php.net/echo "Musisz wypełnić pole <br />";
  8. }
  9. elseif(http://www.php.net/isset($_POST['tekst'])){
  10. $wyslanie = "Podanie jest następujące: $skarga <br /><br /><hr>";
  11.  
  12.  
  13. http://www.php.net/echo "Twoje podanie zostało wysłane";
  14. file_put_contents("podanie.html", $wyslanie, FILE_APPEND);
  15. }
  16.  
  17.  
  18. ?>

Napisany przez: Turson 7.11.2013, 18:01:38

  1. $skarga= $_POST['tekst'];
  2. if (http://www.php.net/isset($_POST['tekst']) && $_POST['tekst'] == '')

Nie definiuj zmiennej przed sprawdzeniem czy formularz jest wysłany smile.gif

Napisany przez: tytan 7.11.2013, 20:57:07

Hmmm , a czemu nie?
Jak definiuje zmienną ponizej , to jak wpisze tekst i przesle to do pliku przechodzi pusta wiadomosc tzn:
Podanie jest nastepujace:
i tyle.
A jak jest tak jak mam to działa dobrze wink.gif

Napisany przez: Turson 7.11.2013, 23:02:49

Bo jak wejdziesz bezpośrednio na stronę ze skryptem (nie przez submit), to wywali błąd, że $_POST nie istnieje

Napisany przez: tytan 8.11.2013, 10:50:32

Wchodzę bezposrednio na strone ze skryptem (nie przez submit) i bledu nie wywala.
Wiec zbytnio nie wiem o co chodzi wink.gif

Napisany przez: jackussa 8.11.2013, 12:06:41

Pawnie masz wyłączone raportowanie blędów.

Błąd na pewno jest, nie można pobrać wartości zmiennej, która nie jest zainicjowana

Napisany przez: tytan 8.11.2013, 18:05:20

Na stronie mi działa bez błedu no i na serwie localhost takze bez błedu , a jak umieszczam zmienną w innym miejscu to albo wywala bład,
albo przesyła pusty formularz.
Pokaze mi ktoś jak to powinno wygladac?

Napisany przez: Turson 8.11.2013, 18:11:27

  1. <?php
  2. if (http://www.php.net/isset($_POST['tekst']) && $_POST['tekst'] == '') {
  3. http://www.php.net/echo "Musisz wypełnić pole <br />";
  4. }
  5. elseif(http://www.php.net/isset($_POST['tekst'])){
  6. $skarga= $_POST['tekst'];
  7. $wyslanie = "Podanie jest następujące: $skarga <br /><br /><hr>";
  8.  
  9.  
  10. http://www.php.net/echo "Twoje podanie zostało wysłane";
  11. file_put_contents("podanie.html", $wyslanie, FILE_APPEND);
  12. }
  13. ?>

Napisany przez: tytan 8.11.2013, 18:37:38

Dzieki wink.gif
Bede pamietał o tym na przyszłosc , wstawiałem w te miejsce i bład wywalało widocznie jakaś literówke zrobiłem , tak to jest jak sie nie ma wprawy
i jest sie początkującym , ale powoli ogarne wink.gif
Temat do zamkniecia , i jeszcze raz Dziekuje.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)