Это выглядит как логин script
//Player 1 Login username and password
$p1name = $_POST['p1name'];
$p1pass = $_POST['p1pass'];
//player 2 Login username and password
$p2name = $_POST['p2name'];
$p2pass = $_POST['p2pass'];
$connection = mysql_connect("db_host", "db_user", "db_pass");
mysql_select_db("db_name", $connection);
get_user($p1name, $p1pass);
get_user($p2name, $p2pass);
$row = $result;
$found = false;
if(($row["username"] == $p1name && $row["password"] == sha1("$p1pass"))
&& ($row["username"] == $p2name && $row["password"] == sha1("$p2pass")))
{
$found = true;
break;
}
function get_user($username, $password)
{
$query = 'SELECT * FROM users';
$query .= ' WHERE username = ' . mysql_real_escape_string($username);
$query .= ' AND password = ' . mysql_real_escape_string(sha1($password));
$result = mysql_query($query);
return mysql_fetch_assoc($result);
}
<?php
// Player 1 Login Information
$p1name = $_POST['p1name'];
$p1pass = $_POST['p1pass'];
// Player 1 Login Information
$p2name = $_POST['p2name'];
$p2pass = $_POST['p2pass'];
// Check user information
$player1 = get_user($p1name, $p1pass);
$player2 = get_user($p2name, $p2pass);
// Has any user been found?
$found = array(
'player1' => false,
'player2' => false
);
// Check if use information matches
if($player1['username'] == $p1name && $player1['password'] == $p1pass) {
$found['player1'] = true;
}
if($player2['username'] == $p2name && $player2['password'] == $p2pass) {
$found['player2'] = true;
}
function connect($db_host, $db_name, $db_pass, $db_table) {
$connection = mysql_connect($db_host, $db_name, $db_pass);
mysql_select_db($db_table, $connection);
}
function get_user($username, $password) {
$query = 'SELECT * FROM users';
$query .= ' WHERE username = ' . mysql_real_escape_string($username);
$query .= ' AND password = ' . mysql_real_escape_string(sha1($password));
$result = mysql_query($query);
return mysql_fetch_assoc($result);
}
Вам нужно было создать экземпляры возвращенной пользовательской информации, чтобы проверить каждого игрока против своих.
Вот немного чистая идея. Я предлагаю воспользоваться исключениями, они великолепны:)
function Login($uname, $passwd) {
$uname = mysql_real_escape_string($uname);
$passwd = mysql_real_escape_string($passwd);
// we are using sha encryption for user passwords
$passwd = sha1($passwd);
// lookup the user information they specified
$sql = mysql_query("SELECT * FROM `users` WHERE uname='$uname' && passwd='$passwd'");
try {
// if the username/password combo doesnt work/exist then tell them
if(!mysql_fetch_assoc($sql)) {
$error = new Error();
throw new Exception($error->Login(1));
// if the password DOES work, then continue the login
} else {
$_SESSION['login'] = 'true';
$_SESSION['uname'] = $uname;
redirect();
}
} catch (Exception $e) {
echo $e->GetMessage();
}
}
Что касается комментариев "вы не можете сохранить значение сеанса для двух пользователей!!! ZOMG!" ну.. если вы ДОЛЖНЫ это сделать, просто сохраните их в чем-то вроде этого. $_SESSION ['user1'] $_SESSION ['user2']. Это просто идея - я не потворствую этому.
get_user()
для чего-то. Вам также понадобятся два отдельных экземпляра $ row -$row["username"] == $p1name
и$row["username"] == $p2name
являются взаимоисключающими условиями.