2016-10-19 10 views
-1

私はSQL/PHPを使い慣れていて、こちらの手順に従っています - 具体的には、login.phpページ(https://www.tutorialspoint.com/php/php_mysql_login.htm)を作成して、私は結果が返された場合にのみ起こることを強調したいと思いますクエリー結果が返ってくるとPHP/SQLエラー500

$myusername = $_POST['username']; 
$mypassword = $_POST['password']; 

$sql = "SELECT id FROM admin WHERE username = '".$myusername."' and passcode = '".$mypassword."'"; 

:成功した結果は次のクエリによって返されたとき、私は私のページがエラー500を返し、...しかし、問題を抱えています。ユーザー名とパスワードのコンボが存在しない場合、通常の「間違った詳細が入力されました」というメッセージが表示されます。

<?php 
include("config.php"); 
session_start(); 

if($_SERVER["REQUEST_METHOD"] == "POST") { 
    // username and password sent from form 

    $myusername = mysqli_real_escape_string($db,$_POST['username']); 
    $mypassword = mysqli_real_escape_string($db,$_POST['password']); 

    $sql = "SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'"; 
    $result = mysqli_query($db,$sql); 
    $row = mysqli_fetch_array($result,MYSQLI_ASSOC); 
    $active = $row['active']; 

    $count = mysqli_num_rows($result); 

    // If result matched $myusername and $mypassword, table row must be 1 row 

    if($count == 1) { 
    session_register("myusername"); 
    $_SESSION['login_user'] = $myusername; 

    header("location: welcome.php"); 
    }else { 
    $error = "Your Login Name or Password is invalid"; 
    } 
} 
?> 

印刷されたエラーメッセージによると、エラーはこのによって引き起こされている:

Notice: Undefined index: active in /var/www/html/login.php on line 14

Fatal error: Call to undefined function session_register() in >/var/www/html/login.php on line 21

ない役に立つかもしれませんどのような情報を確認してくださいので、私は、私は私ができる限り多くを提供し、より良いだろうと思って!

PHPMyAdmin Version information: 4.2.12deb2+deb8u2'

Apache/2.4.10 (Raspbian)

Database client version: libmysql - 5.5.50

PHP extension: mysqli Documentation

Server: Localhost via UNIX socket

Server type: MySQL

Server version: 5.5.52-0+deb8u1 - (Raspbian)

Protocol version: 10

User: [email protected]

Server charset: UTF-8 Unicode (utf8)

+1

あなたのログ/エラーチェック、全体の9ヤードを確認してください。 PHPとMySQLを介して。 –

+0

これをconfig.phpファイルに入れておけば、ページにエラーが出力されるので、 'error_reporting(E_ALL);エラーが発生したことを簡単に確認できます。ini_set( 'display_errors'、1); '。 –

+1

また、実際にクエリを実行して結果を取得しようとするコードの残りの部分を表示しないでください。だから私たちはここであなたを助けることはできません。 – aynber

答えて

-2

500エラーがランタイムエラーコードで、あなたは構文の問題を抱えている意味するかもしれない、データベースへの接続など あなたは、あなたがブラウザのエラーを表示するために少し自由を取ることができます学んでいるとあなたは、Debianのデフォルトの場所にサーバー構成 に応じて、エラーログApacheやPHPをチェックし、正確なエラーを見ることができますプロパティ

にはdisplay_errorsを設定あなたのphp.iniを=変更することができることは/ var/log/apacheの/ error_logに

です

私はそれが願っています

関連する問題