Dzień dobry,
przepisałem skrypt z książki "PHP i MySql - szybki start" i mam problem ze znacznikiem <textarea>. Z pliku HTML zatytułowanym 'formularz.html' wysyłam formularz do pliku PHP o nazwie 'obsluz_formularz.php'. W pliku PHP sprawdzam każde pole, czy zostało wypełnione. Jeżeli kompletnie nic nie wypełnię w pliku HTML, to otrzymuję poszczególne informacje, iż konkretne dane zostały nieuzupełnione. Jednak inaczej jest z polem UWAGI (i tylko z tym polem mam problem). Jeżeli nic tam nie wypełnię, to i tak przejdzie jako wypełniony. Dziwne jest jeszcze to, iż jeżeli chcę wypełnić uwagi i kliknę w to pole, to kursor zaczyna pisać tekst w miejscu, w którym kliknąłem, a nie na początku pola. Wygląda to tak, jakby wcześniej już ktoś kliknął w to pole kilka razy TABULATOR. Bo jeżeli kliknę w to pole i usunę te TABULATORY to wtedy faktycznie wszystko działa. Przesyłam puste pole i dostaję informację, iż pole nie zostało wypełnione. Skąd się wzięły te TABULATORY w tym polu o uwagach?
Proszę o pomoc i wyjaśnienie. Z góry dziękuję.
Poniżej plik HTML:
<!DOCTYPE html>
<html lang="PL">
<head>
<meta charset="UTF-8">
<title>Szybki start - rozdział 2</title>
<style type="text/css">
label {
font-weight: bold;
color: #300ACC;
}
</style>
</head>
<body>
<!-- LISTING 2.1 - FORMULARZ.HTML -->
<form action="obsluz_formularz.php" method="post">
<fieldset><legend>Wprowadź do formularza informację na swój temat:</legend>
<p><label>Nazwisko: <input type="text" name="name" size="20" maxlength="40"></label></p>
<p><label>Adres e-mail: <input type="email" name="email" size="40" maxlength="60"></label></p>
<p><label for="gender">Płeć: </label><input type="radio" name="gender" value="M">Mężczyzna<input type="radio" name="gender" value="K">Kobieta</p>
<p><label>Wiek:
<select name="age">
<option value="0-29">Poniżej 30</option>
<option value="30-60">Pomiędzy 30 a 60</option>
<option value="60+">Powyżej 60</option>
</select>
</label></p>
<p><label>Uwagi:
<textarea name="comments" rows="3" cols="40">
</textarea>
</label></p>
</fieldset>
<p align="center"><input type="submit" name="submin" value="Wyślij dane"></p>
</form>
</body>
</html>
Poniżej plik PHP:
<!DOCTYPE html>
<html lang="PL">
<head>
<meta charset="UTF-8">
<title>Szybki start - rozdział 2</title>
<style type="text/css">
.error {
font-weight: bold;
color: #C00;
}
</style>
</head>
<body>
<!-- OBSLUZ_FORMULARZ.PHP -->
<?php
// Sprawdzamy, czy formularz NAZWISKO został wypełniony i tworzymy skrót od zmiennej z formularza.
if(!empty($_REQUEST['name']))
{
$name = $_REQUEST['name'];
}
else
{
$name = NULL;
echo "<p class='error'>Pole \"Nazwisko\" nie zostało wypełnione!</p>";
}
// Sprawdzamy, czy formularz ADRES E-MAIL został wypełniony i tworzymy skrót od zmiennej z formularza.
if(!empty($_REQUEST['email']))
{
$email = $_REQUEST['email'];
}
else
{
$email = NULL;
echo "<p class='error'>Pole \"Adres e-mail\" nie zostało wypełnione!</p>";
}
// Sprawdzamy, czy formularz UWAGI został wypełniony i tworzymy skrót od zmiennej z formularza.
if(!empty($_REQUEST['comments']))
{
$comments = $_REQUEST['comments'];
}
else
{
$comments = NULL;
echo "<p class='error'>Pole \"Uwagi\" nie zostało wypełnione!</p>";
}
$age = $_REQUEST['age'];
//$submit = $_REQUEST['submit'];
// Sprawdzamy, czy formularz PŁEĆ został wypełniony i tworzymy skrót od zmiennej z formularza.
// Następnie tworzymy odpowiedzi warunkowe do zmiennej $gender.
if (isset($_REQUEST['gender']))
{
$gender = $_REQUEST['gender'];
if($gender=="M")
{
$greeting = "<p><b>Dziękujemy Panu!</b></p>";
}
elseif($gender=="K")
{
$greeting = "<p><b>Dziękujemy Pani!</b></p>";
}
else
{
$gender = NULL;
echo '<p class="error">Płeć może mieć tylko wartośc "M" lub "K"!</p>';
}
}
else
{
$gender = NULL;
echo "<p class='error'>Pole \"Płeć\" nie zostało wypełnione!</p>";
}
if($name && $email && $gender && $comments)
{
// Wyświetlamy otrzymane informacje.
echo
"<p>Dziękuję Ci, <b>$name</b>, za Twoje uwagi:<br><br>
<tt>$comments</tt></p>
<p>Odpowiedź prześlę na adres <i>$email</i>.</p>
<p>Wybrany wiek i płeć to odpowiednio: $age oraz $gender.</p>\n";
echo $greeting;
}
else
{
echo '<p class="error"><br>Proszę poprawnie wypełnić formularz!</p>';
}
?>
</body>
</html>