Autor Zpráva
lesiak307
Profil
Dobrý večer,
prosím Vás prečo to nefunguje? Prvá podmienka jednoducho nejde.

$no_meno = 0;
$no_email = 0;
$no_text = 0;
  
  if (!empty($_POST))
  {
      if(empty($meno))
      {
        $no_meno = 1;
        echo "Meno je prazdne a premenna ma hodnotu: ".$no_meno."<br>";
      }
          else{
             echo "Meno je: ".$meno.", hodnota premennej no_meno je: ".$no_meno."<br>";
          }
      if(empty($email))
      {
        $no_email = 1;
        echo "Mail je prazdy a premenna ma hodnotu: ".$no_email."<br>";
      }
          else{
             echo "Email je: ".$email.", hodnota premennej no_email je: ".$no_email."<br>";
          }
      if(empty($text))
      {
        $no_text = 1;
        echo "Text je prazdny a premenna ma hodnotu: ".$no_text."<br>";
      }
          else{
             echo "Text je: ".$text.", hodnota premennej no_text je: ".$no_text."<br>";
          }
      
      
  }
 
pcmanik
Profil
skus namiesto empty s vykricnim pouzit isset
lesiak307
Profil
skusal som, nejde
jenikkozak
Profil
lesiak307:
Hádám, že proměnná meno byla poslána formulářem. Je k ní nutno přistupovat jako k prvku pole $_POST:
if(empty($_POST["meno"]))
lesiak307
Profil
[#4] jenikkozak
Áno, to viem, ja by som skôr potreboval všeobecnú podmienku, či bolo aspoň jedno pole vo formulári vyplnené.
lesiak307
Profil
pre úplnosť:

<form action="kontrola.php" method="post">      
    <table border="0">
    <tr><td>Meno a priezvisko:</td>
        <td><input type="text" name="meno" size="40"></td></tr>
    <tr><td>Adresa:</td>
        <td><input type="text" name="adresa" size="40"></td></tr>
    <tr><td>Mesto</td>
        <td><input type="text" name="mesto" size="40"></td></tr>
    <tr><td>PSČ</td>
        <td><input type="text" name="psc" size="40"></td></tr>
    <tr><td>Telefón:</td>
        <td><input type="text" name="telefon" size="40"></td></tr>
    <tr><td>Email:</td>
        <td><input type="text" name="email" size="40"></td></tr>
    <tr><td>Text:</td>
        <td><textarea name="text" cols="50" rows="10"></textarea></td></tr>    
    <tr><td></td>
        <td style="text-align: right;"><input type="submit" value="Ddoslať"></td>
    </tr>
    </table>
  </form>


$meno = $_POST["meno"];
$adresa = $_POST["adresa"];
$mesto = $_POST["mesto"];
$psc = $_POST["psc"];
$telefon = $_POST["telefon"];
$email = $_POST["email"];
$text = $_POST["text"];

echo "Skuska<br><br>";  
$no_meno = 0;
$no_email = 0;
$no_text = 0;
  
  if (!empty($_POST))
  {
      if(empty($meno))
      {
        $no_meno = 1;
        echo "Meno je prazdne a premenna ma hodnotu: ".$no_meno."<br>";
      }
          else{
             echo "Meno je: ".$meno.", hodnota premennej no_meno je: ".$no_meno."<br>";
          }
      if(empty($email))
      {
        $no_email = 1;
        echo "Mail je prazdy a premenna ma hodnotu: ".$no_email."<br>";
      }
          else{
             echo "Email je: ".$email.", hodnota premennej no_email je: ".$no_email."<br>";
          }
      if(empty($text))
      {
        $no_text = 1;
        echo "Text je prazdny a premenna ma hodnotu: ".$no_text."<br>";
      }
          else{
             echo "Text je: ".$text.", hodnota premennej no_text je: ".$no_text."<br>";
          }
      
      
  }
Alphard
Profil
Ta podmínka je zapsaná správně. Po odeslání formuláře se ten blok musí vykonat. Pro lepší přehlednost tam dejte print_r($_POST);.

lesiak307:
$meno = $_POST["meno"];
Má tohle smysl? Nejdříve takováto samoúčelná přiřazení a až pak testujete, jestli byl formulář odeslán.
lesiak307
Profil
Takže už len to, že odošlem nevyplnený formulár je táto podmienka pravda?

lesiak307:
if (!empty($_POST))

Neviem, či tomu dobre rozumiem. S PHP robím veľmi málo...
Ako by som potom mohol skontrolovať, či nebol odoslaný prázdny, nevyplnený formulár? Ďakujem
xmark
Profil
lesiak307:
Jestli byl odeslán formulář, testuješ na ř. 14.
Ale už na řádcích 1-7 se snažíš načítat data z něj.
lesiak307
Profil
xmark:
Ale už na řádcích 1-7 se snažíš načítat data z něj.
Ma to nejaký vplyv na vyhodnotenie podmienky?
xmark
Profil
lesiak307:
Ma to nejaký vplyv na vyhodnotenie podmienky?
Nemá, jen to ukazuje nedostatek programátorského citu.

if (!empty($_POST)) jsem nikdy nezkoušel použít, nevím, jestli to může fungovat.
Testoval bych if (isset($_POST["meno"]))
Alphard
Profil
lesiak307:
Také jsem psal něco o print_r(), kdybyste mě poslechl a zamyslel se nad tím, co vidíte, tak je vám to jasné.
lesiak307
Profil
Alphard:
kdybyste mě poslechl a zamyslel se nad tím
spravil som to už vtedy ako ste mi poradili a vysledok bol:
Array ( [meno] => [adresa] => [mesto] => [psc] => [telefon] => [email] => [text] => ) 


takže po odoslaní formulára $_POST nebude nikdy "prázdny"?
lesiak307
Profil
Resp. $_POST["memo"] sa dá skontrolovať ale samotný $_POST nie?
lesiak307
Profil
xmark:
to ukazuje nedostatek programátorského citu
no, to je pravda... PHP sa zaoberám len okrajovo a ani sa nepokladám za programátora :)
lesiak307
Profil
Prosím Vás, ešte raz moja otázka:

Ako by som potom mohol skontrolovať, či bol odoslaný prázdny - nevyplnený formulár a návštevníka na to upozorniť? Ďakujem
Alphard
Profil
Sám jste si vypsal to pole. Existují tam klíče, takže pole není prázdné.

Ako by som potom mohol skontrolovať, či bol odoslaný prázdny
Kontrolovat podle jednotlivých klíčů. Teoreticky lze projít cyklem $_POST.

Zkuste prosím seskupovat své myšlenky do ucelenějších postů (lze je i editovat) a nepsat tady monolog 4 příspěvky za 10 minut.
lesiak307
Profil
ďakujem za rady, už mi je to jasne.

Alphard:
nepsat tady monolog 4 příspěvky za 10 minut.
málo miesta na serveri? :)
panther
Profil
lesiak307:
málo miesta na serveri? :)
ne, hrozba smazání druhého a každého dalšího příspěvku v řadě.

Jsi na diskusi, nikoliv na chatu. A když už máš možnost jako registrovaný své příspěvky editovat, čiň tak.
lesiak307
Profil
panther:
hej, len kľud. v noci bol spln, asi ste z toho podráždení

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: