Рейтинг:
5
Member 12895537
не волнуйся. Я уже получил свое решение здесь . Спасибо Вам за помощь :)
if (isset ( $_POST ['submit'] )) {
require_once('config.php');
$user_email = $_POST['user_email'];
$access_code = $_POST ['access_code'];
if ($access_code == "super"){
$_SESSION ['id'] = "Admin";
header ( "Location:admin/index.php" );
}
else {
/* execute SQL command */
$result = $dbh->prepare("SELECT * FROM talent_pool WHERE user_email= :user_email AND access_code = :access_code");
$result->bindParam(':user_email', $user_email);
$result->bindParam(':access_code', $access_code);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
if($rows > 0) {
$result=$dbh->prepare("SELECT * FROM talent_pool WHERE user_email=:user_email");
$result->bindParam(':user_email', $user_email);
$result->execute();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
$res_id = $row['id'];
$curr_status = $row['status'];
}
if($curr_status=='Deactive') {
$message = "Sorry $user_email, your account is temporarily deactivated by the admin.";
}else{
$_SESSION['id'] = $res_id;
header("location: indexEmp.php?logid=$res_id");
}
}
else{
$message = 'User Email and Access Code are not exists.';
}
}
}
Только еще один вопрос :
if ($access_code == "super"){
Выше кода я хочу поставить вот так
if ($access_code == "super")||($user_email == "nabilah@yahoo.com"){
однако он сказал: :
syntax error, unexpected '||' (T_BOOLEAN_OR)
Не могли бы вы помочь мне исправить это??
Peter Leow
Это должно быть опубликовано как новый вопрос.
Member 12895537
Мне просто нужно решение. Почему вы так сложно помогаете мне ответить и многие правила? Это место, чтобы помочь разработчику, и оно все еще было в этой теме, Почему я должен публиковаться как новый? . Разве ты не можешь просто помочь? Вы не помогаете мне со вчерашнего дня, но все же заставляете меня выяснить свою вину. Почувствуйте здесь стресс. Спасибо за помощь.
Рейтинг:
23
Peter Leow
Позвольте мне указать на источник ваших неприятностей -
После выполнения первого блока if-else:
if($curr_status=='Deactive') {
$message = "Sorry $user_email, your account is temporarily deactivated by the admin.";
}else{
$_SESSION['id'] = $res_id;
header("location: indexEmp.php?logid=$res_id");
}
Он переходит к выполнению второго блока if-else:
if($roles =='admin') {
header("location: admin/index.php?logid=$res_id");
}else{
$_SESSION['id'] = $res_id;
header("location: indexEmp.php?logid=$res_id");
}
Что же происходит? Именно этот второй блок кода отменяет все, что делается в первом блоке. Итак, следующий вопрос-где разместить этот второй блок кода? Это вам предстоит выяснить.
++++++[Следить]++++++
Раз уж вы настаиваете, взгляните на это:
if($curr_status=='Deactive') {
$message = "Sorry $user_email, your account is temporarily deactivated by the admin.";
} else { // status is active
if($roles =='admin') {
header("location: admin/index.php?logid=$res_id");
} else {
$_SESSION['id'] = $res_id;
header("location: indexEmp.php?logid=$res_id");
}
}
Я также замечаю, что вы используете учетную запись root для доступа к базе данных mysql, то есть нет-нет. Вы должны создать отдельную учетную запись Пользователя с ограниченным правом доступа PHP - кода к базе данных.
+++++ + [Продолжение 2]++++++
Другой способ заключается в следующем:
if($roles =='admin') {
header("location: admin/index.php?logid=$res_id");
} else { // normal user
if($curr_status=='Deactive') {
$message = "Sorry $user_email, your account is temporarily deactivated by the admin.";
} else {
$_SESSION['id'] = $res_id;
header("location: indexEmp.php?logid=$res_id");
}
}
Member 12895537
Я уже настраиваю и пробовал это быть одним условием, однако оно остается ошибкой . Это тоже моя проблема , я не знал, как ее найти.Я пытаюсь выяснить, используя if...else if ... else, и я играю условие все еще ошибка . Я удаляю { а также добавляю } еще ошибку..тогда как ее решить? есть решение?
синтаксическая ошибка, неожиданный '{', ожидая '(' в C:\xampp\htdocs\workshire\accountivate\index.php на линии 37
if($roles =='admin') {
header("location: admin/index.php?logid=$res_id");
}else
if {
$_SESSION['id'] = $res_id;
header("location: admin/indexEmp.php?logid=$res_id");
}
else ($curr_status=='Deactive') {
$message = "Sorry $user_email, your account is temporarily deactivated by the admin.";
}
Peter Leow
После первого else явно отсутствует открытая скобка. Однако, если отбросить синтаксические ошибки, ваша логика неверна. Следуйте потоку вашего кода, чтобы выяснить это.
Member 12895537
Я уже следую за потоком. Я знаю, что это неправильно. Вот почему я спрашиваю, потому что не знаю, как это понять. Можете ли вы помочь мне показать правильную логику? Не заставляйте меня выяснять, потому что я действительно понятия не имею, как это исправить.
Member 12895537
Покажи мне правильный. Я знаю, что это утверждение неверно и логика whttps://www.codeproject.com/WebControls/#rong, из-за этого я спрашиваю здесь и нуждаюсь в решении или идее.Я не могу понять это утверждение сам. Пожалуйста, дайте мне какое-нибудь решение или идею для этого, если еще есть.Мне нужна помощь
Peter Leow
Добавлено в раствор 1.
Member 12895537
Извини, я не понимаю тебя, Питер. Зачем мне нужен отдельный аккаунт? администратор будет активен или деактивирован пользователем. Активный пользователь может войти на страницу пользователя. Уже другая страница и аккаунт. Deactive не может войти в систему. администратора, зайти в админ-разделе. пользователь переходит со страницы пользователя. Он находится в localhost. Проблема теперь деактивированный пользователь может войти в систему. и мне нужно решение для этого утверждения if else. Покажите мне какой-нибудь пример или помогите понять, как я могу исправить свое утверждение if?
Peter Leow
Рассуждение находится в начальной части решения 1: первое if-else отменяет второе if-else. Предполагается, что вы замените свои исходные два блока if-else кодом, который я вам дам.
Рейтинг:
0
Member 12895537
Я уже настраиваю и пробовал это быть одним условием, однако оно остается ошибкой . Это тоже моя проблема , я не знал, как ее найти.Я пытаюсь выяснить, используя if...else if ... else, и я играю условие все еще ошибка . Я удаляю { а также добавляю } еще ошибку..тогда как ее решить? есть решение?
syntax error, unexpected '{', expecting '(' in C:\xampp\htdocs\workshire\accountivate\index.php on line 37
<pre>if($roles =='admin') {
header("location: admin/index.php?logid=$res_id");
}else
if {
$_SESSION['id'] = $res_id;
header("location: admin/indexEmp.php?logid=$res_id");
}
else ($curr_status=='Deactive') {
$message = "Sorry $user_email, your account is temporarily deactivated by the admin.";
}
index.php :
<?php
session_start();
require_once('config.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>User's Account Activiation/Deactivation</title>
<link href="css/bootstrap.css" rel="stylesheet" media="screen">
<link href="css/bootstrap-responsive.css" rel="stylesheet" media="screen">
<link rel="stylesheet" type="text/css" href="css/style1.css">
</head>
<body>
<?php
if(isset($_POST['submit'])) {
$user_email = $_POST['user_email'];
$access_code = $_POST['access_code'];
$result = $dbh->prepare("SELECT * FROM talent_pool WHERE user_email=
:user_email AND access_code = :access_code");
$result->bindParam(':user_email', $user_email);
$result->bindParam(':access_code', $access_code);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
if($rows > 0) {
$result=$dbh->prepare("SELECT * FROM talent_pool WHERE
user_email=:user_email");
$result->bindParam(':user_email', $user_email);
$result->execute();
while($row = $result->fetch(PDO::FETCH_ASSOC)){
$res_id = $row['id'];
$curr_status = $row['status'];
$roles = $row['user_type'];
}
if($roles =='admin') {
header("location: admin/index.php?
logid=$res_id");
}else
if {
$_SESSION['id'] = $res_id;
header("location: admin/indexEmp.php?
logid=$res_id");
}
else ($curr_status=='Deactive') {
$message = "Sorry $user_email, your
account is temporarily deactivated by the admin.";
}
}
else{
$message = 'User Email and Access Code are not exists.';
}
}
?>
<div class="container">
<h1 align="center">User's LogIn</h1><hr>
<form method="post" align="center">
<div class="form-group">
<label for="name">User Email:</label>
<input type="text" id="user_email" name="user_email" class="form-control" placeholder="User Email" autofocus required />
</div>
<div class="form-group">
<label for="name">Access Code</label>
<input type="password" id="access_code" name="access_code" class="form-control" placeholder="Access Code" required>
</div>
<div>
<?php
if(!empty($message)) {
echo "<p style='color: blue; padding: 2px;'>".$message."</p>";
}
?>
</div>
<input type="submit" name="submit" value="Access Account" class="btn btn-primary"/>
</form><br/>
</div>
</body>
</html>
Peter Leow
Это не решение, удалите его.