поэтому я создал простой скрипт для входа на сайт с использованием PHP. Это сработало хорошо, но я сделал некоторые недавние изменения, которые, похоже, не позволяют ему нормально функционировать.PHP Login Script Minor Issue
В основном, когда я помещаю таблицу в массив, я использую переменную $ y, чтобы отслеживать «тип» пользователя, который входит в систему. Однако, когда вход в журнал выполнен успешно, при повторении $ y и $ type оба они возвращают 0. Пользователь может быть либо типом 0, либо типом 1, но кажется, что $ y не назначается по какой-либо причине, когда пользователь найден.
Чтобы подтвердить, что инструкции для входа и т. Д. Работают, если имя пользователя и пароль верны, он отображает правильное имя пользователя и соответствующие данные. На данный момент он просто не хочет назначать значение $ y по какой-то причине.
// If statement that seems to be giving me trouble
global $arrayofdata;
$arrayofdata = array();
$n = 0;
$y = 0;
// Put tables into an array
while ($row = mysql_fetch_array($resource)) {
// If statement to find position of username in array
if($arrayofdata[$n]['username'] == $username){
$y = $n;}
$arrayofdata[$n] = $row;
$n++;
}
// FULL CODE BENEATH HERE
<?php
session_start(); ?>
<html>
<head>
<title>:: clubb3r ::</title>
</head>
<body>
<?php
loginscript::login();
class loginscript {
// Login function..
static function login() {
$host = "gcdsrv.com";
global $username;
if(isset($_SESSION['username'])){
$username = $_SESSION['username'];}
else{
$username = $_POST[uname];
$_SESSION['username'] = $username;} // Store username for later
if(isset($_SESSION['password'])){
$password = $_SESSION['password'];}
else{
$password = $_POST[pword];
$_SESSION['password'] = $password;} // Store password for later
$connect = mysql_connect("gcdsrv.com", "", "");
if(!$connect) {
echo "<h1>500 Server Error</h1>";
}
$db_select = mysql_select_db("c2h5oh_database", $connect);
$resource = mysql_query("SELECT username, password, type, picture, rating FROM accounts;");
global $arrayofdata;
$arrayofdata = array();
$n = 0;
$y = 0;
// Put tables into an array
while ($row = mysql_fetch_array($resource)) {
// If statement to find position of username in array
if($arrayofdata[$n]['username'] == $username){
$y = $n;}
$arrayofdata[$n] = $row;
$n++;
}
$n = 0;
// Set user type (normal user or bar/club, 0 for user and 1 for bar/club)
if(isset($_SESSION['type'])){
$type = $_SESSION['type'];}
else{
$type = $arrayofdata[$y]['type'];
$_SESSION['type'] = $type;
}
// Counts entries
$count = count($arrayofdata);
global $count2;
// Login check loop, searches array for username and password in POST, also stores balance of that user for later
for($x = 0; $x < $count; $x++) {
if($username == $arrayofdata[$x]['username'] && $password == $arrayofdata[$x]['password'] && $username != "" && $password != "") {
$z = 1;
}
}
// Fail
if($z != 1) {
echo "<h1>Bad Username or Password</h1><br />";
echo "<h1><a href='logout.php'>Try Again</a></h1>";
}
// Success
// If for user success
if($z == 1 && $type == 0) {
echo "<h1>Login Successful!</h1><br />";
echo "<h1><a href='mainuser.html'>Proceed</a></h1>";
echo $type;
echo $y;
}
//Success
//If for bar/club success
if($z == 1 && $type == 1){
echo "<h1>Login Successful!</h1><br />";
echo "<h1><a href='mainbar.html'>Proceed</a></h1>";
echo $type;
}
}
}
?>
</body>
</html>
Что вы хотите сказать? –
Не должно быть ваших $ arrayofdata [$ n] = $ row; быть внутри закрытия}, если условие истинно? – MrTechie
Мой вопрос будет, почему $ y всегда 0, если я нахожу правильное имя пользователя в $ n = 5 Mr Techie Я думаю, что вы можете быть чем-то, я еще не помещал строку $ в массив, имя_пользователя 'массива еще не существует. – I2obiN