はい、md5 が適切なオプションではないことはわかっています。代わりに password_hash() を使用する必要がありますが、私のホスティング ソリューションは php バージョン 5.3.3 です。とにかく、これはトレーニング目的のためだけに本番環境になることは想定されていません。すぐにプロバイダーを変更します。
いくつかのコードをセットアップしましたが、登録した資格情報、md5 形式のパスワードが db に記録されていることがわかります。しかし、同じ資格情報でログインすると、「無効な電子メールまたはパス」というエラー メッセージが表示されます。
これは私のコードです:
echo 'Current PHP version: ' . phpversion();
include_once("config.php");
session_start();
if(isset($_POST['signup'])){
$name = $_POST['name'];
$email = $_POST['email'];
$pass = md5($_POST['pass']);
$insert = $pdo->prepare("INSERT INTO users (name,email,pass)
values(:name,:email,:pass) ");
$insert->bindParam(':name',$name);
$insert->bindParam(':email',$email);
$insert->bindParam(':pass',$pass);
$insert->execute();
}
elseif(isset($_POST['signin'])){
$email = $_POST['email'];
$pass = $_POST['pass'];
$select = $pdo->prepare("SELECT * FROM users WHERE email='$email' and pass='$pass'");
$select->setFetchMode();
$select->execute();
$data=$select->fetch();
if($data['email']!=$email and $data['pass']!=$pass)
{
echo "invalid email or pass";
}
elseif($data['email']==$email and $data['pass']==$pass)
{
$_SESSION['email']=$data['email'];
$_SESSION['name']=$data['name'];
header("location:aeroplane.php");
}
}
したがって、サインアップは正常に機能しますが、署名用の他の場合は失敗します。私はここで何を逃しましたか?
-ありがとう
echo 'Current PHP version: ' . phpversion();
include_once("config.php");
session_start();
if(isset($_POST['signup'])){
$name = $_POST['name'];
$email = $_POST['email'];
$pass = md5($_POST['pass']);
$insert = $pdo->prepare("INSERT INTO users (name,email,pass)
values(:name,:email,:pass) ");
$insert->bindParam(':name',$name);
$insert->bindParam(':email',$email);
$insert->bindParam(':pass',$pass);
$insert->execute();
}
elseif(isset($_POST['signin'])){
$email = $_POST['email'];
$pass = md5($_POST['pass']);
$select = $pdo->prepare("SELECT * FROM users WHERE email='$email' and pass='$pass'");
$select->setFetchMode();
$select->execute();
$data=$select->fetch();
if($data['email']!=$email and $data['pass']!=$pass)
{
echo "invalid email or pass";
}
elseif($data['email']==$email and $data['pass']==$pass)
{
$_SESSION['email']=$data['email'];
$_SESSION['name']=$data['name'];
header("location:aeroplane.php");
}
}
$pass = md5($_POST['pass']);
コード署名で更新されました。
ログイン時にも md5 を使用する必要があります
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加