Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> formularz - isset
KoPcIu
post 25.12.2008, 23:10:31
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 23.10.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował KoPcIu 25.12.2008, 23:19:45
Go to the top of the page
+Quote Post
flashdev
post 25.12.2008, 23:13:44
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Kod
isempty($string)





isset sprawdza czy zmienna istnieje, a w Twoim przypadku istnieje i zawiera ciąg pusty.


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 25.12.2008, 23:18:49
Post #3


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




Cytat(flashdev @ 25.12.2008, 23:13:44 ) *
Kod
isempty($string)



jak już coś to empty


--------------------
Go to the top of the page
+Quote Post
KoPcIu
post 25.12.2008, 23:40:29
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 23.10.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
piotrooo89
post 25.12.2008, 23:44:22
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  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?


--------------------
Go to the top of the page
+Quote Post
bartg
post 26.12.2008, 00:54:09
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

Ostrzeżenie: (0%)
-----


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

Ten post edytował bartg 26.12.2008, 00:56:22


--------------------
Go to the top of the page
+Quote Post
1010
post 26.12.2008, 02:04:06
Post #7





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


  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ć


--------------------
Go to the top of the page
+Quote Post
gcdreak
post 27.12.2008, 22:01:04
Post #8





Grupa: Zarejestrowani
Postów: 365
Pomógł: 8
Dołączył: 16.12.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.06.2024 - 09:26