Spracovanie a kontrola rozsiahlejších formulárov – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Spracovanie a kontrola rozsiahlejších formulárov – PHP – Fórum – Programujte.comSpracovanie a kontrola rozsiahlejších formulárov – PHP – Fórum – Programujte.com

 

Tocimanko0
Grafoman
12. 6. 2008   #1
-
0
-

Ahojte.

Potreboval by som radu. Zrejme ma čaká zostavenie obrovského formuláru (desiatky položiek, inputov, selectov a pod.) a keby som to mal všetko rućne kontrolovať a spracovávať premennú po premennej, asi by ma šľak trafil. Nepoznáte niečo efektívnejšie a rýchlejšie?

Inak aké máte skúsenosti so šablónovým systémom Smarty? Len zisťujem skúsenosti a názory.

Ďakujem.

Nahlásit jako SPAM
IP: 195.91.82.–
hrach
~ Redaktor
+1
Boss
12. 6. 2008   #2
-
0
-
Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
Tocimanko0
Grafoman
12. 6. 2008   #3
-
0
-

To hrach : Óóó, díky, Hrachu! Vyzerá to zaujímavo. Skúsim si z toho niečo vziať. Predsa ale keď sa nájde niekto, kto si myslí, že to vie lepšie a efektívnejšie, budem nesmierne vďačný, keď to sem "švacne" :)

Ďakujem!

Nahlásit jako SPAM
IP: 195.91.82.–
survik1
~ Moderátor
0
Posthunter
12. 6. 2008   #4
-
0
-

To Tocimanko : Osobně v obsáhlém množství proměnných preferuji to házet do polí.

Nahlásit jako SPAM
IP: 89.102.163.–
Život je jen hra, která se nedá vyhrát.
Tocimanko0
Grafoman
12. 6. 2008   #5
-
0
-

To survik1 : http://www.prenocuj.sk/index.php?s=add_object Mám spraviť niečo v tomto zmysle. Takmer to isté... Sú dve možnosti:
1. ja sa asi zabijem :smile10:
2. na základe Hrachovho HáEfka sa skúsim problémom prekúsať.

Budem najskôr upravovať Drupal vlastným potrebám. Má to byť kompletne databázová aplikácia o ubytovaní s interakciou užívateľov. Viac si myslím nie je potrebné dodávať.

Nahlásit jako SPAM
IP: 195.91.82.–
netman920
Super člen
12. 6. 2008   #6
-
0
-
Nahlásit jako SPAM
IP: 195.91.54.–
Tocimanko0
Grafoman
12. 6. 2008   #7
-
0
-

To netman92 : Ty zdravý??? :D Čítaj pozorne.. Zadávateľ chce ale niečo podobné.. V podstate skoro to isté :'( Uvažujem o bode jedna :D :D :D

Nahlásit jako SPAM
IP: 195.91.82.–
13. 6. 2008   #8
-
0
-

Nemas prijimat zakazky na ktere nemas ;)

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
netman920
Super člen
13. 6. 2008   #9
-
0
-

To Tocimanko : to som myslel iba zo srandy
To CommanderZ : suhlas :)

Nahlásit jako SPAM
IP: 195.91.54.–
Nefaritus
~ Redaktor
+2
Posthunter
13. 6. 2008   #10
-
0
-

Řešil bych to objektem...udělal si objekt na kontrolu a pak už ho jen volal...

Nahlásit jako SPAM
IP: 213.191.111.–
Tocimanko0
Grafoman
13. 6. 2008   #11
-
0
-

To CommanderZ : To netman92 : To sa zvláda ;) Nič nie je nemožné. Len ten rozsah ma trochu zaskočil...
To Nefaritus : Trošku moc všeobecne si to napísal :D Ako si to myslel?

Nahlásit jako SPAM
IP: 195.91.82.–
toka0
Stálý člen
13. 6. 2008   #12
-
0
-

To Nefaritus : No jo, ale porad ho budes muset zavolat na kazdy vstup od uzivatele :smile1:

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
13. 6. 2008   #13
-
0
-

Ja si kdysi v jednom projektu kde jsem musel take kontrolovat hodne udaju udelal takovou funkci:



function check ($type,$string,$param1=false,$param2=false){
if($type=="strlen")
{
if(strlen($string)<$param1)return false;
else if (strlen($string)>$param2)return false;
return true
}
if($type=="mail")
{
if(!ereg("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$",$string))return false;
return true;
}
if($type=="alnum")
{
if(!ereg("^[[:alnum:]]*$",$string))return false;
return true;
}
}

da se to pouzivat hromadne metodou ctrl c ctrl v. Pak uz jen udelas neco takoveho (pseudokod)


chyba="";
if(!isset(policko1) || !check(policko1,4,10)) chyba.="Chybna delka policka 1\n"'
if(!isset(policko2) || !check(policko2,4,10)) chyba.="Chybna delka policka 2\n"'

if(chyba) echo "GAME OVER ".nl2br(chyba);

dal zpracovat, ulozit atd.

Da se to rozsirit na jakykoliv druh kontroly dat a je to jen jeden jednoduchy radek na jednu kontrolu. Na ty hrozne tabulky stejne ale budes muset pres cykly.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
toka0
Stálý člen
13. 6. 2008   #14
-
0
-

Ja jsem kdysi udelal neco takovehoto:

/**

* Check input element according regular expressions
*
* Function for checking user input according regular expressions
*
* @param string e id of XHTML element with user input
* @param string type type of regular expression (mail, name, phone or text)
* @return bool
*/
function checkInput(e, type) {
var input = document.getElementById(e);
var pattern;
var advArr;
var subPattern;
var advCount = 0;
var result;
switch(type) {
case 'mail' :
pattern = /\w+@\w{1,}\u002e\w{2,}/;
subPattern = /@/g;
break;
case 'name' :
pattern = /[^ ]+\s.*/;
break;
case 'phone' :
pattern = /\+\d{12}$/;
break;
case 'text' :
break;
default :
return false;
break;
}
switch(type) {
case 'mail' :
while((advArr = subPattern.exec(input.value)) != null) advCount++;
if(advCount == 1) result = pattern.test(input.value);
else result = false;
break;
case 'text' :
if(input.value.length > 0) result = true;
else result = false;
break;
default :
result = pattern.test(input.value);
break;
}
return result;
}

/**
* Change element style
*
* Function for changing element style in case of bad value
*
* @param string e id of XHTML element with user input
* @return null
*/
function badField(e) {
var input = document.getElementById(e);
input.style.borderColor = '#FF0000';
input.onfocus = function() {this.style.borderColor = '#000000';}
}


/**
* Check form
*
* Function for checking whole form before sending to server
*
* @return null
*/
function checkForm() {
var result = true;
if(!checkCaptcha('captcha', 'hash')) {
badField('captcha');
result = false;
}
if(!checkInput('mail', 'mail')) {
badField('mail');
result = false;
}
if(!checkInput('name', 'name')) {
badField('name');
result = false;
}
/*
if(!checkInput('phone', 'phone')) {
badField('phone');
result = false;
}
*/
if(!checkInput('body', 'text')) {
badField('body');
result = false;
}
if(!result) {
document.getElementById('error').style.display = 'block';
}
return result;
}


A pak vlastne das na submit button toto:
onclick="if(checkForm()) return true; return false;"

Nahlásit jako SPAM
IP: 86.61.165.–
Tomáš Kavalek
13. 6. 2008   #15
-
0
-

To je ale jenom JS, to ti moc nepomuze, tomu PHP se stejne nevyhnes

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
survik1
~ Moderátor
0
Posthunter
14. 6. 2008   #16
-
0
-

Tak např. pro ty checkboxy



$pole = $_POST['pole'];

foreach ($pole as $p => $key) {
if ($key == true) {
$p1 = mysql_escape_string($p);
$db_query .= "$p1 = 'Y' ";
}
}

$db_result = mysql_query("insert into xxx values ($db_query)");

if (!$db_result) {
//napr. pozadovany sloupec neexistuje; nemusi te to moc trapit kvuli escapovani znaku...
echo "chyba";
}


Nahlásit jako SPAM
IP: 89.102.163.–
Život je jen hra, která se nedá vyhrát.
hrach
~ Redaktor
+1
Boss
14. 6. 2008   #17
-
0
-

hm, tak samozrejme vsechny tyto validace a mnohem vice ma to haefko... :smile1:

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
Tocimanko0
Grafoman
14. 6. 2008   #18
-
0
-

To hrach : O tom som nikdy nepochyboval ;)

Nahlásit jako SPAM
IP: 195.91.82.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 63 hostů

Podobná vlákna

Spracovanie DB — založil Anonymní uživatel

Spracovanie suboru — založil rAdo

Skvelé spracovanie hry — založil 1.maros2805

Tvorba mapy a jej spracovanie — založil Eversmann

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý