2014-07-06 2 views
1

je besoin d'un peu d'aide avec ceci:comment faire ce genre de vérification d'une valeur de formulaire?

a ont form.php:

<?php 
<form name="create" method="post" action="done.php"> 
<input type="email" name="email" class="cform" required /> 
<input type="submit" name="submit" /> 
</form>        
?> 

Maintenant, en done.php je:

<?php 
$email = $_POST['email']; 
$OtherVar = [email protected]; 
?> 

Ma question est, Comment déterminer si "$ email" est égal à "$ OtherVar" mais sans exit form.php?

Si "$ email" = "$ OtherVar" permet à l'utilisateur d'envoyer le formulaire.

Si "$ email" n'est pas = "$ OtherVar" affiche un message à l'utilisateur.

espère que vous aviez understad ma question et vous pouvez me aider, désolé pour mon anglais et merci :)

+0

** Javascript ** – Xatenev

Répondre

1

Si vous voulez vérifier l'e-mail avant soumettre le formulaire, vous devez le faire sur le côté client en javascript. PHP ne peut pas être appliqué si vous avant de soumettre le formulaire.

<form onsubmit="return checkEmail(this.email.value)" action="done.php"> 
    <input name="email" type="text"> 
    <input type="submit"> 
</form> 

<script> 
function checkEmail(email) { 
    return email == '[email protected]'; 
} 
</script> 

vous pouvez, mais aussi permettre submittin avec un e-mail et si l'e-mail n'est pas celui que vous voulez, renvoyer l'utilisateur vers le formulaire pour le remplir à nouveau.

if ($email != "[email protected]") { 
    header('Location: form.php'); 
} 

S'il vous plaît noter que si vous souhaitez utiliser javascript, l'adresse e-mail requise est pas un secret: tout le monde peut le trouver dans le code source de la page. D'un autre côté, la solution PHP avec le retour au formulaire cache l'adresse e-mail d'un visiteur aléatoire (alors que je ne recommande toujours pas d'y penser comme d'une couche de sécurité).

+0

Grand.! Je l'ai fait avec la deuxième façon! J'ajoute quelques choses et ça marche :) merci et merci à tous les autres. –

1

Inclure jquery

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 

Donnez votre forme et votre champ email un code d'identification, vous pouvez appeler par jquery:

<?php 
<form name="create" id="create" method="post" action="done.php"> 
<input type="email" id="email" name="email" class="cform" required /> 
<input type="submit" name="submit" /> 
</form>        
?> 

appeler maintenant par jquery et vérifier si les valeurs sont les mêmes. si elles ne sont pas, vous utilisez la méthode preventDefault(), qui arrête la forme de la présentation:

$('#create').submit(function(event) { 

var email = $('#email').val(); 
var otherVariable = 'someValue; 

if(!(email == otherVariable)) { 
    event.preventDefault(); 
} 
}); 
0

Une façon de le faire à l'intérieur form.php sans JavaScript est en ayant form.php gérer l'action post:

<?php if ($_POST && $_POST['email'] == $OtherVar) { ?> 
    // User submitted desired email address 
<?php } else { ?> 
    // User didn't submit desired email address 
    <form name="create" method="post" action="form.php"> 
     <input type="email" name="email" class="cform" required /> 
     <input type="submit" name="submit" /> 
    </form> 
<?php } ?> 

Ce aurait rafraîchir la page cependant. Si vous voulez le faire sans rafraîchir la page, vous aurez besoin d'utiliser un peu de JavaScript ou jQuery:

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script> 
<form name="create" method="post" action="done.php"> 
    <input id="special-input" type="email" name="email" class="cform" required /> 
    <input id="special-submit" type="submit" name="submit" /> 
</form> 
<script type="text/javascript"> 
    $('#special-submit').click(function() { 
     if ($('#special-input').val() != "<?php echo $OtherVar; ?>") { 
      event.preventDefault(); 
     } 
    }); 
</script> 
Questions connexes