Pokaż wyniki 1 do 6 z 6

Temat: Funkcja isset w php, formularz

  1. #1
    Zarejestrowany
    May 2010
    Postów
    7

    Domyślnie Funkcja isset w php, formularz

    Kod html:
    <html>
    <head>
    <title>Dodawanie skladników</title>
    </head>
    <body>
    
    <?php
    
    include("baza.php");
    
    $nazwa = addslashes(htmlspecialchars($_POST['nazwa']));
    $jednostka = addslashes(htmlspecialchars( $_POST['jednostka']));
    $stan = addslashes(htmlspecialchars($_POST['stan']));
    
    $q = "INSERT INTO skladniki SET nazwa = '$nazwa', jednostka = '$jednostka', stan = '$stan'";
    $r = mysql_query($q);
    ?>
    
    <?php
    if ( isset ($nazwa)) && ( !empty( $nazwa ))  //drugą wersje mam taką: if ( isset ($_POST['nazwa']) && ( !empty($_POST['nazwa'] )) {
    {
    echo("<br>");
    echo ("Wprowadzenie danych powiodło się!");
    }
    ?>
    
    
    
    <form method="post" action="dodaj_skladniki.php">
    Nazwa: <input type="text" name="nazwa">
    Jednostka miary: <input type="text" name="jednostka">
    Stan:<input type="text" name="stan">
    <input type="submit" value="Dodaj">
    </form>
    </body>
    </html>
    Czy w taki sposób mogę stosować funkcję isset żeby sprawdzić czy w formularzu podano nazwę lub czy pole nie jest puste?
    Ciągle mam błąd w 20 lini, nie mogę sobie poradzić

  2. #2
    mijagi jest offline mijagi.eu
    Zarejestrowany
    Oct 2009
    Skąd
    Poland
    Postów
    59

    Domyślnie

    isset zwróci prawdę, gdy ktoś puści tą zmienną do skryptu (czyt. wyśle nawet pusty formularz)
    !empty zwróci prawdę, gdy zmienna nie będzie pusta, nie wiem za bardzo co chcesz, ale tutaj starczy samo !empty($costam)
    Ostatnio edytowane przez mijagi : 05-22-2010 - 21:08

  3. #3
    Zarejestrowany
    Jan 2009
    Postów
    230

    Domyślnie

    mozna tez sprawdzac dlugosc ciagu wpisanego w formularzu:

    PHP: strlen - Manual

    Kod:
    if(strlen($_POST["form_str"])<3)
    zabiera to duzo wiecej zasobow niz @up.


  4. #4
    Zarejestrowany
    Sep 2006
    Postów
    1,227

    Domyślnie

    nawiasy pomieszałeś:
    Kod php:
    if ( isset ($nazwa)) && ( !empty( $nazwa )) 
    po pierwszym isset zamykasz if'a
    Kod php:
    if(isset($nazwa) && !empty($nazwa)) 
    Co do pytania: isset i !empty załatwia sprawę. Sugeruję zdeklarować funkcję, bo często będziesz z tego korzystał.
    Ostatnio edytowane przez Mad_Dud : 05-23-2010 - 15:52

  5. #5
    Zarejestrowany
    Nov 2009
    Postów
    643

    Domyślnie

    Jaki błąd?

    Bo jeśli 'undefinied variable', to powinieneś dać:

    Kod php:

    if ( @isset($nazwa) ) 
    lub

    Kod php:

    error_reporting
    (^ E_WARNING);

    if ( isset(
    $nazwa) ) 
    światło mądrości oświetla drogę z nikąd do nikąd

  6. #6
    Zarejestrowany
    Nov 2009
    Postów
    643

    Domyślnie

    sorki, wygłupiłem się...

    Kod php:

    if ( @isset($nazwa) ) 
    TO JEST BŁĘDNIE NAPISANY KOD

    funkcja isset() nie wywali ostrzeżenia nawet jeśli zmienna nie jest zadeklarowana
    nie należy nigdy stawiać @ przed isset(), to wyłącznie spowalnia program..
    isset() to jedyny sposób na testowanie czy zmienna jest zadeklarowana, należy go stosować wszędzie gdzie istnieje szansa, że zmienna nie jest zadeklarowana..

    Kod php:

    echo isset($var) ? $val ''
    jest szybsze niż jakakolwiek inna konstrukcja, przykładowo popularne:

    Kod php:

    echo @$var
    bez względu na ustawienia error_reporting


    P.S
    Szybsze w php 5.2 pod windowsem, może inne wersje pod inne platformy mają to inaczej zoptymalizowane, lecz wątpie.
    Ostatnio edytowane przez lame : 01-18-2011 - 00:26
    światło mądrości oświetla drogę z nikąd do nikąd

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj