Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Warunek isset submit
Terrorizer
post 6.02.2014, 03:36:20
Post #1





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

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


Witam,
Tworzę prostą stronę na której dodaje się komentarze. Problem sprawia fakt ,że dodany komentarz wciąż jest dodawany po odświeżeniu strony.
Pierwszym problemem ta linijka zaczynająca się od "if"... nie chce mi działać...
  1. <form action="" method="POST">
  2. <label>Twoje imie:</label><input type="text" name='twoje_imie' required ><br>
  3. <label>Komentarz:<br></label><textarea rows="4" cols="50" name='komentarz' autofocus required> </textarea><br>
  4. <input type='submit' name='submit' value='wyslij'>
  5. </form>
  6.  
  7. <?php // SENDING FORM TO DATABASE //
  8. if (isset($_POST['submit'])){
  9. mysql_query('insert into komentarze (imie, komentarz) values ("'.$_POST["twoje_imie"].'" , "'.$_POST["komentarz"].'")')
  10. or die('nie mozna zapisac komentarza'.mysql_error());

Natomiast działa jeśli zostawie ją w takiej fomie:
  1. if (isset($_POST)){

Na czym polega błąd w tym submicie?

Kolejną rzeczą którą chciałem zrobić, to przekierowanie na stronę główną po dodaniu komentu. Mam przeczucie ,że to przerwałoby ponowne wysyłanie formularza po odświeżeniu strony?
Kod
header("Location: index.php");

Chciałem dodać taką linijkę na końcu warunku isset, jednak odrazu wywala mi błąd ,że strona zawiera niekończącą się pętlę header...
Jak z tym sobie poradzić?

Ten post edytował Terrorizer 6.02.2014, 04:00:43
Go to the top of the page
+Quote Post
ghost1511
post 6.02.2014, 07:44:27
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 18
Dołączył: 2.09.2010

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


Cytat(Terrorizer @ 6.02.2014, 03:36:20 ) *
<?php // SENDING FORM TO DATABASE //
if (isset($_POST['submit'])){
mysql_query('insert into komentarze (imie, komentarz) values ("'.$_POST["twoje_imie"].'" , "'.$_POST["komentarz"].'")')
or die('nie mozna zapisac komentarza'.mysql_error());[/php]
Natomiast działa jeśli zostawie ją w takiej fomie:


  1. if(isset( $_POST['twoje_imie'] ) && isset( $_POST['komentarz'] ))
  2. ...


Cytat(Terrorizer @ 6.02.2014, 03:36:20 ) *
  1. if (isset($_POST)){

Na czym polega błąd w tym submicie?

Kolejną rzeczą którą chciałem zrobić, to przekierowanie na stronę główną po dodaniu komentu. Mam przeczucie ,że to przerwałoby ponowne wysyłanie formularza po odświeżeniu strony?
Kod
header("Location: index.php");


Sprawdzasz czy jest zdefiniowana tablica super globalna $_POST, która zdefiniowana jest zawsze (zawsze otrzymujesz TRUE ). Przez co zapętla Ci się header.
Go to the top of the page
+Quote Post
tomxx
post 6.02.2014, 09:23:36
Post #3





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Zamiast header("...") użyj:
  1. echo '<script>location.href="/index.php";</script>';
Wstaw to bezpośrednio po instrukcji dodającej komentarz. Powinno zadziałać.

Natomiast co do $_POST, to spróbuj przejrzeć tę zmienną print_r i zobacz, co zawiera.
Go to the top of the page
+Quote Post
nospor
post 6.02.2014, 09:29:45
Post #4





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




@tomxx dodanie przekierowania w js zamiast header nie rozwiaze problemu zapetlania sie. Problememem jest to o czym pisal ghost


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Terrorizer
post 6.02.2014, 14:18:59
Post #5





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

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


Dziękuję za odpowiedzi smile.gif
Natomiast pozwolę sobie zapytać, czemu isset submit sam w sobie nie działa?
To byłoby dosyć proste, zwyczajnie sprawdzić czy przycisk został wciśnięty biggrin.gif

Ten post edytował Terrorizer 6.02.2014, 14:19:59
Go to the top of the page
+Quote Post
nospor
post 6.02.2014, 14:20:07
Post #6





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Poniewaz dane z forma sa w tablicy $_POST

print_r($_POST);
i wszystko jasne


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Terrorizer
post 6.02.2014, 14:35:27
Post #7





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

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


Już się za to zabieram tongue.gif
Proszę mi wybaczyć głupkowate pytania, ale zakładając ,że jesteśmy w dziale "przedszkole" wydaje mi sie ,że jestem w stanie sobie na to pozwolić biggrin.gif

Print wyświetlił mi następującą rzecz: " Array ( [twoje_imie] => mateusz [komentarz] => Cześć, to mój post! [submit] => wyslij ) "
Nie bardzo wiem co mi to daje szczerze powiedziawszy biggrin.gif


Tak na marginesie, robiąc coś takiego jak poniżej, wyświetla mi się błąd, że "unexpected { "
  1. if(isset( $_POST['twoje_imie'] ) && isset( $_POST['komentarz'] ){
  2. mysql_query('insert into komentarze (imie, komentarz) values ("'.$_POST["twoje_imie"].'" , "'.$_POST["komentarz"].'")')
  3. or die('nie mozna zapisac komentarza'.mysql_error());
  4. }


Go to the top of the page
+Quote Post
nospor
post 6.02.2014, 14:38:16
Post #8





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Widac, ze submit idzie POSTem, wiec warunek:
if (isset($_POST['submit'])){
NIe ma prawa niedzialac.

Zas co do bledu co teraz masz:
IF ktory otwierasz ( wypadaloby by zamknac przy pomocy ) ......


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Terrorizer
post 6.02.2014, 14:47:10
Post #9





Grupa: Zarejestrowani
Postów: 345
Pomógł: 3
Dołączył: 31.03.2012

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


Ale ze mnie głupek biggrin.gif A sprawdzałem te nawiasy 10 razy biggrin.gif
Strona działa po mojej myśli exclamation.gif Serdeczne dzięki!!
Stworzyłem moją pierwszą stronę opartą na php biggrin.gif Przyczyniacie się do tworzenia mojej historii haha

Ojj submit jednak działa... ja nie wiem na czym polegał błąd wczoraj biggrin.gif tak to jest jak sie siedzi do 5 rano chyba biggrin.gif
DZIĘKI!!

Ten post edytował Terrorizer 6.02.2014, 14:51:00
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: 26.04.2024 - 04:56