저는 최근에 PHP로 엉망이되었습니다. 사용자 이름과 암호를 저장하는 데이터베이스를 사용하여 간단한 로그인 페이지를 만들려고 노력하면서 새로운 지식을 테스트하고있었습니다. 모두 잘 가고 있었지만 거대한 벽을 만났습니다! 웬일인지 내 fetch 메서드 $result = $stmt->fetch();
이 phpMyAdmin에서 sql 쿼리를 실행해도 결과를 반환하지 않습니다. 이것은 폼이나 암호화로부터 입력을 얻는 방법과 관련이 있습니까?php 및 sql을 통한 계정 정보 확인
여기 내 전체 코드입니다. 고마워 내가 아직 설정되지 않은 변수에 대한 당신은 $stmt->bindParam
을 사용하고있는이 하하
<?php
include 'inc/db.inc.php';
$link = new PDO(DB_INFO, DB_USER, DB_PASS);
?>
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/style.css">
<script src="js/libs/modernizr-2.5.3.min.js"></script>
</head>
<body>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['register'])) {
$sql = "INSERT INTO account (account_name, account_pass) VALUES (:name, :pass)";
$stmt = $link->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':pass', $pass);
$name = $_POST["username"];
$pass = md5($_POST["password"]);
$stmt->execute();
echo "Thank you for registering!";
} else if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['login'])) {
$sql = "SELECT account_name, account_pass FROM account WHERE account_name=:name AND account_pass=:pass";
$stmt = $link->prepare($sql);
$stmt->bindParam(':name', $name, PDO::PARAM_STR);
$stmt->bindParam(':pass', $pass, PDO::PARAM_STR);
$pass = strip_tags(md5($_POST["password"]));
$name = strip_tags($_POST["username"]);
$stmt->execute();
$result = $stmt->fetch();
print_r($result);
if(empty($name) || empty($pass)){
echo "please enter a username and password!";
} else {
if(empty($result)){
echo "yes";
} else {
echo "no";
}
}
} else {
?>
<form method="post" action="test.php">
<label for="username">Username: </label>
<input type="text" name="username" />
<label for="password">Password: </label>
<input type="password" name="password" />
<input type="submit" name="login" value="Login" />
<input type="submit" name="register" value="register" />
</form>
<?php } ?>
</body>
</html>
MySQL은, 또는 무엇을 사용하고 있지 않다 할 것 ...? – Fallenreaper
'fetch()'주변에 약간의 디버깅을 추가 할 수 있습니까? 선택을 할 때 데이터베이스가 반환 한 것을 보니 좋을 것입니다. – andrewsi