2017-03-09 2 views
-1

J'ai créé une page d'inscription mais mon formulaire soumet automatiquement des données vierges lorsque la page se charge même si j'ai la validation de formulaire en place. Je n'arrive pas à placer mes erreurs.Mon formulaire Soumet automatiquement au chargement de la page PHP

De même, j'obtiens cette erreur d'index indéfinie pour le $ _POST [prénom] et les autres et quand j'utilise le 'isset' pour inclure ceci, j'obtiens '1' comme données stockées dans DB.

Merci d'avance.

<?php 
 

 
\t require_once("config.php"); 
 

 
\t $f_name = isset($_POST['first_name']); 
 
\t $l_name = isset($_POST['last_name']); 
 
\t $e_mail = isset($_POST['email']); 
 
\t $p_w_d = isset($_POST['password']); 
 

 
\t //password hashing and salting 
 
    $hash = hash('sha256', $p_w_d); 
 
     
 
    function createSalt() 
 
    { 
 
     $text = md5(uniqid(rand(), true)); 
 
     return substr($text, 0, 3); 
 
    } 
 
    
 
    $salt = createSalt(); 
 
    $sec_password = hash('sha256', $salt . $hash); 
 

 
\t //creating the database query 
 
\t $query = "INSERT INTO ad_min_user (first_name, last_name, email_id, password) VALUES 
 
\t ('$f_name','$l_name','$e_mail','$sec_password')"; 
 
\t $result = mysqli_query($conn,$query); 
 

 
    if(!empty($result)) { 
 
    \t \t //echo '<script language="javascript">'; 
 
\t \t \t //echo 'alert("Registration Successful !")'; 
 
\t \t \t //echo '</script>'; 
 
\t \t \t unset($_POST); 
 
\t \t } 
 
\t \t else { 
 
\t \t \t echo '<script language="javascript">'; 
 
\t \t \t echo 'alert("Registration Failed !")'; 
 
\t \t \t echo '</script>'; \t \t 
 
\t \t } 
 
\t ?> 
 

 
?> 
 

 

 
<!DOCTYPE html> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
<meta charset="utf-8" /> 
 
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
 
<title>Create Admin Panel | 9JA Home & Tours LTD</title> 
 

 
<!-- BOOTSTRAP STYLES--> 
 
<link href="assets/css/bootstrap.css" rel="stylesheet" /> 
 
<!-- FONTAWESOME STYLES--> 
 
<link href="assets/css/font-awesome.css" rel="stylesheet" /> 
 
<!-- CUSTOM STYLES--> 
 
<link href="assets/css/custom.css" rel="stylesheet" /> 
 
<!-- GOOGLE FONTS--> 
 
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' /> 
 
<!-- SCRIPTS -AT THE BOTOM TO REDUCE THE LOAD TIME--> 
 
<!-- JQUERY SCRIPTS --> 
 
<script src="assets/js/jquery-1.10.2.js"></script> 
 
<!-- BOOTSTRAP SCRIPTS --> 
 
</head> 
 
<body> 
 
<div class="container"> <br/> 
 
    <br/> 
 
    <br/> 
 
    <div class="row text-center "> 
 
    <div class="col-md-12"><br/> 
 
     <span style="font-size:35px;font-weight:bold;color:red;">CREATE ADMIN PANEL</span></div> 
 
    </div> 
 
    <br/> 
 
    <div class="row "> 
 
    <div class="col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1"> 
 
      
 
     <div class="panel panel-default" id="loginBox"> 
 
     <div class="panel-heading"> <strong> Enter Admin Details </strong> </div> 
 
     <div class="panel-body"> 
 
      <form onSubmit="return validationForm();" role="form" id="form" method="post"> 
 
      <br /> 
 
      <div class="form-group input-group"> <span class="input-group-addon"><i class="fa fa-user" ></i></span> 
 
       <input type="text" name="first_name" id="first_name" class="form-control" placeholder="First Name" /> 
 
      </div><div class="form-group input-group"> <span class="input-group-addon"><i class="fa fa-user" ></i></span> 
 
       <input type="text" name="last_name" id="last_name" class="form-control" placeholder="Last Name" /> 
 
      </div> 
 
      <div class="form-group input-group"> <span class="input-group-addon"><i class="fa fa-envelope" ></i></span> 
 
       <input type="text" name="email" id="email" class="form-control" placeholder="Email" /> 
 
      </div> 
 
      <div class="form-group input-group"> <span class="input-group-addon"><i class="fa fa-lock" ></i></span> 
 
       <input type="password" name="password" id="password" class="form-control" placeholder="Your Password" /> 
 
      </div> 
 
      <div class="form-group input-group"> <span class="input-group-addon"><i class="fa fa-lock" ></i></span> 
 
       <input type="password" name="confirm_password" id="confirm_password" class="form-control" placeholder="Confirm Password" /> 
 
      </div> 
 
      <div class="form-group"> 
 
       <label class="checkbox-inline"> </label> 
 
       <span class="pull-right"> <a href="index.php" >Login as Admin</a> </span> </div> 
 
      <hr /> 
 
      <div align="center"> 
 
       <button style="width:100%;" type="submit" id="login" class="btn btn-primary"><i class="fa fa-user" ></i>&nbsp;Create Admin</button> 
 
      </div> 
 
      </form> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div> 
 
<script type="text/javascript"> 
 
function validationForm(){ 
 
\t if($("#first_name").val() == ''){ 
 
\t \t alert("First Name Required !!!"); 
 
\t \t $("#first_name").focus(); 
 
\t \t return false; 
 
\t } 
 
\t else if($("#last_name").val() == ''){ 
 
\t \t alert("Last Name Required !!!"); 
 
\t \t $("#last_name").focus(); 
 
\t \t return false; 
 
\t } 
 
\t else if($("#email").val() == ''){ 
 
\t \t alert("Email Required !!!"); 
 
\t \t $("#email").focus(); 
 
\t \t return false; 
 
\t } 
 
\t else if(!validateEmail($("#email").val())){ 
 
\t \t alert("Valid Email Required !!!"); 
 
\t \t $("#email").focus(); 
 
\t \t return false; 
 
\t } 
 
\t else if($("#password").val() == ''){ 
 
\t \t alert("Password Required !!!"); 
 
\t \t $("#password").focus(); 
 
\t \t return false; 
 
\t } 
 
\t else if($("#confirm_password").val() == ''){ 
 
\t \t alert("Confirm Password"); 
 
\t \t $("#confirm_password").focus(); 
 
\t \t return false; 
 
\t } 
 
\t else if($("#password").val() != $("#confirm_password").val()){ 
 
\t \t alert("Passwords Don't Match"); 
 
\t \t $("#confirm_password").focus(); 
 
\t \t return false; 
 
\t } 
 
\t else{ 
 
\t \t return true; 
 
\t } 
 
} 
 
function validateEmail(email) { 
 
    var re = /^(([^<>()[\]\\.,;:\[email protected]"]+(\.[^<>()[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
 
    return re.test(email); 
 
} 
 

 

 
</script> 
 

 
</body> 
 
</html>

+0

réelle simple: 'isset ($ _ POST [ 'x'])' est un faux positif et vous n'êtes pas à la syntaxe appropriée pour tous tho se. –

+0

* "quand j'utilise le 'isset' pour inclure ceci, j'obtiens '1'" * - c'est parce que 'isset()' a retourné un booléen vrai. –

+0

vous êtes également ouvert à une grave injection SQL, ce n'est qu'une question de temps avant que vous ne soyez piraté. –

Répondre

0

Je ne sais pas si cela résout votre problème, mais isset renvoie true/false.

$f_name = isset($_POST['first_name']); 
$l_name = isset($_POST['last_name']); 
$e_mail = isset($_POST['email']); 
$p_w_d = isset($_POST['password']); 

Cela signifie que votre nom, prénom, email, PWD sera soit vrai/faux plutôt que la valeur réelle de poste.

Vous voulez ré-écrire quelque chose comme ...

$f_name = isset($_POST['first_name']) ? $_POST['first_name'] : null;

Vous voudrez aussi envelopper ce bloc entier de php dans quelque chose comme:

if (isset($_POST) { 
    // PHP stuff here e.g. 
    $f_name = isset($_POST['first_name']) ? $_POST['first_name'] : null; 
    ... 
} 

parce que si le formulaire n'a pas été posté, vous allez essayer d'accéder à des choses dans $_POST qui n'existe pas encore.

Vous avez également un problème dans votre exemple ci-dessus ... où vous semblez fermer php deux fois ...

 ?> 

?> 

Donc, fondamentalement, votre code devrait ressembler à quelque chose comme ...

<?php 

require_once("config.php"); 

if (isset($_POST)) { 
    $f_name = isset($_POST['first_name']) ? $_POST['first_name'] : null; 
    $l_name = isset($_POST['last_name']) ? $_POST['last_name'] : null; 
    $e_mail = isset($_POST['email']) ? $_POST['email'] : null; 
    $p_w_d = isset($_POST['password']) ? $_POST['password'] : null; 

    //password hashing and salting 
    $hash = hash('sha256', $p_w_d); 

    function createSalt() 
    { 
     $text = md5(uniqid(rand(), true)); 
     return substr($text, 0, 3); 
    } 

    $salt = createSalt(); 
    $sec_password = hash('sha256', $salt . $hash); 

    //creating the database query 
    $query = "INSERT INTO ad_min_user (first_name, last_name, email_id, password) VALUES 
     ('$f_name','$l_name','$e_mail','$sec_password')"; 
    $result = mysqli_query($conn, $query); 

    if (!empty($result)) { 
     unset($_POST); 
    } else { 
     echo '<script language="javascript">'; 
     echo 'alert("Registration Failed !")'; 
     echo '</script>'; 
    } 
} 

Mais souvenez-vous validate votre entrée