overovanie po odoslani formularu len cisla...

Programovacie jazyky, rady, poradňa...
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

overovanie po odoslani formularu len cisla...

Príspevok od používateľa eror »

Kód: Vybrať všetko

if(0>=$_POST['podmienka']) {
takýmto jednoduchým spôsobom overím či uživateľ zadal číslo ak však zadá písmeno vyhodí sa hláška za else...
Je nejaky jednoduchsi sposob overenia ci uzivatel zadal cislo? samozrejme v php
xadman
Medium Star
Medium Star
Príspevky: 305
Registrovaný: 09 mar 2011, 17:02

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa xadman »

Možno tak, že na clientside dáš kúsok javascriptu, a do inputu sa nebude dať nič iné zapísať, iba číslo
http://jsfiddle.net/viralpatel/nSjy7/
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa eror »

xadman napísal:Možno tak, že na clientside dáš kúsok javascriptu, a do inputu sa nebude dať nič iné zapísať, iba číslo
http://jsfiddle.net/viralpatel/nSjy7/
no moc by som do toho javascript nechcel vkladat... mne ide skor o to aby az po odoslani sa overila premena ci obsahuje cislo ak obsahuje cislo tak pusti script ak obsahuje znaky a pismena tak sa vyhodi hlaska to sa da urcite aj cez php ak niekto poznate tu funkciu tak mi ju prosim napiste dakujem
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa S-player »

Numline1
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 858
Registrovaný: 04 dec 2006, 18:04

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa Numline1 »

xadman napísal:Možno tak, že na clientside dáš kúsok javascriptu, a do inputu sa nebude dať nič iné zapísať, iba číslo
http://jsfiddle.net/viralpatel/nSjy7/
Vypnem si JavaScript a mas po cislach. Zle riesenie, nikdy nic kriticke neoveruj na strane klienta.

Pouzi http://www.php.net/is_numeric pripadne si vygoogli nejaku pokrocilejsiu implementaciu.
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa eror »

ludkovia moji dakujem pozrel som to ale nechapem tomu... ja potrebujem zistit ci sa jedna o cislo alebo o pismeno... lepsie povedane potrebujem funkciu ktora mi zisti ci sa jedna o cislo a ak sa o cislo nejedna tak sa vyhodi hlaska nezadal si cislo...
pozrel som si funkciu is_int aj is_numeric ale nic take som tam nenasiel.. .

je to funkcia na zistenie ci je cislo alebo nieje? dakujem
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa *****HERO***** »

odpoved na tvoj problem tu uz mas aj v PHPcku, aj v JS

is_int() ti vrati, ci typ premennej je integer
is_numeric() ti vrati, ci hodnota premennej je validne cislo
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa S-player »

Čo si nenašiel? Nevieš základy AJ? "if" "is_numeric"?
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa eror »

Kód: Vybrať všetko

<?php
$strings = array('a', '2', '?');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo " $testcase  je cislo";
    } else {
        echo "$testcase nie je cislo...";
    }
}
?>
a co toto sluzi to na to aby mi zistilo ci je cislo a ci nieje cislo.?
nasiel som to tu
http://uk3.php.net/manual/en/function.ctype-digit.php
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa *****HERO***** »

to sluzi presne na to, ako to je napisane v manuale, co si sem postol
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa pcsiete »

eror napísal:ludkovia moji dakujem pozrel som to ale nechapem tomu... ja potrebujem zistit ci sa jedna o cislo alebo o pismeno... lepsie povedane potrebujem funkciu ktora mi zisti ci sa jedna o cislo a ak sa o cislo nejedna tak sa vyhodi hlaska nezadal si cislo...
pozrel som si funkciu is_int aj is_numeric ale nic take som tam nenasiel.. .
  • is_numeric - vráti true ak je v premennej buď číslo, alebo reťazec obsahujúci číslo (aj desatinné s exponentom)
  • is_int - vráti true ak je premenná uložená ako celé číslo
  • ctype_digit - vráti true ak je každý znak v premennej ktorá je reťazcom v rozsahu 0 až 9.
is_int môže na 32-bitových systémoch vracať false už aj pri číslach väčších ako PHP_MAX_INT (2,147,483,647), pretože je to pamäťová reprezentácia, čo rozhoduje.
ctype_digit môže vrátiť true aj v prípade celého čísla uloženého ako float, ktoré sa volaním prekonvertuje na reťazec
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa Michaelo »

Toto používam pomerne dlho a funguje bezchybne.

Toto si hoď niekde do core alebo na začiatok toho súboru v ktorom je IF podmienka.

Kód: Vybrať všetko

function isnum($value) {
	if (!is_array($value)) {
		return (preg_match("/^[0-9]+$/", $value));
	} else {
		return false;
	}
}
potom

Kód: Vybrať všetko

if(isnum($_POST['podmienka'])) {
	blablabla
}else{
	blablabla
}
Ps.: Ak chceš používať desatinné čísla tak:

Kód: Vybrať všetko

return (preg_match("/^\d+(?:[\.\,]\d+)?$/", $value));
pcsiete
Medium Star
Medium Star
Príspevky: 413
Registrovaný: 07 dec 2012, 18:47

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa pcsiete »

Regex na overovanie pár znakov? Naozaj?
Michaelo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6177
Registrovaný: 16 júl 2008, 20:29
Bydlisko: Pri PC
Kontaktovať používateľa:

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa Michaelo »

Tak ak nechape built in funkciam?
+ sa tym moze naucit pouzivat regex a upravit ho na overovanie cohokolvek. Teda rozdielnych znakov a ich kombinacii, nie len cisiel.

Ja to pouzivam lebo som si na to zvykol uz davno a nejako som lenivy menit to na weboch co som robil :D
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa S-player »

Aký význam má riešiť niečo také keď PHP ponúka vyššie uvedené funkcie? Totálna zbytočnosť.
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa eror »

takze v podstate som to vyriesil tymto... mozete lock...

Kód: Vybrať všetko

<?php
$strings = array('a', '2', '?');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo " $testcase  je cislo";
    } else {
        echo "$testcase nie je cislo...";
    }
}
?>
*****HERO*****
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2446
Registrovaný: 08 máj 2006, 1:34

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa *****HERO***** »

nevyriesil, pouzi normalne is_numeric(), neviem co tu este riesis

funkciou ctype_digit() ti neprejdu mimo ine ani desatinne cisla a nikde tu nepises, ze chces validovat iba cele cisla.
Numline1
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 858
Registrovaný: 04 dec 2006, 18:04

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa Numline1 »

Hlavne ti prejde aj cislo vacsie ako to, ktore si realne schopny ulozit (to by sa ti nestalo pri is_int()). Robota za vsetky drobne.
eror
Medium Star
Medium Star
Príspevky: 457
Registrovaný: 16 nov 2008, 14:19
Bydlisko: GA

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa eror »

Michaelo napísal:Toto používam pomerne dlho a funguje bezchybne.

Toto si hoď niekde do core alebo na začiatok toho súboru v ktorom je IF podmienka.

Kód: Vybrať všetko

function isnum($value) {
	if (!is_array($value)) {
		return (preg_match("/^[0-9]+$/", $value));
	} else {
		return false;
	}
}
potom

Kód: Vybrať všetko

if(isnum($_POST['podmienka'])) {
	blablabla
}else{
	blablabla
}

Ďakujem funguje to ďakujem moc pekne :-) inak len tak by ma zaujimalo toto je spravne?

Kód: Vybrať všetko

function isInteger($input){
  return preg_match('@^[-]?[0-9]+$@',$input) === 1;
}

Kód: Vybrať všetko

if(isInteger($_POST['nick'])) {
   echo "yes";
}else{
   echo "no";
}
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: overovanie po odoslani formularu len cisla...

Príspevok od používateľa Everhard »

eror citas vobec co ti pisu ostatni? pouzi

Kód: Vybrať všetko

if(is_numeric($_POST['podmienka']))
{
//je cislo
}
else
{
//nie je cislo
}
Napísať odpoveď