Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

smarty i resavanje forme

[es] :: PHP :: Smarty template engine :: smarty i resavanje forme

[ Pregleda: 3136 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

spezia

Član broj: 134818
Poruke: 355
*.beobug.com.



+6 Profil

icon smarty i resavanje forme11.08.2008. u 16:49 - pre 190 meseci
Zanima me nesto kod smarty klase...Imam formu za unos korisnickih podataka.
Sada mi trebaju blokovi da recimo korisnik nije uneo ime,ili to ime vec postoji u bazi,nije
potvrdio lozinku....
Ja sam to resio kao pisuci za svaku gresku
{if $error1=='username'} ... {/if}
{if $error2==;password} ... {/if}
...
i u programu
if($error[username]) $smarty->assign("error1","username");
if($error[password]) $smarty->assign("error2","password");
....
Da li smarty nudi neku pogodnost kao recimo FastTemplate klasa??
Da se to kroz petlju lakse odradi.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
*.adsl.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Re: smarty i resavanje forme11.08.2008. u 19:04 - pre 190 meseci
Iskreno, mislim da bi ti ovo bio bolji princip:

Code:

$errors = array();

//desila se greska ta-i-ta
$errors[] = "Korisnicko ime je obavezno";
...


//desila se greska ta-i-ta
$errors[] = "sifra je obavezna";
....

$smarty->assign('errors', $errors);


i u smartiju samo imas
{foreach from=$errors item=error}
{$error}<br />
{/foreach}

ili sam promasio temu? Na kakvu pogodnost tacno mislis?
 
Odgovor na temu

spezia

Član broj: 134818
Poruke: 355
*.beobug.com.



+6 Profil

icon Re: smarty i resavanje forme11.08.2008. u 21:15 - pre 190 meseci
Ma ja nesto tako probao..videcu ponovo.
Ma nekako mi je bilo lakse sa FastTemplate klasom,gde pravim dinamicke blokove za gresku...Pa sam se prebacio na smarty.
Mozda je on i laksi oko toga ,samo dok pohvatam njegovu logiku.
U svakom slucaju tnx
 
Odgovor na temu

ColdKeyboard
Sasa Karanovic
Hardware and Firmware Engineer
Toronto, Canada

Član broj: 31924
Poruke: 868
*.teol.net.

Jabber: ColdKeyboard
Sajt: www.SasaKaranovic.com


+11 Profil

icon Re: smarty i resavanje forme12.08.2008. u 02:06 - pre 190 meseci
Ajd pojasni malo kako to izgleda u tom FastTemplate ili sta tacno zelis pa cemo ti moci pomoci...


A ne vidim sta fali ovom sto je dakipro napisao, ja tako radim. Eventualno radim

Code:

if($desila_se == 'greska') {
$error .= "Poruka <br>";
}
.
.
.
.

if (!empty($error)) { $smarty->assign('error', $error); }


Pokusaj objasniti tacno sta zelis ili daj nam neki primjer...
 
Odgovor na temu

spezia

Član broj: 134818
Poruke: 355
*.beobug.com.



+6 Profil

icon Re: smarty i resavanje forme12.08.2008. u 17:03 - pre 190 meseci
Code:

function person_register_save(){
global $smarty,$error;
if($_REQUEST['data']){
$data=$_REQUEST['data'];
}

   $error=array();
   if(empty ($data[username])) $error['username']=1;
   if(empty($data[password])) $error['password']=1;
   if(empty($data[password2])) $error['password2']=1;
   if($data[password]!=$data[password2]) $error['different']=1;
   if(empty($data[mail])) $error['mail']=1;
   if(!(eregi("^[^@ ]+@[^@]+\.[^@ .]+$",$data[mail])))  $errors['nmail']=1;
   
   $result=mysql_query("SELECT user_name,email  FROM user");
   while($l=mysql_fetch_array($result)){
    if( $data['username']==$l[user_name]) $error[name_take]=1;
    if($data['mail']==$l[email]) $error['email']=1;
    }
    if (count($error)==0){
    $query=mysql_query("INSERT INTO user (user_name,user_pass,user_subtext,user_subnick,user_posts,profil,lastaccess,email,reg_time)
    VALUES ( '$data[username]','$data[password]','$data[sub]','$data[subnick]',0,'$data[profil]',now(),'$data[mail]',now())");
   if(!($query))  echo "Nije uspesno izvrsena registracija";
  } 
  
        if(count($error)>0){
        person_register();
        return;    
    }
    
    $smarty->display("register_save.html");
}        

i iznad u funkciji koja poziva formu
Code:

....
if($error[username])  $smarty->assign("error1","username");
    if($error[password])   $smarty->assign("error3","password");
    if($error[password2]) $smarty->assign("error4","password2");
    if($error[different]) $smarty->assign("error5","different");
    if($error[mail]) $smarty->assign("error7","mail");
    if($error[nmail]) $smarty->assign("error6","nmail");
    if($error[email]) $smarty->assign("error8","email");
    if($error[name_take]) $smarty->assign("error2","name_take");

    
    

    
    $smarty->display("register.html");

Za sada radi->ne znam da li vam i treba template a imate celu sliku?? Meni se cini kao jednostavnije resenje,ili gresim.Poruke se pokazuju posebno ispod lozinke,ili mail-a....
Imam mali problem.U bazi imam korisnika Zexx,a u formi kada ukucam zexx ne izbacuje gresku.Samo kada iskucam sa veliko Z. Sta mi je ciniti...Da li da vracam podatke iz baze bez velika slova,pa da tako uporedjujem??
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: smarty i resavanje forme21.08.2008. u 14:42 - pre 189 meseci
Evo ti kako sam ja to odradio:

signup.php (Ovde se obradjuju podaci, i ukoliko ima gresaka, prikazuje se ponovo stranica za registraciju):

Code:

if (!$check->check_length($data['firstname'], 35) OR strlen($data['firstname']) < 3)

// Data is not valid .... We enter the error into errors array ....
    $errors[] = "First name length must be longer than 3 characters, and shorter than 35 characters";
}
    
if (!$check->check_length($data['lastname'], 35) OR strlen($data['lastname']) < 3)

     // Data is not valid .... We enter the error into errors array ....
     $errors[] = "Last name length must be longer than 3 characters, and shorter than 35 characters";
}

if (count($errors) > 0)
{
  // Ima gresaka, prikazi stranicu za registraciju ......
  $smarty->assign("errors", $errors);
  $smarty->display("signup.tpl");
  die()
}

// U suprotnom, nema gresaka,.....
// ovde stavis sta ti treba ....


signup.tpl:

Code:

{if $errors|@count > 0}
{* Errors were reported, lets show them .... *}
<div style="border-style: dotted; border-color: red; border-width: 1; text-align: left;">
{foreach from=$errors key=k item=v}
ERROR: {$v}
<br>
{/foreach}
</div>
{/if}

.
.
.


Nadam se da sam bio od pomoci :-)

EDIT: Sad vidim da je ovo sto sam ja napisao, identicno onome sto je daki napisao :-)) Sad imas praktican primer i primenu onoga sto je rekao :-)
 
Odgovor na temu

[es] :: PHP :: Smarty template engine :: smarty i resavanje forme

[ Pregleda: 3136 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.