Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Wysyłanie Formularza
tytan
post 6.11.2013, 03:42:08
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2013

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


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ą.
Go to the top of the page
+Quote Post
jacobson
post 6.11.2013, 07:59:49
Post #2





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


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.
Go to the top of the page
+Quote Post
tytan
post 7.11.2013, 01:59:33
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2013

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


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(empty($skarga)) {
  4. echo "Musisz wypełnić pole <br />";
  5. }
  6. else {
  7. $wyslanie = "Podanie jest następujące: $skarga <br /><br /><hr>";
  8.  
  9.  
  10. echo "Twoje podanie zostało wysłane";
  11. file_put_contents("podanie.html", $wyslanie, FILE_APPEND);
  12. }
  13.  
  14. ?>


Ten post edytował tytan 7.11.2013, 03:32:58
Go to the top of the page
+Quote Post
Turson
post 7.11.2013, 09:55:15
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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
Go to the top of the page
+Quote Post
vermis
post 7.11.2013, 10:09:03
Post #5





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


Pole istnieje i jest puste:
  1. if (isset($_POST['tekst']) && $_POST['tekst'] == '') {
  2. // komunikat
  3. }


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


Ten post edytował vermis 7.11.2013, 10:09:25


--------------------
Go to the top of the page
+Quote Post
tytan
post 7.11.2013, 14:32:03
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2013

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


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 (isset($_POST['tekst']) && $_POST['tekst'] == '') {
  7. echo "Musisz wypełnić pole <br />";
  8. }
  9. elseif(isset($_POST['tekst'])){
  10. $wyslanie = "Podanie jest następujące: $skarga <br /><br /><hr>";
  11.  
  12.  
  13. echo "Twoje podanie zostało wysłane";
  14. file_put_contents("podanie.html", $wyslanie, FILE_APPEND);
  15. }
  16.  
  17.  
  18. ?>


Ten post edytował tytan 7.11.2013, 14:54:18
Go to the top of the page
+Quote Post
Turson
post 7.11.2013, 18:01:38
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. $skarga= $_POST['tekst'];
  2. if (isset($_POST['tekst']) && $_POST['tekst'] == '')

Nie definiuj zmiennej przed sprawdzeniem czy formularz jest wysłany smile.gif
Go to the top of the page
+Quote Post
tytan
post 7.11.2013, 20:57:07
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2013

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


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
Go to the top of the page
+Quote Post
Turson
post 7.11.2013, 23:02:49
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Bo jak wejdziesz bezpośrednio na stronę ze skryptem (nie przez submit), to wywali błąd, że $_POST nie istnieje
Go to the top of the page
+Quote Post
tytan
post 8.11.2013, 10:50:32
Post #10





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2013

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


Wchodzę bezposrednio na strone ze skryptem (nie przez submit) i bledu nie wywala.
Wiec zbytnio nie wiem o co chodzi wink.gif
Go to the top of the page
+Quote Post
jackussa
post 8.11.2013, 12:06:41
Post #11





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.09.2010

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


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
Go to the top of the page
+Quote Post
tytan
post 8.11.2013, 18:05:20
Post #12





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2013

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


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?
Go to the top of the page
+Quote Post
Turson
post 8.11.2013, 18:11:27
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. <?php
  2. if (isset($_POST['tekst']) && $_POST['tekst'] == '') {
  3. echo "Musisz wypełnić pole <br />";
  4. }
  5. elseif(isset($_POST['tekst'])){
  6. $skarga= $_POST['tekst'];
  7. $wyslanie = "Podanie jest następujące: $skarga <br /><br /><hr>";
  8.  
  9.  
  10. echo "Twoje podanie zostało wysłane";
  11. file_put_contents("podanie.html", $wyslanie, FILE_APPEND);
  12. }
  13. ?>
Go to the top of the page
+Quote Post
tytan
post 8.11.2013, 18:37:38
Post #14





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 6.11.2013

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


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.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.12.2019 - 13:34