DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Obrada gresaka prilikom unosa od strane posetioca (http://www.devprotalk.com/showthread.php?t=7520)

Bojsi 24. 05. 2009. 02:50

Obrada gresaka prilikom unosa od strane posetioca
 
Pozdrav,

Vec neko vreme imam problem u vezi obrade gresaka nastalih prilikom unosa od strane posetioca.

Do sada sam radio to na sledeci nacin:

Kada korisnik popuni polja i klikne na Submit, obicno se procesira fajl tipa actions.php gde se validiraju vrednosti polja za unos i onda se ili pojave greske ili se nastavlja sa obradom (recimo korisnik se loguje na sajt).

Zanima me kako da u slucaju da ima gresaka se "vratim" na stranu gde se vrsio unos i plus pokazem koje greske su se pojavile. Nadam se da me razumete. Pored polja bih napisao koja greska je nastala i eventualno obojio taj tekst crvenom bojom.

Uspeo sam da napravim da se greske "prenose" preko URL-a, ail nazalost ne mogu da saljem niz sa greskama preko URL-a jer koristim .htacces da napravim "lepe" URL-ove.

Da li imate predlog kako ovo resiti, mozda nesto moze preko $_POST-a i sl.

Mogao bih nesto da uradim preko Ajax-a, tj. ne bih ni napustao stranicu u tom slucaju, ali onda mi nastaje problem kada neko nema podrsku za Ajax. Mogu da otvorim stranicu koja ce prikazivati Greske, ali mi se cini da je dosta intuitivnije da se vratim na stranicu unosa i tu prikazem greske, da korisnik odmah moze da ih ispravlja.

Pozdrav i hvala!

Gargoyle 24. 05. 2009. 03:32

Koristi sesije da "zapamtiš" vrednosti između stranica.

Bojsi 24. 05. 2009. 03:54

Hvala na odgovoru, ali brine me sta ce biti ako podrska za sesije nije ukljucena.

Hvala jos jednom

Gargoyle 24. 05. 2009. 06:15

Pa, vidi, server na kome nije uključena podrška za sesije je jedan vrlo jadan server. Uglavnom to je uključeno u 99,99% slučajeva.

misk0 24. 05. 2009. 11:20

A mozes komotno racunati da velik broj korisnika ima ukljucen Javascript (precizni podaci zavise do vrste stranice i karaktera posjetioca, ali mozes racunati na 99%), tako da ti je AJAX rjesenje potpuno izvedivo.

Bojsi 24. 05. 2009. 14:01

Nekako su mi sesije i Ajax nesigurni, ako me razumete. Kakav sistem vi koristite u Vasim projektima?

Hvala jos jednom.

bOkIcA 24. 05. 2009. 14:16

Za tebe simple primer. :)
Na ovaj nacin istu stranicu mozes da koristis i za edit podatka iz baze kao i za unos novog.

PHP kôd:

<?php

    $ime 
"";
    
$email "";
    
$error false;
    
$sve_proslo_ok false;

    
// ako je uradjen submit
    
if (isset($_POST['submited']) && $_POST['submited']) {

        
$ime trim($_POST['ime']);
        
$email trim($_POST['email']);

        
// provere
        
if (strlen($ime) < 3)
            
$error[] = "Ime mora da bude duze od 3 karaktera.";
        if (!
is_email($email))
            
$error[] = "Morate uneti pravilnu email adresu";

        
// ako nema gresaka snima se u bazu i potom se npr radi redirekcija
        
if ($error === false) {
            
$message "Svi podaci su pravilno uneti.";
            
$sve_proslo_ok true;
            
// ovde moze redirect + exit();
        
}

    }


    
// ispis gresaka
    
if ($error !== false)
        foreach(
$error as $err)
            echo 
"<p>$err</p>\r\n";

?>
<?php 
if (!$sve_proslo_ok) { ?>
    <form method="post" action="<?=$_SERVER['PHP_SELF']?>">
        Ime: <input type="text" name="ime" value="<?=$ime?>"><br>
        E-mail: <input type="text" name="email" value="<?=$email?>"><br>
        <input type="submit" value="Submit">
        <input type="hidden" name="submited" value="1">
    </form>
<?php } else { ?>
    <p><?=$message?></p>
<?php ?>


Bojsi 24. 05. 2009. 14:20

Hvala,

Koliko sam razumeo isti fajl crta stranicu, plus obradjuje podatke. Pokusacu sa tim.

Ukoliko ima jos ideja, slobodno pisite :)

Hvala jos jednom.

bOkIcA 24. 05. 2009. 14:26

Deo koji obradjuje podatke uvek mozes da izdvojis pa ga inkludujes.

Bojsi 24. 05. 2009. 16:07

Jos uvek nisam proverio, ali me brine da ce se nakon redirekta, pojaviti "obican" url poput login.php umesto login.htm (preko httacess-a).

Moracu nesto jos da smislim, mozda i da te login.php i sl. stranice ne provlacim kroz httacess?

Pozdrav


Vreme je GMT +2. Trenutno vreme je 17:35.

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.