Question à propos du message de validation. Mon message de validation de formulaire (via php) apparaît dans l'en-tête après que l'utilisateur a envoyé le formulaire.Message de validation PHP apparaissant dans l'en-tête
Comment afficher un message dans le corps (sous forme). Code ci-dessous. Screen shot attached for clarification
<?
/* Check User Script */
session_start(); // Start Session
include 'db.php';
// Conver to simple variables
$username = $_POST['username'];
$password = $_POST['password'];
if((!$username) || (!$password)){
echo "Please enter ALL of the information! <br />";
include 'login_form.html';
exit();
}
// Convert password to md5 hash
$password = md5($password);
// check if the user info validates the db
$sql = mysql_query("SELECT
*
FROM users u
WHERE
username='$username'
AND password='$password'
AND activated='1'
AND u.email_address IN (SELECT email from authorized_doctors)
");
$login_check = mysql_num_rows($sql);
if($login_check > 0){
while($row = mysql_fetch_array($sql)){
foreach($row AS $key => $val){
$$key = stripslashes($val);
}
// Register some session variables!
session_start('first_name');
$_SESSION['first_name'] = $first_name;
session_start('last_name');
$_SESSION['last_name'] = $last_name;
session_start('email_address');
$_SESSION['email_address'] = $email_address;
session_start('special_user');
$_SESSION['user_level'] = $user_level;
mysql_query("UPDATE users SET last_login=now() WHERE
userid='$userid'");
header("Location: login_success.php");
}
} else {
echo "<br>You could not be logged in! Either the username and
password do not match or you have not validated your membership!
Please try again!<br />";
include 'login_form.html';
}
?>
*** S'il vous plaît [cesser d'utiliser '' fonctions mysql_ *] (http://stackoverflow.com/questions/12859942 /why-shouldnt-i-use-mysql-functions-in-php).*** [Ces extensions] (http://php.net/manual/fr/migration70.removed-exts-sapis.php) ont été supprimé en PHP 7. En savoir plus sur les instructions [prepared] (http://en.wikipedia.org/wiki/Prepared_statement) pour [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) et [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) et envisager d'utiliser PDO, [c'est vraiment très simple] (http://jayblanchard.net/de mystifying_php_pdo.html). –
[Little Bobby] (http://bobby-tables.com/) dit *** [votre script est à risque pour les attaques par injection SQL.] (Http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-en-php) ***. Même [échapper la chaîne] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) n'est pas sûr! –
*** Vous ne devriez vraiment pas utiliser [hash de mot de passe MD5] (http://security.stackexchange.com/questions/19906/is-md5-considered-insecure) *** et vous devriez vraiment utiliser PHP [construit- dans les fonctions] (http://jayblanchard.net/proper_password_hashing_with_PHP.html) pour gérer la sécurité des mots de passe. Assurez-vous de [ne pas échapper les mots de passe] (http://stackoverflow.com/q/36628418/1011527) ou d'utiliser un autre mécanisme de nettoyage avant de les hacher. Cela change * le mot de passe et provoque un codage supplémentaire inutile. –