###実現したいこと
Smary+PHP+MySQLでログイン画面を実装しようとしています。
データベースにクエリを投げている処理の部分でどうやってもNULLになってしまい、
うまくいきません。
画面表示は問題なく、POSTされたデータはあるようなんですが、
DBとのやり取りの部分がうまく行っていません。
$sqlの部分のSQLをDBに直接クエリすると問題無いです。
どうかご教示願います
DBとの接続は問題ありません。クエリを投げている部分が問題のようですが行き詰まりました
###コード
php
1 2 3<?php 4$settings = file_get_contents( "./setting.json" ) ; 5$param = json_decode( $settings ) ; 6 7$root = $param -> smarty -> root ; 8$templates_dir = $param -> smarty -> templates_dir ; 9$compile_dir = $param -> smarty -> compile_dir ; 10$config_dir = $param -> smarty -> config_dir ; 11$cache_dir = $param -> smarty -> cache_dir ; 12 13$dsn = $param -> database -> dsn ; 14$user = $param -> database -> id ; 15$password = $param -> database -> pass ; 16 17require_once( "$root" ); 18 19$smarty = new Smarty(); 20 21$smarty->template_dir = $templates_dir ; 22$smarty->compile_dir = $compile_dir ; 23$smarty->config_dir = $config_dir ; 24$smarty->cache_dir = $cache_dir ; 25$smarty->assign('post_url', 'http://localhost:8080/local/test.php' ); 26 27// データベースへ接続 28$pdo; 29$sql; 30$stmt; 31$rslt; 32 33try{ 34 $pdo = new PDO($dsn, $user, $password); 35 if ( isset( $pdo ) ) { 36 // $sql = 'SELECT ID ,PASSWORD FROM USER_DATA WHERE ID = :id AND PASSWORD = :password' ; 37 $sql = "SELECT ID ,PASSWORD FROM USER_DATA" ; 38 $stmt = $pdo -> prepare($sql); 39 } 40}catch (PDOException $e){ 41 print('Connection failed:'.$e->getMessage()); 42 die(); 43} 44 45//デフォルトセット 46$smarty->assign('result', 'NO' ) ; 47$smarty->assign('setid', '' ); 48 49if( $_SERVER["REQUEST_METHOD"] == "POST" ){ 50 //リクエストがPOSTなら値をチェック 51 if( isset( $_POST['id'] , $_POST['pass'] ) ) { 52 $condition = array(':id' => $_POST['id'] , 53 ':password' => $_POST['pass']); 54 // $stmt -> execute( $condition ); 55 $stmt -> execute(); 56 $rslt = $stmt -> fetchAll(); 57 // var_dump( $pdo ); 58 // ログイン結果 59 if ( isset( $rslt['id'] ) ) { 60 $smarty->assign('result', 'OK' ); 61 $smarty->assign('success', "your login account is " + $rslt['id'] + " ."); 62 } else { 63 $smarty->assign('setid', $_POST['id'] ); 64 } 65 } 66} 67 68$smarty->display( $templates_dir.'admin.tpl' ); 69 70?> 71
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/10 06:04