2016-04-10 10 views
1

なぜ私が送信ボタンを押して、私のPHPページに行くためのアクションが起こるのか、興味がありますか、ページは単にaction_page.phpに変わり、 phpファイル全体の平面黒いテキストを持っています。明らかに、これはPhpファイルが実行されていないことを意味しますが、私の人生の理由は理解できません。PHPが誤読されていて、コードがプレーンHTMLテキストに変換されています

私はphpがPHPバージョン7.0.4としてインストールされていることを知っており、私のサーバはうまく動作しています。ここで

はPHPです:

 <!DOCTYPE html><!-- login.html --> 
<?php include "../php/action_page.php"; ?> 
<html> 
<head lang="en"> 
    <meta charset="UTF-8"> 
    <title>Login</title> 
    <link href="css/login_2.css" rel="stylesheet"> 
</head> 
<body> 
    <div class="login-form"> 
     <form id = "login_form" action="php/action_page.php" method ="POST"> 
       <h1> Login </h1> 
       <input type='hidden' name='submitted' id='submitted' value='1' /> 

       <div class="form"> 
       <input type ="text" name='username' class="credentials-form" placeholder="Username" id="Username"> 
      </div> 
      <div class="form data"> 
       <input type ="password" name='password' class="credentials-form" placeholder="Password" id="Password"> 
      </div> 
      <input type='submit' name='Submit' value='Login' class='button'/> 
      <button type="button" class="button" id="acc" onclick="location.href='createAccount.html';"><span>Create Account</span></button> 
    </form> 
</div> 

+3

7.xでPHPを実行しても、mysql_関数のセットは存在しません。それにも留意してください。新しいmysqli_と古いものを混在させることはできません。それらは交換できません。 – Rasclatt

+0

@rasclatt大変ありがとうございます! – TheRealSoCal

+0

- echo "something"のような簡単なPHPファイルを実行できますか?あなたの現在のPHPのバージョンとサーバーで? –

答えて

1

あなたはPHP7にmysql_ *関数を使用している:ここでは

<?php 
    //setting variables for connecting to database 
    $host  = 'localhost'; 
    $username = 'root'; 
    $password = ''; 
    $db  = 'aquamandb'; 
    date_default_timezone_set('America/Chicago'); 

    //connecting to the database 
    $connect = new mysqli($host,$username, $password, $db) or die("Unable to connect"); 

    //getting the username, and password for sanitizing 
    $_US_username = $_POST['username']; 
    $_US_password = $_POST['password']; 

    //sanitize the variable to remove SQL statements that could drop the database potentially. 
    $username  = mysql_real_escape_string($_US_username); 
    $password  = mysql_real_escape_string($_US_password); 

    $sql  = "SELECT * FROM user WHERE username = '$username' AND password = '$password'"; 
    $result = mysqli_query($sql); 

    $numrows = mysql_num_rows($result); 

    if($numrows > 0) 
    { 
     while($row = mysqli_fetch_assoc($result)) 
     { 
      echo "id: " . $row["userID"]. " - UserName: " . $row["username"]. " " . $row["password"]. " - Type: " . $row["type"]. "<br>"; 
     } 
    } 
    else 
    { 
     echo "username does not match!"; 
    } 
?> 

はhtmlです。 mysql_ *関数はphp7から完全に削除されています。そして、SQLインジェクションを避けるために、以下のコードを使用してください。

$sql = $connect->prepare("select * from user where username = ? and password=?"); 
$sql->bind_param("ss",$_US_username,$_US_password); 
$sql->execute(); 
$result=$sql->get_result(); 
$row=$result->fetch_assoc(); 
関連する問題