Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formularzem(post)
Forum PHP.pl > Forum > PHP
Wiktor
Z góry uprzedzam że czytałem ten przyklejony topic o post i get...
No więc mam problem z formularzem. Wszystko działa tylko że wyświetla błąd: Warning: Undefined variable: imie in d:foxserverwwwcwiczeniaformularzguestbook.php on line 13

A kod mam taki:
Kod
<?php

     if(!($imie) or !($email) or !($www) or !($opinia))

     {

          print '<FORM method = "POST">';

          print '<b>Twoje imie lub xywka:</b> <input type = "text" name = "imie"><br>';

          print '<b>Twoj adres e-mail:</b> <input type = "text" name = "email"><bR>';

          print '<b>Adres twojej strony internetowej:</b> <input type = "text" name = "www"><br>';

          print '<b>Co sądzisz o tej stronie? </b><input type = "textarea" name = "opinia"><br>';

          print '<input type="submit" value="Wyslij">';

          print '</FORM>';

     } else {

          print "Witaj $imie! Twoj e-mail to: $email, a adres twojej strony to $www.<br>";

          print "$opinia";

     }

?>


Jesli na początku dam :
Kod
     $imie = $_POST['imie'];

     $email = $_POST['email'];

     $www = $_POST['www'];

     $opinia = $_POST['opinia'];

To też wywala błąd ale taki: Warning: Undefined variable: _POST in d:foxserverwwwcwiczeniaformularzguestbook.php on line 8

Warning: Undefined variable: _POST in d:foxserverwwwcwiczeniaformularzguestbook.php on line 9

Warning: Undefined variable: _POST in d:foxserverwwwcwiczeniaformularzguestbook.php on line 10

Warning: Undefined variable: _POST in d:foxserverwwwcwiczeniaformularzguestbook.php on line 11

$HTTP_POST_VARS['']; tez nie pomaga... Używam foxservera a zmienne globalne mam na ON
Co jest? Pomożcie help!

Najdziwniejsze w tym wszystkim jest to ze DANE SĄ PRZEKAZYWANE I WYPISYWANE!!! Tylko że jeszcze wyświetla błąd...
scanner
Przede wszystkim, zamiast podstawiać zmienne pod zmienne, odwołuj sie bezpośrednio do superglobali.[php:1:83c09da64e]<?php
if(!isset($_POST['imie']) || !isset($_POST['email']) || !isset($_POST['www']) || !isset($POST['opinia'])) {
print '<FORM method = "POST">';
print '<b>Twoje imie lub xywka:</b> <input type = "text" name = "imie"><br>';
print '<b>Twoj adres e-mail:</b> <input type = "text" name = "email"><bR>';
print '<b>Adres twojej strony internetowej:</b> <input type = "text" name = "www"><br>';
print '<b>Co sądzisz o tej stronie? </b><input type = "textarea" name = "opinia"><br>';
print '<input type="submit" value="Wyslij">';
print '</FORM>';
} else {
print "Witaj $_POST['imie']! Twoj e-mail to: $_POST['email'], a adres twojej strony to $_POST['www'].<br>";
print "$_POST['opinia']";
}
?>[/php:1:83c09da64e]Piszę z głowy - powinno działać.
Cudi
[php:1:4bfbb517e4]<?php
if(!isset($_POST['imie']) || !isset($_POST['email']) || !isset($_POST['www']) || !isset($POST['opinia']))
?>[/php:1:4bfbb517e4]

Łatwiej jest dać poprostu:

[php:1:4bfbb517e4]<?php
if(empty($_POST))
?>[/php:1:4bfbb517e4]
scanner
To zalezy od tego, czy zezwalasz na puste wartości. Pamietaj, że nie kazdy ma strone WWW (w tym przykładzie). I co wtedy?
Cudi
Ja robie zawsze zabezpieczenie przez JS, bo przez to użytkownik nie musi kilka razy wracać do formularza, jak jakieś pole jest źle wypełnione to wyskakuje alert przy submicie, i chcąc nie chcąć user musi to poprawić jak chce coś dodać. Pozatym zamiast !isset lepiej dać empty :]
scanner
Powinno być zarówno zabezpiecznenie
Kod
<form onSubmit="....
jak i przy php[php:1:2f4e76b8bd]<?php isset() /* lub */ empty() ?>[/php:1:2f4e76b8bd]. I powtarzam to co napisalem wcześniej.
Wiktor
Dzięki chłopaki smile.gif Jak ktos nie ma strony www to ja tez nie wymagam jej wpisania tylko że ten formularz byl tylko żeby sprzwdzic czy dziala post i get a nie na prawde do ksiegi gości...
FiDO
Cytat
Ja robie zawsze zabezpieczenie przez JS, bo przez to użytkownik nie musi kilka razy wracać do formularza, jak jakieś pole jest źle wypełnione to wyskakuje alert przy submicie, i chcąc nie chcąć user musi to poprawić jak chce coś dodać.

Poczekaj az Ci jakis "chakier" wylaczy JS w przegladarce i wpisze co chce tongue.gif
To powinno byc, tak jak mowi (pisze) scanner, jedynie jako dodatkowe zabezpieczenie majace na celu ulatwienie zycia tym co maja JS wlaczone.
Cudi
Hehe, no macie racje, jak będzie ktoś złośliwy to tak zrobi :] Tylko co mu da pusty wpis ? :]
Wiktor
Cos mi sie chyba zdawało że działa bo nie działa... :oops:
Looknijcie na ten kodzik(przykładowy):
<?php
if(isset($_POST['text']))
{
print "Ok";
} else {
print '<FORM method="POST">';
print '<input type = "text" name = "text">';
print '<input type = "submit" value = "Wyslij">';
print '</form>';
}
?>

Jesli cos wpisze na formularzu to powinno wyswietlic ok, ale nie wyswietla... wogóle jakby nie przekazywało z formularz danych do skrytpu...!!! :oops: :cry:

Co jest?questionmark.gif HELP ME!!![/code]

Cudi niekoniecznie musi byc pusty wpis moze byc jakis skrypt!
KaMeLeOn
[php:1:5d035b03e6]
<?php
if(isset($_POST['text'])){
print "Ok";
} else {
print '<FORM action"plik.php" method="POST">';
print '<input type = "text" name = "text">';
print '<input type = "submit" value = "Wyslij">';
print '</form>';
}
?>
[/php:1:5d035b03e6]
Wiktor
Kameleon nie działa!!! angrysmiley.gif Poza tym po co wstawiac to action = "plik.php" questionmark.gif?

Teraz wogole nie przekazuje wartosci... a tak poza tym to ja nie chce tylko sprawdzic ale tez odczytac co nadal uzytkownik
KaMeLeOn
Cytat
Kameleon nie działa!!!  :evil: Poza tym po co wstawiac to action = "plik.php" questionmark.gif?

Jak to po co? ohmy.gif
Action określa do którego pliku przesyłasz zawartość formularza, wpisz tam nazwę swojego pliku....
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.