Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie formularza
Forum PHP.pl > Forum > PHP
adziozone
Witam,

Mam taki problem z formularzem, chciałbym żeby była w nim funkcja taka ze jak jakaś rubryka nie jest uzupełniona to żeby poniżej wyświetlał się komunikat np. „wypełnij wszystkie rubryki” z góry dzięki za pomoc.

<?php
if (count($_POST))
{
////////// USTAWIENIA //////////
$email = 'adziozone@op.pl'; // Adres e-mail adresata
$subject = ' kontakt'; // Temat listu
$message = 'Dziękujemy za wysłanie formularza'; // Komunikat
$error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
$charset = 'iso-8859-2'; // Strona kodowa
//////////////////////////////

$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
$body = '';
foreach ($_POST as $name => $value)
{
if (is_array($value))
{
for ($i = 0; $i < count($value); $i++)
{
$body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
}
}
else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
}
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
}
else
{
?>
<form action="?" method="post">

<!-- Komentarz -->
<p align="right">
<b>
<font size="3" color="#ffffff">Imię i nazwisko:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</b>
<font color="#000080">
<input maxLength="24" name="Imię i nazwisko:[]" size="30" style="font-weight: 700" value="<?= $imie; ?>" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</font>
<br><br>
<b>
<font size="3" color="#ffffff">Adres e-mai:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</b>
<font color="#000080">
<input maxLength="29" name="Adres -mail:[]" size="30" style="font-weight: 700" value="<?= $adres; ?>" >
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
</font>
<br>
<b>
<font size="3" color="#ffffff">Telefon:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</b>
<font color="#000080">
<input maxLength="29" name="Telfon:[]" size="30" style="font-weight: 700" value="<?= $telefon; ?>">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
</font>
<br>
</p>
<p align="right">
&nbsp;&nbsp;&nbsp;
<b>
<font size="3" color="#ffffff">Treść:
</b>
</font>
<textarea rows="8" name="tresc[]" cols="40"></textarea>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
&nbsp;&nbsp;&nbsp;
<br>
<center>
<input type="submit" name="wyslij" value="Wyślij" style="background-color: #000000; font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FFFFFF; ">
&nbsp;&nbsp;&nbsp;
<input type="reset" name="reset" value="Wyczyść" style="background-color: #000000; font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FFFFFF; ">
</center>
<input type="hidden" name="location" value="dziekuje.htm">

</form>
<?php
}
?>




Aqu
Coś takiego:
  1.  
  2. <?php
  3. if (isset($_POST['Imię i nazwisko:'], $_POST['Imię i nazwisko:'], $_POST['Telfon:'], $_POST['tresc']))
  4. {
  5. ////////// USTAWIENIA //////////
  6. $email = 'adziozone@op.pl'; // Adres e-mail adresata
  7. $subject = ' kontakt'; // Temat listu
  8. $message = 'Dziękujemy za wysłanie formularza'; // Komunikat
  9. $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
  10. $charset = 'iso-8859-2'; // Strona kodowa
  11. //////////////////////////////
  12.  
  13. $head =
  14. "MIME-Version: 1.0\r\n" .
  15. "Content-Type: text/plain; charset=$charset\r\n" .
  16. "Content-Transfer-Encoding: 8bit";
  17. $body = '';
  18. foreach ($_POST as $name => $value)
  19. {
  20. if (is_array($value))
  21. {
  22. for ($i = 0; $i < count($value); $i++)
  23. {
  24. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  25. }
  26. }
  27. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  28. }
  29. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  30. }
  31. else
  32. {
  33. if(isset($_POST)) echo 'Uzupełnij wszystkie pola.';
  34. ?>
  35. <form action="?" method="post">
  36.  
  37. <!-- Komentarz -->
  38. <p align="right">
  39. <b>
  40. <font size="3" color="#ffffff">Imię i nazwisko:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  41. </b>
  42. <font color="#000080">
  43. <input maxLength="24" name="Imię i nazwisko:[]" size="30" style="font-weight: 700" value="<?= $imie; ?>" >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  44. </font>
  45. <br><br>
  46. <b>
  47. <font size="3" color="#ffffff">Adres e-mai:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  48. </b>
  49. <font color="#000080">
  50. <input maxLength="29" name="Adres -mail:[]" size="30" style="font-weight: 700" value="<?= $adres; ?>" >
  51. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
  52. </font>
  53. <br>
  54. <b>
  55. <font size="3" color="#ffffff">Telefon:</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  56. </b>
  57. <font color="#000080">
  58. <input maxLength="29" name="Telfon:[]" size="30" style="font-weight: 700" value="<?= $telefon; ?>">
  59. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
  60. </font>
  61. <br>
  62. </p>
  63. <p align="right">
  64. &nbsp;&nbsp;&nbsp;
  65. <b>
  66. <font size="3" color="#ffffff">Treść:
  67. </b>
  68. </font>
  69. <textarea rows="8" name="tresc[]" cols="40"></textarea>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
  70. &nbsp;&nbsp;&nbsp;
  71. <br>
  72. <center>
  73. <input type="submit" name="wyslij" value="Wyślij" style="background-color: #000000; font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FFFFFF; ">
  74. &nbsp;&nbsp;&nbsp;
  75. <input type="reset" name="reset" value="Wyczyść" style="background-color: #000000; font-family: Verdana; color: #FFFFFF; font-size: 8pt; font-weight: bold; border: 1px solid #FFFFFF; ">
  76. </center>
  77. <input type="hidden" name="location" value="dziekuje.htm">
  78.  
  79. </form>
  80. <?php
  81. }
  82. ?>


Ale może lepiej skorzystać z jakiegoś gotowego skryptu?
CuteOne
a co to za dziwactwo?
Kod
name="Imię i nazwisko:[]"

Kod
name="imie_nazwisko[]"


ps. [] oznacza utworzenie tablicy po stronie php
adziozone
Nie o to chodziło dokładnie , bo napis "Uzupełnij wszystkie pola." żeby nie było widoczne zawsze tylko jak ktoś naciśnie "wyślij" to w tym momencie jak nie są wszystkie pola uzupełnione to żeby pojawiał się komunikat. Jak widzicie błędy proszę mówić, ja jestem laikiem z php smile.gif

Znalazłem taki skrypt, ten wyświetla komunikat ze jakaś rubryka nie jest wypełniona, ale nie wiem jak z tych dwóch zrobić jeden. Proszę o pomoc w rozwiązaniu problemu.

<?php


// Funkcja wy¶wietlaj±ca formularz

function formularz($imie = "", $nazwisko = "", $zawod = "",

$email = "", $mailing_checked = false ) {

?>

<form action="" method="post">

Imię:<br />

<input name="imie" value="<?= $imie; ?>" /><br />

Nazwisko:<br />

<input name="nazwisko" value="<?= $nazwisko; ?>" /><br />

Zawód:<br />

<input name="zawod" value="<?= $zawod; ?>" /><br />

Adres e-mail:<br />

<input name="email" value="<?= $email; ?>" /><br />

<input type="checkbox" name="mailing"

value="checked"<?php if ($mailing_checked) echo " checked" ?>

/>Chcę otrzymywać informacje handlowe<br /><br />

<input type="submit" value="Wy¶lij" name="submit"/>

</form>

<?php

}

?>

<body>

<?php

if (isset($_POST["submit"])) {

// Sprawdzamy, czy użytkownik zaznaczył pole wyboru i ustawiamy warto¶ć

// odpowiedniej zmiennej

$mailing = false;

if (isset($_POST["mailing"]))

$mailing = true;

// Wy¶wietlamy formularz z wpisanymi warto¶ciami poszczególnych pól

formularz($_POST["imie"], $_POST["nazwisko"],

$_POST["zawod"], $_POST["email"], $mailing);

// Sprawdzamy, czy wszystkie pola zostały zapełnione

if (empty($_POST["imie"]) || empty($_POST["nazwisko"])

|| empty($_POST["zawod"]) || empty($_POST["email"])) {

echo "<p style=\"color:red\">Musisz wypełnić wszystkie pola!</p>";

} else {

echo "<p>Dziękujemy za wypełnienie formularza!</p>";

}

} else {

// Je¶li strona ładowana pierwszy raz, wy¶wietlamy pusty formularz

formularz();

}

?>
CuteOne
Skoro jesteś "laikiem" w php to pora się podszkolić - tu nikt za ciebie nic nie zrobi (za takie rzeczy się płaci i to nie małe pieniądze). My , możemy cię nakierować ale brudną robotę odwalasz sam... w twoim wypadku będzie nią nauka podstaw
adziozone
Widzę ze przeznaczenie forum się zmieniło, to już nie to dawniej przez takie wpisy jak Twój.
Lepiej by to wyglądało jak byś napisał „Ja jestem zbyt leniwy, aby Ci pomóc”

Wielki dzięki za pomoc.
peter13135
A Ty jesteś zbyt leniwy, żeby choćby poprawnie sformatować kod php (wrzucić go między tagi php) smile.gif.

Sprawdzić, czy pole zostało wypełnione, możesz za pomocą funkcji
Kod
empty()


robisz sobie więc warunek
  1. if(empty($_POST['pole_formularza'])) {echo 'jakies tam pole nie zostalo wypelnione'}
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.