DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Obrada korisnickih gresaka (http://www.devprotalk.com/showthread.php?t=6450)

Bojsi 14. 10. 2008. 15:35

Obrada korisnickih gresaka
 
Pozdrav,

Zeleo bih da cujem savete kako da procesuiram korisnicki input i onda se automatski vratim na tu istu stranicu ali sa prikazom svih gresaka nastalih po unosu.

Primer:

Imam 3-4 input polja i zelim da nakon klika na dugme Submit procesuiram input(e) u posebnom fajlu.

Problem nastaje sto kada otvori tu stranu, proveri sve inpute i pojave se greske prilikom unosa, on ostaje na toj stranici.

Kada dodje do gresaka, ja bih najradije (ako je moguce) otvorio onu stranicu sa input poljima i negde (ili cak pored polja za unos) napisao u cemu je greska.

Postoji mi solucija da imam jednu Error page na kojoj ce pisati koje greske su nastale, ali mi je to pomalo zastarelo. Isto tako moram napomenuti da koristim HTTACESS fajl da malo ulepsam linkove tako da i tu gubim soluciju da preko URL-a saljem podatke o greskama pri unosu.

Pozdrav i hvala na savetima

mileusna 14. 10. 2008. 15:53

Možeš da procesiranje i prikaz forme radiš kroz isti skript, praktično neka action za FORM ide na samog sebe.

Ukoliko je ulaz dobar, procesuiraš sve i redirektuješ na stranicu koja ide posle formulara.

Ukoliko unos nije dobar prikazaće se ista forma, samo pored ispisuješ i poruke o greškama, values puniš sa onim što si primio kroz $_POST i to je to...

cvele 14. 10. 2008. 16:01

Strpaj u conf nesto kao:
PHP kôd:

$sess = &$_SESSION['sess'];

if (!
defined('NOTRACK'))
{
    
$sess->prev_url $sess->current_url;
    
$sess->current_url $_SERVER['REQUEST_URI'];


Pa koristi header("Location:{$sess->prev_url}"); da se vratis na prethodnu stranicu.
Takodje u recimo $sess->err obj mozes da punis greske u neki arr, a na formi ih ispisuj ako postoje.

Ako ne zelis da ti se neka strana registruje kao prev url (recimo neki korak u formi isl) samo na njenom vrhu (pre conf-a) kazes define('NOTRACK', false);

ivanhoe 14. 10. 2008. 17:19

mislim da je bolje resenje da svaka forma submituje na samo sebe, pa ako ima gresaka pokaze opet formu sa greskama, a ako je sve u redu snimi sta treba (u session ili bazu) pa redirektuje na sledecu stranu po redu..

moze naravno i jedan i drugi pristup, ali ovako ti je i forma i kod koji je obradjuje direktno povezan, pa ce ti biti lakse kad budes menjao nesto u formi da izmenis i prateci kod... imati izdvojenu centralizovanu obradu formi je super, ali samo ako je potpuno nezavisna od izgleda formi, inace je pain in the ass da je stalno azuriras kad promenis nesto u bazi..

Bojsi 14. 10. 2008. 18:26

Hvala na pomoci,

Pokusacu sa action=stranica odakle je submit. Mada cu se zamisliti i kod predhodnih komentara.

Pozdrav

mangia 14. 10. 2008. 18:56

^^^ Time dobijas i jako korisnu stvar da vratis nazad sadrzaj polja koja su ispravna a nuliras ona koja nisu ...

Kasnije moze i pres*** sa bojama oko pogresnog polja ili da iskoci teta koja nosi grudnjak velicine 4-5 i kaze gdje si pogrijesio...

misk0 14. 10. 2008. 19:16

A sta je sa JS provjerom gresaka? Mislim da je doslo vrijeme da se moze JS smatrati kao requirement.

Gargoyle 14. 10. 2008. 19:26

Citat:

A sta je sa JS provjerom gresaka? Mislim da je doslo vrijeme da se moze JS smatrati kao requirement.
Pa nije potpuno upotrebljivo, sto znaci da ne mozes SVE greske tako da uhvatis. A i moguce ga je zaobici. Npr. jedino server-side mozes da proveris da li je username vec registrovan u DB, i sl.

mangia 14. 10. 2008. 19:28

ja sam koristio neke ali sam cesto nailazio na probleme sa kompat. na razlicitim browserima.

Mada sama ideja je dobra i koristim je kada god mogu...

misk0 14. 10. 2008. 19:33

Nisam rekao da ServerSide kontrola treba biti izbacena, ali zbog user-friendly motiva djeluje mi jako korisno. Takodje uz malu pomoc Ajaxa mozes i kontrolisati unos u odnosu na bazu.

Sto se tiche kompatibilnosti mislim da je najbolje rjesenje koristiti neki do frameworka koji te probleme vecinom rjesavaju.


Vreme je GMT +2. Trenutno vreme je 06:50.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.