残念ながら私は初心者であるという問題に対する解決策を見つけられなかったし、なぜこの機能がうまくいかず、どうすれば使用するのか分からない。コードと問題plzz。 (PS:ちょうどGoogle翻訳用DSL)plzz password_verifyが動作しない
(//Really 20 hours i try. No solution...(page login) if (isset($_POST['connexion']))
{ $pseudoconnect=htmlspecialchars($_POST['pseudoconnect']);
$passwordconnect=htmlspecialchars($_POST['passwordconnect']);
if (!empty('$pseudoconnect') AND !empty('$passwordconnect'))
{
$pseudoconnectlenght=strlen($pseudoconnect) ;
$passwordconnectlenght=strlen($passwordconnect) ;
if ($pseudoconnectlenght<3 || $pseudoconnectlenght>10 || $passwordconnectlenght<3 || $passwordconnectlenght >10)
{
echo "remplis tous les infos exacte";
}
else
{
$repnom = $connect->prepare("SELECT password FROM membres WHERE pseudo=? ");
$repnom->execute(array($passwordconnect));
$userinfo= $repnom->fetch();
$_SESSION['password']= $userinfo['password'];
if (password_verify($_POST['passwordconnect'], $userinfo['password']))
{
echo "valid";
} else {
echo "pas valid";}}}
(正しいページ登録作業)私はpassword_hashとその機能のwell..PSを使用します。ちょうどGoogle翻訳用DSL)
if (isset($_POST['envoyer']))
{
if (!empty($_POST['pseudo']) AND !empty($_POST['password']))
{
$pseudo=htmlspecialchars($_POST['pseudo']);
$password=htmlspecialchars($_POST['password']);
//$password=password_hash('password',PASSWORD_DEFAULT,['cost'=>12]);
$pseudolenght=strlen($pseudo);
$passwordlenght=strlen($password);
/*verifier les champs */
if ($pseudolenght<4 ||$pseudolenght>10 || $passwordlenght<4 || $passwordlenght> 10)
{
echo "pass ou pseudo pas correct";
}
else //enregistrement et verifier pseudo
{
$repetepseudo = $connect->prepare("SELECT * FROM membres WHERE pseudo=?");
$repetepseudo->execute(array($pseudo));
$existpseudo = $repetepseudo->rowCount();
//verifier pseudo si déja existe
if ($existpseudo == 0)
{
//hasher password
$hash=password_hash($password,PASSWORD_DEFAULT,['cost'=>12]);
$sql = "INSERT INTO membres (pseudo,password) VALUES (?,?)";
$query = $connect->prepare($sql);
$query->execute(array($pseudo,$hash));
echo "enregistrement valide";
//header('location: html.php');
}
else
{
echo "déja utiliser";
}
}
} //if empty
else {
echo "remplir tous les champs ";
}
}//if isset eenvoyer
私は擬似コネクト(jone)passwordconnect(jone)の表示(jone jone not valid)と入力してください。 、2番目の2-)表示文字列(4) "jone"文字列(5) "jone" bool(false)pas valid ... sqlの問題ですか? – zikoo
$ repnom-> execute(array($ passwordconnect));を '$ repnom-> execute(array($ pseudoconnect));に変更してください。 –