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> 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>
réelle simple: 'isset ($ _ POST [ 'x'])' est un faux positif et vous n'êtes pas à la syntaxe appropriée pour tous tho se. –
* "quand j'utilise le 'isset' pour inclure ceci, j'obtiens '1'" * - c'est parce que 'isset()' a retourné un booléen vrai. –
vous êtes également ouvert à une grave injection SQL, ce n'est qu'une question de temps avant que vous ne soyez piraté. –