2017-05-16 16 views
0


PHP関数からHTMLページに移動し、そうであれば、ユーザーをHTMLページにリダイレクトします。このページは、ユーザーがDBのユーザー名とパスワードを入力するためのフォームです。
ユーザーがフォームを送信した後、私が(ファンクション内で)出発点に戻りたいと思います。
この機能を呼び出す別のファイルで$_SESSIONが開始されていることも知っておくべきことです。
は、ここに私が試したものだ、まだそれはうまくいきませんでした:
connect.php:
私は思っていた私は最近、PHPを始め

<?php 
    function sqlConnect() { 
    $_SESSION['CurrentPage'] = "/php/sql/connect.php"; 
    if(!array_key_exists('mysql_username', $_SESSION) && !array_key_exists('mysql_passwd', $_SESSION)) { 
     echo "<script>window.location='/forms/sql_login.php';</script>"; 
    } 
    $servername = "localhost"; 
    $username = $_SESSION['mysql_username']; 
    $passwd  = $_SESSION['mysql_passwd']; 
    $db_name = "ToolDB"; 
    // create connection 
    $sql_connection = new mysqli($servername, $username, $passwd, $db_name); 
    // check that it was established 
    if($sql_connection->connect_error) { 
     $msg = $sql_connection->connect_error; 
     echo "<script>alert('Impossible de se connecter à la base de données MySQL : $msg.');</script>"; 
     return NULL; 
    } 
    else { 
     $_SESSION['mysql_username'] = $username; 
     $_SESSION['mysql_passwd'] = $passwd; 
     return $sql_connection; 
    } 
    } 
?> 

sql_connection.php:

<?php session_start(); $url = $_SESSION['CurrentPage']; ?> 
<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8" /> 
    <title>Sound Department - Program Making Tool (form)</title> 
    <link rel="stylesheet" type="text/css" href="/style/style.css" /> 
    </head> 
    <body> 
    <header> 
     <nav> 
     <h2 style="margin-left: 10px; font-family: sans-serif;">Sound Department - Program Making Tool (MySQL Login Page)</h2> 
     </nav> 
    </header> 
    <div class="bodyElement"> 
     <form action="<?php echo $url ?>" method="post"> 
      <p>Nom d'utilisateur : <input type="text" name="mysql_username" /></p> 
      <p>Mot de passe : <input type="password" name="mysql_passwd"/></p> 
      <p><input type="submit" name="submit" value="Submit" /></p> 
     </form> 
    </div> 
    </body> 
</html> 


誰もがそれを達成する方法を知っていますか?
PS:私はプレーンテキストでパスワードを保存すべきではないことを知っていますが、現時点では私のローカルネットワーク上でサイトが実行されていて、後でもっと便利な方法でパスワードを保存するようにコードを修正しようと思っていました。

+1

**プレーンテキストのパスワードを保存しないでください!**パスワードのセキュリティを処理するために***(http://jayblanchard.net/proper_password_hashing_with_PHP.html)*** PHPの[組み込み関数]を使用してください。 5.5より小さいPHPバージョンを使用している場合、 'password_hash()' [互換パック](https://github.com/ircmaxell/password_compat)を使用することができます。 ***ハッシュする前に[パスワードをエスケープする](http://stackoverflow.com/q/36628418/1011527)***または他のクレンジングメカニズムを使用する必要はありません。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –

答えて

1
ob_end_clean(); 
header("Location: example.com"); 
exit(); 

これは、ユーザーをリダイレクトする場所の末尾に配置します。 出力後にヘッダー()をリダイレクトすることはできませんが、 ob_end_clean() は出力後にリダイレクトできます。

+0

@JayBlanchard私はPHPを初めて使いました。あなたがエコーを持っているなら、リダイレクトできるようにする必要がありますが、あなたの意見を私のこと以上に信頼するので編集します。 – Carter

+0

あなたは正しいです!私はOPのコードでエコーを見逃していました。さらに、OPがJavaScriptリダイレクトを使用しようとしているように見えます。 –

+0

彼はob_end_clean()が必要ですか?あなたはおそらく私よりも多くを知っているでしょう – Carter

0

header()関数を使用して、クライアントを別のページにリダイレクトすることができます。

<?php 
    header('Location: <your page>'); 
    exit; 
?> 
関連する問題