Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Warunek isset submit
Forum PHP.pl > Forum > Przedszkole
Terrorizer
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ć?
ghost1511
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.
tomxx
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.
nospor
@tomxx dodanie przekierowania w js zamiast header nie rozwiaze problemu zapetlania sie. Problememem jest to o czym pisal ghost
Terrorizer
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
nospor
Poniewaz dane z forma sa w tablicy $_POST

print_r($_POST);
i wszystko jasne
Terrorizer
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. }


nospor
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 ) ......
Terrorizer
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!!
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.