Autor Zpráva
ra100
Profil *
...mi robí problémy.
Po overení prišlých dát z formuláru -
if(isset($_POST['send']) and empty($_POST['nazov']))

v prípade prázdnej premennej
$_POST['nazov']
sa mi zobrazí výstraha na práve túto prázdnu premennú.
No vo chvíli, keď kliknem raz, alebo viac krát medzerníkom do príslušného imput-u, overovanie
..empty($_POST['nazov'])...
prestáva pracovať správne.
Doteraz som sa s tým nestretol a netuším kde je problém.
Ďakujem za každú cennú radu.
jenikkozak
Profil
ra100:
if(isset($_POST['send']) and empty($_POST['nazov'])) = česky: Je-li nastavena hodnota pole $_POST[send] a zároveň pole $_POST[nazov] je prázdné. (Empty = prázdný)

(Pochopil-li jsem, oč ti jde.)
Tori
Profil
ra100:
vo chvíli, keď kliknem raz, alebo viac krát medzerníkom do príslušného imput-u, overovanie
..empty($_POST['nazov'])...
prestáva pracovať správne.
Mezera je taky znak = pole s mezerou není prázdné. Naopak pole, kam zadáte "0" se funkcí empty() vyhodnotí jako prázdné. Co třeba toto?
if (isset($_POST['nazov']) AND trim($_POST['nazov']) !== '')
edit: opravena nerovnost na ne-identitu.
CZechBoY
Profil
zkus tam přidat funkci TRIM:
If(Empty(Trim($_POST['nazov'])) echo "Nevyplnil jsi název";
ra100
Profil *
jenikkozak:
ano
ra100
Profil *
Tori:
if (isset($_POST['nazov']) AND trim($_POST['nazov']) != '')
tiež nič.
ra100
Profil *
CZechBoY:
If(Empty(Trim($_POST['nazov'])) echo "Nevyplnil jsi název";

mi hádže nasledovné Fatal error: Can't use function return value in write context in....
Nox
Profil
if( !isset($_POST['nazov']) or trim($_POST['nazov']) === '' ) echo "...";
ra100
Profil *
Skúšal som trim, všetky funkcie a includes atd. vpísať späť do kódu, pomenil som zoskupenie formulárov, kódu a stále s rovnakým výsledkom...
jenikkozak
Profil
ra100:
Co chceš vlastně ověřit? Situaci, kdy byl formulář odeslán s prázdným políčkem (pro vypsání chyby), nebo chceš naopak zjistit, že to políčko je odeslané a vyplněné?

Tori svůj příspěvek upravila. Nefunguje?

CZechBoY neuzavřel jednu závorku.
Nox
Profil
jenikkozak:

Tori testuje na pozitivitu, ra100 chce vypsat chybovou hlášku... napsal jsem obrácenou podmínku

CZechBoY má kód špatně, protože empty z principu může přijmat jen proměnné

dokonce je tam příklad právě s "trim":
empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).
ra100
Profil *
Nox:
Ďakujem, odrazu sa to rozbehlo, túto kombináciu ma nenapadlo vyskúšať )
Dodám len, že overovanie
if(isset($_POST['send']) and empty($_POST['nazov']))
na vonkajšom serveri pracuje správne, no záhadne to nepracuje na mojom domacom pc, kde skript pretavujem.
tam funguje tebou uvedený skript.
Nechápem, prečo je to tak, no aspoň to funguje bez problémov )
Eśte raz ďakujem všetkým.
Nox
Profil
ra100:
Na tom serveru's to možná nesprávně aktualizoval, tahle verze neTRIMuje
ra100
Profil *
Nox: Sorry. Nefunguje. Musím zmeniť podmienku
if( !isset($_POST['nazov'])...
na
if(isset($_POST['nazov']...
Po odhlásení a znovu prihlásení mi nedoručený
if( !isset($_POST['nazov'])..
vykonáva práve to, čo by sa malo diať po odoslaní prázdnej premennej.
..a som tam, kde som bol.
ra100
Profil *
...pôvodný skript vonku je
if(isset($_POST['send']) and $_POST['nazov'] == '')
nema problém z medzerníkom.
na domácom pc to nepracuje...
tak asi neaky upgrade serveru ?
ra100
Profil *
---zabudol som tam dodať ten trim
ra100
Profil *
Nox:
verzia php je •Php 5.2.13
Nox
Profil
Tak chceš aby ta podmínka prošla když není to vyplněno ([#13]) nebo když je ([#3])?

Bude asi lepší poslat větší kus skriptu, jestli nebude spíš problém jinde
ra100
Profil *
Nox:
Potrebujem overiť - ak bol sláčený (odoslaný) submit send vo formulári a zároveń s ním prišiel prázdny imput nazov -
if(isset($_POST['send']) and trim($_POST['nazov']) =='')

tak sa zobrazí ďaľší formulár z výzvou na vyplnenie input nazov
posielam zjednodušený skript
- prvý formulár, z ktorého overujem vyššie vzpomenutý skript -
    function add($add) {
            print '<form action="'.$_SERVER['PHP_SELF'].'" method="post" id="form_add">
        <p id="p_add"><span class="span_add">Nový záznam</span><span class="span_add1"><a href="'.$_SERVER['PHP_SELF'].'" title="zruš">zatvor formulár X</a></span></p>
        <input type="hidden" name="add" readonly />
        <span class="add">názov :  </span><br /> 
        <input type="text" name="nazov" class="input_add" /><br />       
         ...       
        <input type="submit" value=" oodošli >> " class="submit_add" name="send" />
        </form>';
        exit();
        }

ak prišiel submit send z tohto formuláru a s ním prázdna premenná $_POST['nazov'
objaví sa tento skript -
        function add_no_name() {
        //$nazov = trim(htmlspecialchars($_POST['nazov']));
        ...
        print '<form action="'.$_SERVER['PHP_SELF'].'" method="post" id="form_add">
        <p id="p_add"><span class="span_add">Nový záznam</span><span class="span_add1"><a href="'.$_SERVER['PHP_SELF'].'" title="zruš">zatvor formulár X</a></span></p>
        <input type="hidden" name="add1" readonly />
        <span class="add_nazov_allert">Názov musí byť vypísaný !</span><br />
        <span class="add">názov :  </span><br /> 
        <input type="text" name="nazov" class="input_add" /><br />
                <input type="submit" value=" oodošli >> " class="submit_add" name="send" />
        </form>';
        exit();
        }

a tak dookola, kým je
input nazov
prázdny.
Keď kliknem do inputu a nepoužijem medzerník, overovanie je ok, s medzerníkom je overovenie nepoužiteľné.
ra100
Profil *
Nox:

Pre zpresnenie -
add($add);

a potom overenie -
if(isset($_POST['send']) and $_POST['nazov'] == '') {
add_no_name();
}
Nox
Profil
<?php
// neodesláno
if( empty($_POST['send']) )
    add($add);
// odesláno, ale nevyplněno
elseif( ! empty($_POST['send']) and ! isset($_POST['nazov']) or trim($_POST['nazov']) === '' )
    add_no_name();
// odesláno a vyplněno
else
    /* nějaké zpracování */
?>


možná bys ale mohl přemyslet použití těch hlašek, protože mít spešl funkci obsahující celý formulář pro každou hlášku... to pak musí být i kombinace a to bude ifů a funkcí že....

šlo by prostě mít formulář a do něj jen vepsat zadané hlášky
ra100
Profil *
...tak som to vyriešil nasledovne -
využil som
<input type="hidden" name="add" readonly />
a
<input type="hidden" name="add1" readonly />

nasledovne -
if(isset($_POST['add']) or isset($_POST['add1']) and trim($_POST['nazov']) == '' ){
            add_no_name();
            
        } else {}

medzerník už nieje problémom...)

Ešte raz ďakujem všetkým zainteresovaným )
ra100
Profil *
Nox:
...možná bys ale mohl přemyslet použití těch hlašek, protože mít spešl funkci obsahující celý formulář pro každou hlášku...
Naštastie nie...dôležitý je len názov, keď sa rozhodneš otvoriť novy formulár, tak ak ho celý nevyplníš, nič sa nedeje, uloží sa len to, čo si stihol. A ak sa to rozhodneš celé uložiť, tak práve názov je dôležitý.
Ďaľší obsah pod názvom môžeš editovať neskôr.
Tvoja konštrukcia je dobrá.
Ďakujem za radu.

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:

0