Pokaż wyniki 1 do 6 z 6

Temat: Funkcja isset w php, formularz

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    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
    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

    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. 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

    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

    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