 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
Brindusa
Data înscrierii: 29/Dec/2004
Mesaje: 5
Locație: Gura Humorului
|
| Trimis: Lun Ian 17, 2005 2:21 pm Titlul subiectului: Formular comanda |
|
|
Salut,
Am nevoie de o mana de ajutor.
Vreau sa fac un formular de comanda, iar datele introduse sa fie trimise prin mail.
As vrea sa-l "fortez" pe cel care face comanda sa completeze toate campurile forumularului. Mai exact, daca nu a completat un camp (numele sa zicem) sa-i apara un mesaj de avertizare de genul: "
Va rugam completati numele".
Merci. |
|
| Sus |
|
boo
Data înscrierii: 24/Mar/2004
Mesaje: 223
Locație: Ploiesti
|
| Trimis: Lun Ian 17, 2005 4:38 pm Titlul subiectului: |
|
|
Eu zic mai intai sa citesti documentatia functiei mail().
Verificarea fa-o din server pentru un mai bun control.
<?
if(_POST['nume']==''){ ?>
<script type="text/javascript">
alert("Nu ati completat numele");
window.location.href="index.php";
</script>
<?
}
?> |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Lun Ian 17, 2005 7:02 pm Titlul subiectului: |
|
|
boo a scris: Eu zic mai intai sa citesti documentatia functiei mail().
Verificarea fa-o din server pentru un mai bun control.
<?
if(_POST['nume']==''){ ?>
<script type="text/javascript">
alert("Nu ati completat numele");
window.location.href="index.php";
</script>
<?
}
?>
E incosecvent/inconsistent ce spui tu, boo. De ce sa faci verificarea pe server dar sa il atentionezi prin Javascript ? N-are nici un sens.
Eu as face ceva de genul:
an style="color: #000000"><?php <?php
function checkData(&$data, &$errors)
{
if (empty($data['nume'])
$errors['nume'] = 'Va rugam introduceti numele';
/*
etc
*/
return count($errors);
}
?>
...
<?php
$errors = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (checkData($_POST, $errors) == 0)
{
/*
email, etc... cu datele din $_POST
*/
echo 'S-a trimis... bla-bla';
die;
}
}
?>
<form>
<input style="<?php echo isset($errors['nume'])?'background-color:yellow':'' ?>".../>
<div><?php echo @$errors['nume']; ?></div>
</form>
Validarea se face intr-o functie, fiecare camp care e invalid generand un element in $errors cu acelasi nume ca si campul... Afisarea, dupa, cum pofteste fiecare.
Numa' bune. |
|
| Sus |
|
boo
Data înscrierii: 24/Mar/2004
Mesaje: 223
Locație: Ploiesti
|
| Trimis: Lun Ian 17, 2005 8:10 pm Titlul subiectului: |
|
|
| Arond, dupa cum vezi eu verificarea o fac din server insa Brindusa voia sa ii apara un mesaj de avertizare, ceea ce fac cu javascript. |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Lun Ian 17, 2005 10:05 pm Titlul subiectului: |
|
|
Asta e clar.
Ideea e de consistenta: daca tot faci verificarile pe server, atunci il "alertezi" ca datele sunt necurate prin HTML si nu mai ai nici o treaba cu Javsacript...
Daca vrei totusi Javascript, atunci fa verificarile tot prin Javascript ca e mai eficient (scutesti de un drum la server iar dependenta de functionarea Javascript in browser oricum exista deja). In plus, dincolo de dependenta de Javascript, tot mai ai o problema: trebuie sa intorci browserului posibilele erori care nu tin de corectitudinea datelor (a cazut serverul de mail, etc)... si atunci vei avea 2 mecanisme distincte de raportare a erorilor.
Got my point ?
Numa' bune. |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|