-3

我在 html 中为一个小网站制作了一个表单,我希望用户自己订阅,但我的 PHP 控件似乎不起作用,我不知道为什么!我的 javascript 控件有效,但 PHP 没有... 来源:

<!-- HTML -->
<form action="InscriptionSucces.html" method="POST" name="Inscription" onSubmit="return verif(this);">
<h2>Identifiants</h2>
<ul>
    <li>Pseudo* : <input type="text" name="pseudo" id="pseudo" size="30" /></li>
    <li>Mot de passe* : <input type="password" name="pass" id="pass" size="30" /></li>
    <li>Veuillez retaper votre mot de passe* : <input type="password" name="pass2" id="pass2" size="30" /></li>
    <li>Adresse mail (valide)* : <input type="text" name="mail" id="mail" size="30" value="" />@
        <select name="groupe1" id="groupe1">
            <option value="0">Selectionnez votre adresse...</option>
            <optgroup label="">
                <option value="1">hotmail.fr
                <option value="2">hotmail.com
                <option value="3">gmail.com
                <option value="4">laposte.net
            </optgroup>
         </select>
    </li>
    <li>Veuillez retaper votre adresse mail* : <input type="text" name="mail_verif" id="mail_verif" size="30" value="" />@
        <select name="groupe2" id="groupe2">
                <option value="0">Selectionnez votre adresse...</option>
                <optgroup label="">
                    <option value="1">hotmail.fr
                    <option value="2">hotmail.com
                    <option value="3">gmail.com
                    <option value="4">laposte.net
                </optgroup>
        </select>
    </li>
    <li>Date de naissance : <input type="text" name="date_naissance" id="date_naissance" size="30" value="" /> <em>(JJ/MM/AAAA)</em></li> 
    <h5>Les champs signales par * sont obligatoires.</h5>
    <li>
        <td id="envoyer">
            <input type="submit" name="Submit" value="M'inscrire">
        </td>
        <td id="effacer">
            <input type="reset" name="Effacer" >
        </td>
        </td>
    </li>
</form>


这是我的javascript,它有效:

<script type="text/javascript">    
function verif(f)
{
    var regnm = /^[a-zàâäéèêëîïôöùûüç0123456789]+((( |-)[a-zàâäéèêëîïôöùûüç]+$)|$)/i;
    var regmail = /^[a-z]/i;
    if(!regnm.test(f.pseudo.value)) {
        alert("Erreur dans la saisie de votre pseudo");
        return false;
    }
    if(!regnm.test(f.pass.value)) {
        alert("Erreur dans la saisie de votre mot de passe");
        return false;
    }
    if(f.pass.value != f.pass2.value){
        alert("Les mots de passe sont differents");
        return false;
    }
    if(!regmail.test(f.mail.value)){
        alert("adresse mail incorrecte");
        return false;
    }
    if(f.mail.value != f.mail_verif.value){
        alert("adresses mail differentes");
        return false;
    }
    if (document.getElementById('groupe1').options[0].selected){
            alert("Vous avez oublie de mentionner votre adresse mail");
        return false;
    }
    if (document.getElementById('groupe1').value != document.getElementById('groupe2').value){
            alert("adresses mail differentes");
        return false;
    }
    return confirm("Vous confirmez l'envoi des donnees?");
} 
</script>


PHP代码:

<?php
if(!empty($_POST)) {
    $errors = array();
    $pseudo=$_POST['pseudo'];
    echo $pseudo; // Pseudo
    if(!isset($pseudo)){
        $errors[] = 'Erreur dans la saisie de votre pseudo';
        return false;
    } elseif($pseudo == '') {
        $errors[] = 'Erreur dans la saisie de votre pseudo';
        return false;
    }
    // Mot de passe
    if(!isset($_POST['pass'])){
        $errors[] = 'Erreur dans la saisie de votre mot de passe';
    } elseif($_POST['pass'] == ''){
        $errors[] = 'Erreur dans la saisie de votre mot de passe';
    }
    // Verif mot de passe
    if($_POST['pass2'] =! $_POST['pass']){
        $errors[] = 'Les mots de passe sont differents';
    } elseif($_POST['mdp_verif'] == ''){
        $errors[] = 'Les mots de passe sont differents';
    } else if(!isset($_POST['mdp_verif'])){
        $errors[] = 'Les mots de passe sont differents';
    }
    // Adresse mail
    if(!isset($_POST['mail'])){
        $errors[] = 'Erreur dans la saisie de votre adresse mail';
    } elseif($_POST['mail'] == ''){
        $errors[] = 'Erreur dans la saisie de votre adresse mail';
    }
    // Verif adresse mail
    if($_POST['mail_verif'] != $_POST['mail']){
        $errors[] = 'Les adresses mail sont differentes';
    } elseif($_POST['mail_verif'] == ''){
        $errors[] = 'Les adresses mail sont differentes';
    } else if(!isset($_POST['mail_verif'])){
        $errors[] = 'Les adresses mail sont differentes';
    }      
    // Compte les erreurs
    if(count($errors) > 0)
    {
        echo '<ul>' . PHP_EOL;
        for($i=0; $i < count($errors); $i++)
            echo '<li>'. $errors[$i] .'.</li>' . PHP_EOL;
        echo '<ul>';
    }
}
?>

这是我的变量中的错误吗?与 $_POST ?谢谢帮助:)

4

3 回答 3

1

我这样做并且效果很好。为了您的方便,我在这里给出我编辑的代码。

<html>
<head>
<title>form</title>
</head>
<body>
<form action="" method="POST" name="Inscription" onSubmit="return verif(this);">
<h2>Identifiants</h2>
<ul>
<li>Pseudo* : <input type="text" name="pseudo" id="pseudo" size="30" /></li>
<li>Mot de passe* : <input type="password" name="pass" id="pass" size="30" /></li>
<li>Veuillez retaper votre mot de passe* : <input type="password" name="pass2" id="pass2" size="30" /></li>
<li>Adresse mail (valide)* : <input type="text" name="mail" id="mail" size="30" value="" />@
<select name="groupe1" id="groupe1">
<option value="0">Selectionnez votre adresse...
<optgroup label="">
<option value="1">hotmail.fr
<option value="2">hotmail.com
<option value="3">gmail.com
<option value="4">laposte.net
</optgroup>
</select>
</li>
<li>Veuillez retaper votre adresse mail* : <input type="text" name="mail_verif" id="mail_verif" size="30" value="" />@
<select name="groupe2" id="groupe2">
<option value="0">Selectionnez votre adresse...
<optgroup label="">
<option value="1">hotmail.fr
<option value="2">hotmail.com
<option value="3">gmail.com
<option value="4">laposte.net
</optgroup>
</select>
</li>
<li>Date de naissance : <input type="text" name="date_naissance" id="date_naissance" size="30" value="" /> <em>(JJ/MM/AAAA)</em></li> 
<h5>Les champs signales par * sont obligatoires.</h5>                  
<li><td id="envoyer">
<input type="submit" name="Submit" value="M'inscrire">
</td>
<td id="effacer">
<input type="reset" name="Effacer" >
</td>
</td></li>
</form>
</body>
<!-- Here is my javascript which works
<script type="text/javascript">    

function verif(f)
{

var regnm = /^[a-zàâäéèêëîïôöùûüç0123456789]+((( |-)[a-zàâäéèêëîïôöùûüç]+$)|$)/i;
var regmail = /^[a-z]/i;
if(!regnm.test(f.pseudo.value))
{
alert("Erreur dans la saisie de votre pseudo");
return false;
}
if(!regnm.test(f.pass.value))
{
alert("Erreur dans la saisie de votre mot de passe");
return false;
}
if(f.pass.value != f.pass2.value){
alert("Les mots de passe sont differents");
return false;
}
if(!regmail.test(f.mail.value)){
alert("adresse mail incorrecte");
return false;
}
if(f.mail.value != f.mail_verif.value){
alert("adresses mail differentes");
return false;
}
if (document.getElementById('groupe1').options[0].selected){
alert("Vous avez oublie de mentionner votre adresse mail");
return false;
}
if (document.getElementById('groupe1').value != document.getElementById('groupe2').value){
alert("adresses mail differentes");
return false;
}
return confirm("Vous confirmez l'envoi des donnees?");
} 
</script>
-->
<?php if(!empty($_POST))
{      
echo '<pre>';
print_r($_POST);
echo '</pre>';
$errors = array();
$pseudo=$_POST['pseudo'];
echo $pseudo;
if(!isset($pseudo)){
$errors[] = 'Erreur dans la saisie de votre pseudo';
return false;
}
elseif($pseudo == ''){
$errors[] = 'Erreur dans la saisie de votre pseudo';
return false;
}
if(!isset($_POST['pass'])){
$errors[] = 'Erreur dans la saisie de votre mot de passe';
}
elseif($_POST['pass'] == ''){
$errors[] = 'Erreur dans la saisie de votre mot de passe';
}
// Verif mot de passe
if($_POST['pass2'] =! $_POST['pass']){
$errors[] = 'Les mots de passe sont differents';
}
elseif($_POST['mdp_verif'] == ''){
$errors[] = 'Les mots de passe sont differents';
}
else if(!isset($_POST['mdp_verif'])){
$errors[] = 'Les mots de passe sont differents';
}
if(!isset($_POST['mail'])){
$errors[] = 'Erreur dans la saisie de votre adresse mail';
}
elseif($_POST['mail'] == ''){
$errors[] = 'Erreur dans la saisie de votre adresse mail';
}
// Verif adresse mail
if($_POST['mail_verif'] != $_POST['mail']){
$errors[] = 'Les adresses mail sont differentes';
}
elseif($_POST['mail_verif'] == ''){
$errors[] = 'Les adresses mail sont differentes';
}
else if(!isset($_POST['mail_verif'])){
$errors[] = 'Les adresses mail sont differentes';
}      
// Compte les erreurs
if(count($errors) > 0)
{
echo '<ul>' . PHP_EOL;

for($i=0; $i < count($errors); $i++)
echo '<li>'. $errors[$i] .'.</li>' . PHP_EOL;

echo '<ul>';
}
}
?>
于 2013-05-13T09:35:15.097 回答
0

第一:PHP代码必须用<?php .. ?>标签括起来。

第二:您在此处发布的文件似乎是*.htmlfile. 它要么需要是*.php文件,要么将网络服务器配置为将 html 文件解析为.php

于 2013-05-13T09:02:18.123 回答
0

在表单标签中,您使用InscriptionSucces.html。相反,您必须使用名称InscriptionSucces.php,并且您的文件名必须是InscriptionSucces.php

当您使用任何 PHP 代码时,您必须使用正确的开始和结束语法:<?php?>.

于 2013-05-13T09:07:17.167 回答