çaylak: php sunucu işlemleri isteği sonra aynı sayfada giriş hata mesajı göstermek için nasıl

5 Cevap php

I have a login page. User first enters information and submits the form.

Ve ben kullanıcı varsa göreceksiniz bir php komut dosyası var.

If( authenticated == true)  
{  
    // I do a redirect  
}  
else  
{  
  // I want to popup an error message on the same page.  
} 

1) I'm not sure how to show the popup message, I would like to make my div element visible with an error message returned from the server,
I would have to use Ajax, right? But how?

Ya gibi iyi alternatifler vardır.

5 Cevap

Eğer ajax kullanmak olsaydı, tüm süreç için kullanabilirsiniz. Yani, hiç böyle bir sorun. Yanıt almak ve kullanıcıya göstermek.

Bir acemi olarak kendinizi belirtildiği gibi ama, ben kesinlikle sadece şeyler öğrenmek için, o düz ve basit bir şekilde yapmanızı tavsiye ederim.

Genel bir kural olarak, bir yönlendirme her zaman POST yöntemi isteği sonra tercih. Bazı durumlarda bir bu atlayabilirsiniz, ancak giriş formu için zaten bir oturumu kullanabilirsiniz. Yani, bir oturumu başlatabilirsiniz orada bir hata bilgilerini yazmak ve ardından Location: yönlendirmek.

Ondan sonra, hatalar için oturumu kontrol edin ve ardından istediğiniz herhangi bir yöntemi kullanarak kullanıcıyı bilgilendirecek: div, veya pop-up ya da bir şey.

Form aynı sayfaya deftere ise, neden sadece hata iletileri görüntülemek için değişkenleri kullanmak değil mi?

<?php

if (strlen($_POST['text']) < 5)
{
 $error['text'] = "Too short";
}

?>

<?php

if (isset($error['text']))
{
// Print errors at each form element?
}

?>

Hide & show DIVs using Javascript: http://csscreator.com/node/708

Ben çalıştırabilirsiniz ayrı. HTML giriş sayfası koymak istiyorum

$login = file_get_contents('login.html);

ve bu biçimlendirme koymak Eğer bir çalıştırabilirsiniz hangi

$login = str_replace('<!-- ERROR -->', $error, $login); 

istediğiniz herhangi bir metin eklemek ve tüm yapılır sen bittiğinde

print $login;

Basit cevap koşul mesaj görünmesini istediğiniz yere eğer sadece bir php yerleştirmektir. Ajax gerek yok.

some text above

<?php if (! $authenticated) { echo '<div class="error">'.$your_error_message.'</div>'; } ?>

some text below

Ben senin durumunda doğrulanmış $ ne demek biliyor, ama post değişkenleri aksi hata mesajı öncesi sunulan kullanım durumunda giriş sayfasında görünecektir, aynı zamanda orada olduğunu bir kontrol de emin değilsiniz.

Muhtemelen basit yolu

function render_auth($errors = false){
?>
   <form action="/someURL">
     <? if($errors) echo $errors ?>
     <label>User name<input name="user_name"/></label><br/>
     <label>Password<input name="user_password" /></label><br/>
     <input type="submit"/>
   </form>
<?
};

Doğrulama sayfa / kontrolör ilk çağrı size render_auth çağrı (bir hata varsa) daha sonra auth çağrı işleme, sen ("Missing password.") Render_auth derim ya da böyle olur.

Genellikle sensin görünümleri için bir şablonu sistemi kullanıyorsanız eğer, bu oldukça önemsiz gibi şeyler ama değilse, bu fonksiyon bir ölçüde çiftleşmiş öykünür.