Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]FORMULARZ POST oraz funckja UNSET
Forum PHP.pl > Forum > Przedszkole
mario_31
Witam, poniżej mam prosty kod PHP z formularzem do wypelnienia. Co mi nie chodzi - otóż po wypelnieniu formularza i przeslaniu go, chce aby nie wyświetlała się na stornie już zmienna $BODY_2 -
całą funkcje jak ma zachowywać się formularz po jego wypełnieniu mam podane na jego końcu. .


<?php

require_once('Template.php');


echo $HEADER; /*pobieram ten header z pliku Template.php*/
echo $BODY_1; /*pobieram ten BODY_1 z pliku Template.php*/
echo $BODY_2; /*pobieram ten BODY_2 z pliku Template.php*/

/*Wstawiam poniżej formularz do wypełnienia, ( form action zostawiam pusty <form action=''>) aby przesyłał dane w obrębie tej strony tylko*/

echo <<<PL
<div>
<section id="content">
<form action='' method="post" name="FORM">

<fieldset><legend>FORMULARZ</legend>

<label>LOGIN</label><input name="login" type="text"><br/>
<label>PASS</label><input name="password" type="text"><br/>
<input type="submit" value="WYSLIJ">

</fieldset>
<input name="checker" type="hidden" value="1">

</form>
</div>
</section>


PL;

if(isset($_POST['checker'])) {

unset($_POST['checker']);
print_r($_POST);

if (isset($BODY_2)) {

unset($BODY_2);

}

}


echo $FOOTER; /*pobieram ten FOOTER z pliku Template.php który początku kodu wczytałem*/


?>
!*!
Wrzuć kod w odpowiednie tagi na forum.
Ustaw action poprawnie.
Cytat
action="#"
bostaf
Cytat(mario_31 @ 3.01.2014, 09:26:49 ) *
otóż po wypelnieniu formularza i przeslaniu go, chce aby nie wyświetlała się na stornie już zmienna $BODY_2

Zwróć uwagę na sekwencję działań:
  1. najpierw maszecho $BODY_2;
  2. potem sprawdzasz, czy formularz został przesłany if(isset($_POST['checker']))
A chcesz uzyskać coś odwrotnego - najpierw sprawdzić, czy formularz jest wysłany, a potem - na podstawie tej informacji - wydrukować $BODY_2. Po prostu zmień kolejność - cały blok warunkowy wstaw tuż po require_once.
I jeśli usuwasz całkowicie zmienną $BODY_2 (unset($BODY_2);), to drukując ją, upewnij się, że w ogóle istnieje, żeby uniknąć ostrzeżeń typu notice. Czyli nie
  1. echo $BODY_2;

a
  1. echo isset($BODY_2) ? $BODY_2 : '';
  2. // albo
  3. if (isset($BODY_2)) echo $BODY_2;
mario_31
Czesc bostaf,

Faktycznie masz racje - po tym co napisałeś od razu zapaliła mi się czerowona lampka. Brakuje mi doświadczenia jeszcze i obycia z kodem. DZIEKI ZA POMOC exclamation.gif!!
Kshyhoo
Proszę wstawić kod w odpowiednie BB-Code.
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.