1

基本的なphpログインスクリプトがあります。「username」、「password」、「url」の3つのフィールドがあります。ユーザー名とパスワードの組み合わせに基づいて、各ユーザーを自分のURLにリダイレクトしたいと思います。スクリプトに「url」を組み込む方法がわかりません。

これが私のcheck_login.phpです

<?php
$host="localhost"; // Host name
$username="myusername"; // Mysql username
$password="mypassword"; // Mysql password
$db_name="naturan8_login"; // Database name
$tbl_name="users"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or
die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and 
password='$mypassword'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
header("location:error.htm");
}
?>
4

5 に答える 5

1

いくつかのこと:

  1. session_register非推奨です。$_SESSION['username'] = $username代わりに使用してください。
  2. おそらく、セッションにパスワードを保存するべきではありません。ユーザー名またはユーザーIDがあり、それで十分です。
  3. セッションデータを使用すると、個別のページを作成せずに、login_successページを各ユーザーに合わせてカスタマイズできます。あなたがする必要があるのは$_SESSION['username']それが誰であるかを見るためにvarを見るだけです。session_start()(セッションデータの読み取り/書き込みを行うすべてのページで実行できることを確認してください。
于 2011-07-24T18:19:09.567 に答える
1

次のコードを切り替えます。

$count=mysql_num_rows($result);

if($count==1){
    session_register("myusername");
    session_register("mypassword");
    header("location:login_success.php");
}

...に:

$user_info = mysql_fetch_assoc($result);

if( isset($user_info['url']) ) {

    session_register("myusername");
    session_register("mypassword");
    header('Location: ' . $user_info['url']); //Redirects to the supplied url from the DB
}

うまくいけば、これはあなたが探していたものです!

于 2011-07-24T18:21:29.670 に答える
0

mysql_result()を使用して、クエリからurlフィールドを抽出します。

http://php.net/manual/en/function.mysql-result.php

$url = mysql_result($result, $x); // $x is the column number of the url field. 

header("location: {$url}");

于 2011-07-24T18:17:24.327 に答える
0

に置き換えheader("location:login_success.php");ます

$user =  mysql_fetch_assoc($result);
header("location:{$user['url']}");
于 2011-07-24T18:20:35.433 に答える
0

これを照会します。

$sql="SELECT url FROM $tbl_name WHERE username='$myusername' and password='$mypassword' LIMIT 1";

次に、リダイレクトする場所を次のように置き換えます。

header("Location: " . mysql_result($sql, 0));

于 2011-07-24T18:21:31.427 に答える