Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz - isset
Forum PHP.pl > Forum > PHP
KoPcIu
Witam mam problem z formularzem, stworzyłem kod z isset lecz niestety nie działa tak jak powinien

Kod
<?php

$imie = trim($_POST['imie']);
$nazwisko = trim($_POST['nazwisko']);
if(isset($_POST['imie']) && $_POST['imie']=='') $blad.='- Nie podałeś swojego imienia!<br />';
if(isset($_POST['nazwisko']) && $_POST['nazwisko']=='') $blad.='- Nie podałeś swojego nazwiska!<br />';
if(isset($blad))
        {
        echo '<b>Napotkano następujące błędy:</b><br />';
        echo $blad.'<br />';
        }

if(empty($imie) and empty($nazwisko)) {
echo ' <body bgcolor="#000000" text="#FFFFFF">
<div style="position:relative">
<form action="" method="post">
<p><strong>Imię</strong>: <input type="text" name="imie" size="30" maxlength="40" style="position: absolute; left: 150px;"></p>
<p><strong>Nazwisko</strong>: <input type="text" name="nazwisko" size="30" maxlength="40" style="position: absolute; left:150px;"></p>
</div>
<input type="submit" value="Wyslij" style="position: absolute; left:150px;" />
</form>';
}

else {

$postac = "testowy tekst";

if (!@file_exists($file)) {
$file = $imie.'_'.$nazwisko.'.ini';
$fp = fopen($file, "a");
flock($fp, 2);
fwrite($fp, $postac);
flock($fp, 3);
fclose($fp);

echo "Dane zostały zapisane!<br />";

} else {
echo 'Niestety, dany login jest już zajęty! Spróbuj podać inny.';
}
}

?>


wszystko działa poprawnie tylko że jeśli nawet nie poda się np nazwiska nie poda to dane się zapisują, jak zrobić że jeśli wyskoczy komunikat to dane się nie zapiszą?

Link do testu:

http://pawno.boo.pl/testing.php

Proszę o pomoc winksmiley.jpg
flashdev
Kod
isempty($string)





isset sprawdza czy zmienna istnieje, a w Twoim przypadku istnieje i zawiera ciąg pusty.
piotrooo89
Cytat(flashdev @ 25.12.2008, 23:13:44 ) *
Kod
isempty($string)



jak już coś to empty
KoPcIu
niestety jestem początkujący w PHP i nie bardzo rozumiem, czytałem o isset ale nie znalazłem odp, czy mógł by mi ktoś pokazać to na przykładzie? Lub wy edytować ten mój kod aby przerwało i wyświetliło tylko komunikat?
piotrooo89
  1. <?php
  2. if (empty($_POST['imie']))
  3. {
  4. echo 'wpisz imie';
  5. }
  6. else
  7. {
  8. //dodawanie do pliku
  9. }
  10. ?>


co tu jest do rozumienia?
bartg
isset sprawdza czy zmienna została utworzona (czyli zapisana do ramu smile.gif), jeśli stworzyłeś pole w formularzu i wysłałeś metodą post lub get to ta zmienna się tworzy tylko ze pusta.

Jak z kartonem na mleko: isset sprawdzi czy karton istnieje (nie ważne czy pusty, byleby istniał), natomiast empty sprawdzi czy masz jeszcze mleka do płatków Nesquik firmy Nestle o pysznym czekoladowym smaku..... mniam haha.gif
1010
  1. <?php
  2.  
  3. $imie = trim($_POST['imie']);
  4. $nazwisko = trim($_POST['nazwisko']);
  5. if(isset($_POST['imie']) && $_POST['imie']=='') $blad.='- Nie podałeś swojego imienia!<br />';
  6. if(isset($_POST['nazwisko']) && $_POST['nazwisko']=='') $blad.='- Nie podałeś swojego nazwiska!<br />';
  7. if(isset($blad))
  8. {
  9.   echo '<b>Napotkano następujące błędy:</b><br />';
  10.   echo $blad.'<br />';
  11. }
  12. else
  13. {
  14.   if(empty($imie) and empty($nazwisko))
  15.   {
  16.      echo ' <body bgcolor="#000000" text="#FFFFFF">
  17.            <div style="position:relative">
  18.            <form action="" method="post">
  19.            <p><strong>Imię</strong>: <input type="text" name="imie" size="30" maxlength="40" style="position: absolute; left: 150px;"></p>
  20.            <p><strong>Nazwisko</strong>: <input type="text" name="nazwisko" size="30" maxlength="40" style="position: absolute; left:150px;"></p>
  21.            </div>
  22.            <input type="submit" value="Wyslij" style="position: absolute; left:150px;" />
  23.            </form>';
  24.   }
  25.   else
  26.   {
  27.  
  28.      $postac = "testowy tekst";
  29.  
  30.      if (!@file_exists($file))
  31.      {
  32.         $file = $imie.'_'.$nazwisko.'.ini';
  33.         $fp = fopen($file, "a");
  34.         flock($fp, 2);
  35.         fwrite($fp, $postac);
  36.         flock($fp, 3);
  37.         fclose($fp);
  38.  
  39.         echo "Dane zostały zapisane!<br />";
  40.  
  41.      }
  42.      else
  43.      {
  44.         echo 'Niestety, dany login jest już zajęty! Spróbuj podać inny.';
  45.      }
  46.   }
  47. }
  48. ?>


Dostawiasz jeden else i już..

PS: Rób sobie porządne wcięcia w kodzie. Wtedy dużo łatwiej się połapać
gcdreak
Cytat(bartg @ 26.12.2008, 00:54:09 ) *
isset sprawdza czy zmienna została utworzona (czyli zapisana do ramu smile.gif ), jeśli stworzyłeś pole w formularzu i wysłałeś metodą post lub get to ta zmienna się tworzy tylko ze pusta.

Jak z kartonem na mleko: isset sprawdzi czy karton istnieje (nie ważne czy pusty, byleby istniał), natomiast empty sprawdzi czy masz jeszcze mleka do płatków Nesquik firmy Nestle o pysznym czekoladowym smaku..... mniam haha.gif


Najbardziej w całym temacie podoba mi się ten przykład, który wyjaśnia wszystko aaevil.gif
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.