2013-04-11 9 views
-4

У меня была моя форма, отлично работающая и получающая данные из моей базы данных. Но недавно я изменил некоторые вещи с моей страницы входа, чтобы назначать разные страницы для разных пользователей, и как только они вошли в систему успешно, теперь у меня нет данных (результатов), отображаемых в файле studentloggedin.php. Спасибо заранееПолучить данные из базы данных php MySQL не работает

Я думаю, проблема связана с переменными, которые я предполагаю.

studentloggedin.php

<?php 
//code for display marks 

$con=mysqli_connect("localhost","kurtfarrugia","1234","kurt_farrugia"); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$result = mysqli_query($con,"SELECT * FROM tblexamresults WHERE admin_usr_name ='$username'"); 

while($row = mysqli_fetch_array($result)) 
{ 
echo "English: " . $row['english'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Maltese: " . $row['maltese'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Italian: " . $row['italian'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "PSE: " . $row['pse'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Social Studies: " . $row['social_studies'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Physical Education: " . $row['physical_education'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Drama: " . $row['drama'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Graphical Communication: " . $row['graphical_communication'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Computer Studies: " . $row['computer_studies'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Mathematics: " . $row['mathematics'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Integrated Science: " . $row['integrated_science'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "Physics: " . $row['physics'] . " marks"; 
echo "<br />"; 
echo "<br />"; 
echo "<br />"; 

$total = $row['english'] + $row['maltese'] + $row['italian'] + $row['pse'] +  $row['social_studies'] + $row['physical_education'] + $row['drama'] + $row['graphical_communication'] + $row['computer_studies'] + $row['mathematics'] + $row['integrated_science'] + $row['physics']; 

$average= $total/11; 

echo "Statistics:"; 
echo "<br />"; 
echo "<br />"; 
echo "Your average mark is: " . round($average, PHP_ROUND_HALF_UP) . " marks"; 
} 

mysqli_close($con); 
?> 

login.php

<?php 
session_start(); 
//*********Server Information to establish a connection ****** 

$host  = 'localhost'; 
$user  = 'kurtfarrugia'; 
$password = '1234'; 
$database = 'kurt_farrugia'; 

//Open connection 
$mysqli = new mysqli($host, $user, $password, $database); 
if (mysqli_connect_errno()) 
{ 
printf("Connection failed: %s\n", mysqli_connect_error()); 
exit(); 
} 

//***************End Connection Establishment*************************************** 
//*******Form Information******** 

$userName = mysql_real_escape_string($_POST['username']); //User Name sent from Form 
$password = mysql_real_escape_string($_POST['password']); // Password sent from Form 


//*********retrieving data from Database********** 


$result = $mysqli->query("SELECT * FROM tbladmin WHERE admin_usr_name = '".$userName."'  and admin_pwd = '".$password."'"); 
if($row = $result->fetch_assoc()) 
{ 
if($row['occupation'] == 'student') 
{ 
    header("Location: studentloggedin.php"); 
} 
else if($row['occupation'] == 'lecturer') 
{ 
    echo "you are a lecturer"; 
} 
} 
else 
{ 
header("Location: login_fail2.php"); 
} 

//**********it ensures that the script does not continue unless the username varaible is not null and not empty 
if (!empty($_POST['username'])) { 
$username = mysql_real_escape_string(strip_tags(trim($_POST['username']))); 
} else { 
//die('Hey turd, go back and fill in your username!'); 
    header("Location: login_fail2.php"); die; 
} 
?> 

Это был мой ПРЕДЫДУЩИЙ LOGIN PAGE КОТОРЫХ РАБОТАЛ GREAT со страницей СТУДЕНТА LOGGED IN..so, что мне не хватает в новом LoginPage ?

ПРЕДЫДУЩИЙ страница LOGIN, которая работала хорошо

<?php 
session_start(); 
//*********Server Information to establish a connection ****** 

$host  = 'localhost'; 
$user  = 'kurtfarrugia'; 
$password = '1234'; 
$database = 'kurt_farrugia'; 

$link = mysql_connect($host,$user,$password) or die('Error in Server information'); 
mysql_select_db($database,$link) or die('Can not Select Databasse'); 

//***************End Connection Establishment*************************************** 
//*******Form Information******** 

$userName = mysql_real_escape_string($_POST['username']); //User Name sent from Form 
$password = mysql_real_escape_string($_POST['password']); // Password sent from Form 

$rememberMe = strip_tags($_POST['rememberMe']); 
setcookie("username", $_POST['username']); 

//*********retrieving data from Database********** 

$query = "select * from tbladmin where admin_usr_name='$userName' and   
admin_pwd='$password'"; 

$res = mysql_query($query); 

$rows = mysql_num_rows($res); 

//**********it ensures that the script does not continue unless the username varaible  is not null and not empty 
if (!empty($_POST['username'])) { 
$username = mysql_real_escape_string(strip_tags(trim($_POST['username']))); 
} else { 
//die('Hey turd, go back and fill in your username!'); 
header("Location: login_fail2.php"); die; 
} 

/*if ($rememberMe) { 
setcookie("loggedIn", "yes", time()+3600); 

header ("Location: studentloggedin.php"); die; 
     } 
else { 
echo "Username and/or password is incorrect."; 
} 


if ($_COOKIE['loggedIn'] == "yes") { 
header ("Location: studentloggedin.php"); 
die(); 
} 
*/ 
// HERE is the query 

//$result2 = mysqli_query($con,"SELECT occupation FROM tbladmin WHERE admin_usr_name  ='$username'" == 'student'); 
//$row == mysqli_fetch_array($result) 

//**********if $userName and $password will match database, The above function will  return 1 row 
if($rows==1) 
//{ 
{ 
//***if the userName and password matches then register a session and redrect user to  the studentloggedin.php 

//$_SESSION['userName']; 
//$_SESSION['password']; 

header("location:studentloggedin.php"); 
} 
//} 

else 
{ 
header("Location: login_fail2.php"); die; 
} 

?> 
+0

Не пытайтесь угадать, где проблема. Отлаживайте свой код, чтобы четко определить, где именно проблема. Проверьте свой журнал ошибок PHP и проверьте 'mysql_error()' после каждого вызова 'mysql_query()'. – Jocelyn

+0

Нет смысла использовать 'mysqli', если вы все еще добавляете SQL. Изучите [** подготовленные заявления **] (http://www.php.net/manual/en/mysqli.prepare.php), чтобы люди не могли вводить все, что захочет, в ваш код. – h2ooooooo

ответ

1

в вашем SQL запросе переменная $username никогда не устанавливается

$result = mysqli_query($con,"SELECT * FROM tblexamresults WHERE admin_usr_name ='$username'"); 

и не передается в URL

header("Location: studentloggedin.php"); 

Вы должны положить имя пользователя в URL-адрес и получить значение для выполнения запроса.

+0

Какой адрес вы имеете в виду? –

+0

Это один заголовок («location: studentloggedin.php»); но я думаю, что, как вы уже это делали, поместите имя пользователя в сеанс, вызовите session_start() в вашем studentloggedin.php и получите имя пользователя-ученика из СЕССИИ (не из POST). – TheEwook

+0

Решил проблему. Назначьте имя пользователя переменной на мою страницу studentloggedin.php. Всем спасибо ! –

Смежные вопросы