2017-10-30 7 views
2

私はファイルsidebar.phpを持っています。モジュール "login.php"がこのファイルに接続されています。モジュールを取り外して新しいモジュールを接続してください

<!-- Sidebar --> 
<aside class="slide"> 
<?php 
if(!isset($_POST['user'])) { 
    require 'login.php'; 
} else { 
    require 'authorized.php'; 
} 
?> 
</aside> 

login.php

<div class="login"> 
    <form method="post" action="../profile.php"> 
     <p><input type="text" name="log" value="" placeholder="Login or Email"></p> 
     <p><input type="password" name="pass" value="" placeholder="Password"></p> 
     <p class="remember_me"> 
     <label> 
      <input type="checkbox" name="remember_me" id="remember_me"> 
      Remember me 
     </label> 
     </p> 
     <p class="submit"><input type="submit" name="sub" value="Login"></p> 
    </form> 
</div> 

私がフォームを送信すると、私はlogin.phpを削除したいし、代わりにこの追加authorized.phpの。

profile.php

<?php 
include("db.php"); 

$log = $_POST['log']; 
$pass = $_POST['pass']; 

if(isset($_POST['sub'])) { 
    $q = mysql_query("SELECT * FROM user WHERE log='$log'"); 
    $r = mysql_fetch_array($q); 

    if($pass == $r['pass']) { 
    header('location: /'); 
    } else { 
    header('location: /'); 
    } 
} 
?> 

私はそれを行うことができますどのように?

+1

条件式を 'require'の周りに置き、必要に応じてページを必要とします。 – chris85

+3

あなたのコードは[** SQLインジェクション**](https://en.wikipedia.org/wiki/SQL_injection)攻撃に対して脆弱です。あなたは[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https ://secure.php.net/manual/en/pdo.prepared-statements.php)ドライバ。 [**この記事**](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)には、いくつかの良い例があります。 –

+4

mysql_ *関数を使用しないでください。それらはv5.5(2013年6月)から廃止され、v7.0(2015年12月)以降削除されました。代わりに[** mysqli _ ***](https://secure.php.net/manual/en/book.mysqli.php)または[** PDO **](https://secure.php.net/** ** prepared statements **](https://secure.php.net/manual/en/pdo.prepare.php)と[**バインドされたパラメータ** ](https://secure.php.net/manual/en/pdostatement.bindparam.php)。 –

答えて

0

あなたはuserという名前の入力したログインしている場合は、サイドバーのファイルに条件を設定する必要があります。もちろん

<!-- Sidebar --> 
<aside class="slide"> 
    <?php 
    if(!isset($_POST['user'])) { 
     require 'login.php'; 
    } else { 
     require 'authorized.php'; 
    } 
    ?> 
</aside> 

を、ユーザーの有効な値があるかどうかを確認することも必要必要なフィールドがすべて存在し、有効であることを検証する有効性チェックを行います。

+0

間違い:書き込みコンテキストで関数の戻り値を使用できない – Qwerty

+0

@Qwerty誤ってPOSTで間違った種類のブラケットを使用しましたが、 '$ _POST ['user'] 'を使用して編集しました。 – shemaya

+0

はまだありません問題のコードを変更しました – Qwerty

関連する問題