извините за довольно бесполезное название .. не был уверен, как кратко описать его сам.Запуск SQL при создании сеанса и перенаправление через php
Запросы
<?php
// Parse the log in form if the user has filled it out and pressed "Log In"
if (isset($_POST["username"]) && isset($_POST["password"])) {
$username = $_POST["username"]; // filter everything but numbers and letters
$password = $_POST["password"]; // filter everything but numbers and letters
// Connect to the MySQL database
include "dbconnect.php";
$sql = mysql_query("SELECT username, admin FROM logins WHERE username='$username' AND password='$password' LIMIT 1"); // query the person
// ------- MAKE SURE PERSON EXISTS IN DATABASE ---------
$existCount = mysql_num_rows($sql); // count the row nums
if ($existCount == 1) { // evaluate the count
while($row = mysql_fetch_array($sql)){
$username = $row["username"];
$admin = $row["admin"];
}
if ($admin ==2) {
$coach = $_POST["username"]; // filter everything but numbers and letters
$password = $_POST["password"]; // filter everything but numbers and letters
$sql = mysql_query("SELECT id, activity FROM coaches WHERE username='$coach' AND password='$password' LIMIT 1");
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
$activity = $row["activity"];
}
$_SESSION["id"] = $id;
$_SESSION["coach"] = $coach;
$_SESSION["password"] = $password;
$_SESSION["activity"] = $activity;
header("location: coach-home.php");
exit();
}
else
if ($admin ==1)
{ header("location: player-login.php"); }
exit();
} else {
echo 'That information is incorrect, try again <a href="testlog.php">Click Here $username</a>';
exit();
}
}
?>
Чтобы сэкономить время, все работало, как это должно быть, пока я не стала поступать запросы в (админ == 2) {} бит. Я пытаюсь заставить его получить данные для регистрации, уже отправленные, а затем, заметив, что такое их уровень администратора (в данном случае 2 = они являются администратором), он запускает другой запрос для создания сеанса для администратора и принимает их на домашнюю страницу тренеров.
ОДНАКО, что кажется, что сеанс не создается (duh), поскольку тренерский дом не видит действительной СЕССИИ и как таковой перенаправляет меня.
Что я хотел бы знать, это a., если то, что я пытаюсь сделать, даже возможно, и не получилось, что b. Я начал работать над перенаправлением-перенаправлением ... так что после (admin == 2) он направляет человека к тренерскому логину, где есть по существу тот же запрос, что и выше, и затем он предназначен для перенаправления на тренерский дом. Тем не менее, страница не делает этого, вместо этого он говорит на тренере-входе и пустой (тренер-login.php код ниже)
Формы внизу страницы (в случае, если это уместно?)
<form id="form1" name="form1" method="post" action="testlog.php">
User Name:<br />
<input name="username" type="text" id="username" size="40" />
<br /><br />
Password:<br />
<input name="password" type="password" id="password" size="40" />
<br />
<br />
<br />
<input type="submit" name="button" id="button" value="Log In" />
</form>
Любая помощь будет очень признательна.
тренер-login.php
<?php
// Parse the log in form if the user has filled it out and pressed "Log In"
if (isset($_POST["username"]) && isset($_POST["password"])) {
$coach = $_POST["username"]; // filter everything but numbers and letters
$password = $_POST["password"]; // filter everything but numbers and letters
// Connect to the MySQL database
include "dbconnect.php";
$sql = mysql_query("SELECT id, activity FROM coaches WHERE username='$coach' AND password='$password' LIMIT 1"); // query the person
// ------- MAKE SURE PERSON EXISTS IN DATABASE ---------
$existCount = mysql_num_rows($sql); // count the row nums
if ($existCount == 1) { // evaluate the count
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
$activity = $row["activity"];
}
$_SESSION["id"] = $id;
$_SESSION["coach"] = $coach;
$_SESSION["password"] = $password;
$_SESSION["activity"] = $activity;
header("location: coach-home.php");
exit();
} else {
echo 'That information is incorrect, try again <a href="index.php">Click Here</a>';
exit();
}
}
?>
Является 'session_start();' внутри всех файлов с использованием сеансов? Добавьте отчет об ошибках в начало файла (ов) сразу после открытия тега < 'error_reporting (E_ALL); ini_set ('display_errors', 1); 'посмотрите, не даст ли что-либо. Также добавьте 'или die (mysql_error())' в 'mysql_query()'. –
* «Форма внизу страницы (в случае, если это уместно?)» * «Да, так много оставьте это и всегда хорошо иметь. –
Почему у вас есть цикл while, чтобы читать результаты запроса с 'LIMIT 1'? – Barmar