2013-09-04 4 views
0

Я сейчас строю систему для футбольной лиги. И в настоящее время работают над файлом сценария для добавления результатов. Большинство скриптов работает, и результат всегда успешно добавляется в базу данных. Однако часть аутентификации не работает. Утверждение if в строке 12, похоже, не срабатывает, и я не могу понять, почему.PHP Если заявления не стреляют

Мой код можно найти в ссылке Pastebin здесь: http://pastebin.com/ty4pdGgn

<?PHP 

include 'functions.php'; 
dbConnect(); 

//$userEmail = mysql_real_escape_string($_POST["userEmailText"]); 
$userCode = mysql_real_escape_string($_POST["userPasscodeText"]); 

$authenticated = false; 

$userEmail = "[email protected]"; 
if ($userEmail == "[email protected]") { 
     header('Location: ../results.php?error=authentication'); 
} 

$allUsers = mysql_query("SELECT * FROM accounts WHERE email = '$userEmail'"); 
while ($thisUser = mysql_fetch_assoc($allUsers)){ 
     if ($userCode != $thisUser['passCode']) { 
       header('Location: ../results.php?error=authentication2'); 
     } 
     echo $thisUser['passCode']; 
     $authenticated = true; 
     $userID = $thisUser['userID']; 
} 

if (!$authenticated) { 
     header('Location: ../results.php?error=authentication3'); 
} 

$dateSubmitted = $_POST['submissionDate']; 
$homeTeam = $_POST['homeTeam']; 
$awayTeam = $_POST['awayTeam']; 
$homeGoals = $_POST['homeGoals']; 
$awayGoals = $_POST['awayGoals']; 

if ($homeTeam == $awayTeam) { 
     header("Location: ../results.php?error=team"); 
} 

if (getTeamLeague($homeTeam) != getTeamLeague($awayTeam)) { 
     header("Location: ../results.php?error=league"); 
} else { 
     $leagueID = getTeamLeague($homeTeam); 
} 

if ($homeGoals > $awayGoals) { 
     $winnerID = $homeTeam; 
} else if ($homeGoals < $awayGoals) { 
     $winnerID = $awayTeam; 
} else if ($homeGoals == $awayGoals) { 
     $winnerID = -1; 
} 

$cQuery = mysql_query("INSERT INTO results VALUES ('', $userID, '$dateSubmitted', $leagueID, $homeTeam, $homeGoals, $awayTeam, $awayGoals, $winnerID, 0)"); 

if ($cQuery){ 
     header('Location: ../results.php'); 
} else { 
       echo mysql_error(); 
} 


?> 

Любая помощь в этом вопросе будет высоко ценится. Функция functions.php не содержит ошибок, поскольку все это связано с вводом базы данных, а не с аутентификацией.

+0

с помощью '===' help? – OneOfOne

+0

Невозможно воспроизвести, http://codepad.org/5ISM5cqp также вы хотите выйти/умереть после любого перенаправления. –

+1

прокомментируйте строку 'header()' на ваш досадный IF, а вместо этого echo «is true», затем положите else и echo "is false", затем после закрытия '}' else else 'exit();' (простой код для тестирования чего-то конкретного). Что получает эхо? Я уверен, что это будет «правда», и вы обнаружите, что IF на самом деле «не стреляет» :) – James

ответ

0

СОС код сравнения («если» часть в строке 12), что вы вставили должен работать, у меня есть две рекомендации:

  1. Положите кубик (); или exit(); после части header().
  2. Попробуйте найти here, так как я не уверен, что заголовок() будет работать, в то время как путь местоположения, который вы установили, является относительным. Основной совет - всегда использовать базовые пути для перенаправления, например «http://your.site.com/script.php»).
Смежные вопросы