2014-11-06 3 views
1

Я сейчас работаю на странице входа, но после ввода правильного имени пользователя и пароля он перешел к checkLogin.php и сказал, что вы не можете выполнить этот файл напрямую, а не перенаправления. Я не могу найти, где я совершил ошибку.php login не может перенаправлять

<?php 
// checkLogin.php 
session_start(); // Start a new session 
require('connect.php'); // Holds all of our database connection information 
// Get the data passed from the form 
$username = $_POST['user']; 
$password = $_POST['password']; 
$username = stripslashes($username); 
$password = stripslashes($password); 
$sql = "Select 
supplier_id as id, 
supplier_lastname as lastname, 
supplier_firstname as firstname, 
supplier_email as email , 
supplier_phone as phone, 
'Supplier' as entity_name 
FROM suppliers 
WHERE suppliers.supplier_id = '$username' AND suppliers.supplier_pw = '$password' 
union all 
SELECT 
customer_id as id, 
customer_lastname as lastname, 
customer_firstname as firstname, 
customer_email as email, 
customer_phone as phone, 
'Customer' as entity_name 
FROM customers 
WHERE customers.customer_id = '$username' AND customers.customer_pw = '$password'; 
"; 
$result = mysqli_query($sql) or die (mysqli_error()); 
$count = 0; 
$line= mysqli_fetch_assoc($result); 
while ($line) { 
    $count++; 
    $info = $line[5]; 
} 
if ($count == 1 && $info='Supplier') { 
    $_SESSION['loggedIn'] = "true"; 
    $_SESSION['username'] = $line['id']; 
    header("Location: application/view_orders.php"); 
} 
elseif ($count == 1 && $info='Customer') { 
    $_SESSION['loggedIn'] = "true"; 
    $_SESSION['username'] = $line['id']; 
    header("Location: application/orderForm.php"); 
} 
else { 
    $_SESSION['loggedIn'] = "false"; 
    echo "<script type='text/javascript'>alert('Log-In failed! Please check your username or password again.'); window.location.href='http://oncommercetrend.com/'</script>"; 
} 
?> 

А вот моя форма:

<form class="login active" action="checkLogin.php"> 
        <h3>Login</h3> 
        <div> 
         <label>Username:</label> 
         <input name="user"type="text" /> 
         <span class="error">This is an error</span> 
        </div> 
        <div> 
         <label>Password: <!--<a href="forgot_password.html" rel="forgot_password" class="forgot linkform">Forgot your password?</a>--></label> 
         <input name="password" type="password" /> 
         <span class="error">This is an error</span> 
        </div> 
        <div class="bottom"> 
         <div class="remember"><input type="checkbox" /><span>Keep me logged in</span></div> 
         <input type="submit" value="Login"></input> 
         <a href="register.html" rel="register" class="linkform">You don't have an account yet? Register here</a> 
         <div class="clear"></div> 
        </div> 
       </form> 

Вот DB соединение:

$link = mysqli_connect($db_host,$db_user,$db_pass) or die('Unable to establish a DB connection'); 
mysqli_select_db($db_database,$link); 
+0

У вашей формы нет способа публикации. Модифицируйте '

+0

Я просто поместил метод в мою форму и избавился от '', но он все еще не работает. После входа в систему, он отправился на checkLogin.php и сказал, что вам не разрешено выполнять этот файл напрямую. – Joseph

+0

Вам следует добавить 'exit;' после всех ваших заголовков. Это часто является проблемой. –

ответ

0

Это будет проще показать вам в графической форме, а не комментировать назад и вперед.

У вашей формы нет способа публикации.

Изменить для

<form class="login active" action="checkLogin.php" method="post"> 

форма по умолчанию метод GET, если опущено.

После всех ваших заголовков вы должны добавить exit;.

Вы должны изменить свой код DB на это и изменение ваших фактических настроек/учетных данных:

$db_host = "yourhost"; 
$db_user = "user"; 
$db_pass = "password"; 
$db_database = "database_name"; 

$link = mysqli_connect($db_host,$db_user,$db_pass,$db_database) 
     or die("Error " . mysqli_error($link)); 

изменить это:

$result = mysqli_query($sql) or die (mysqli_error()); 

этого (передача параметров соединения DB первый)

$result = mysqli_query($link, $sql) or die (mysqli_error($link)); 
Смежные вопросы