Bu tür form alanlarındaki hataları olarak onları üretir sayfaya ait bazı bildirimler vardır. Bu işlemek için kolaydır. Ben normalde HTML formatında onları tutun ve HTML liste halinde görüntülemek için bir fonksiyonu kullanabilmek için bir dizi oluşturabilirsiniz:
<?php
$errors = array();
function print_errors($errors){
if( !empty($errors) ){
echo '<ul><li>' . implode('</li><li>', $errors) . '</ul>';
}
}
# ...
if($foo<=0){
$errors[] = '<label for="foo">Foo</label> is <strong>' . htmlspecialchars($foo) . '</strong> but it must be greater than zero.';
}
if(empty($errors)){
save_stuff();
header('Location: http://example.com/somewhere/else/');
exit;
}
# ...
print_errors($errors);
echo '<form action="" method="post">';
echo '<input type="text" name="foo" value="' . htmlspecialchars($foo) . '" id="foo">';
echo '</form>';
# ...
?>
Sonra tarif durum var: Başarılı bir (veya imkansız) eylem sonra, kullanıcı o bir açıklama alır (örneğin, ana bölüm sayfa) başka bir yere yönlendirilir. Kısa mesajlar için, ben düz metin iletileri tutun GET değişkenleri kullanma eğiliminde:
<?php
if( isset($_GET['error']) ){
echo '<p class="error">' . htmlspecialchars($_GET['error']) . '</p>';
}
if( isset($_GET['message']) ){
echo '<p class="message">' . htmlspecialchars($_GET['message']) . '</p>';
}
?>
Bu intranet için oldukça iyidir, ancak iki dezavantajı var:
Eğer mevcut bazı depolama varsa (dosyalar, veritabanları, ne olursa olsun) tam HTML mesajları tutmak ve onları rasgele bir kimlik atayabilirsiniz:
ID: 4a0a19218e082a343a1b17e5333409af9d98f0f5
Date: 2010-05-25 11:24:30
Type: message
HTML: <a href="/item/25">Item #25</a> was modified successfully.
http://example.com/?msg=4a0a19218e082a343a1b17e5333409af9d98f0f5
Şimdi ve daha sonra eski verileri temizlemek böylece tarih kaydetmek emin olun.
Benim iki sent.