2015-09-16 5 views
0

Мой код правильно работал на школьном сервере, но теперь я изменил хост, и страница не перенаправляется. Я много пробовал, но никто из них не работает. Спасибо за вашу помощь!header ('Location:') no redirecting

Мой код:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<?php require_once('baza.php'); ?> 
<?php 
session_start(); 

$user=$_POST['user']; 
$pass=$_POST['pass']; 

$encrypted_pass=md5($pass); 
$sql="SELECT * FROM uporabniki WHERE uporabnik='$user' and geslo='$encrypted_pass'"; 
$result=mysql_query($sql); 


$count=mysql_num_rows($result); 

if($count==1){ 
$_SESSION['user']=$user; 
$_SESSION['pass']=$pass; 

session_write_close(); 

header('Location: dostop.php'); 
} 
else { 
echo "Napačno uporabniško ime ali geslo.<br>"; 
echo "<a href='vpis.php'>Nazaj na vpis</a> ali "; 
echo "<a href='index.php'>nazaj na Domačo stran.</a>"; 
} 

?> 
</html> 
+0

Вы открыты для инъекций SQL с этим кодом. – chris85

+0

@ chris85 как я могу их избежать? – cufare

+0

См. Эту тему, http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php. и/или https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet – chris85

ответ

1

Две вещи:

  1. Заголовки могут быть посланы только перед любой другой вывод отправляется. Это включает линии от doctype через голову. Вам нужно отправить заголовок до этого - до даже пустого пространства.

  2. Вам действительно нужно добавить вызов die(); непосредственно после отправки заголовка. В противном случае, хотя пользователь будет перенаправлен, остальная часть скрипта будет продолжать выполняться в фоновом режиме. Это может варьироваться от незначительно неприятных до абсолютно катастрофических, в зависимости от применения.

+0

Большое спасибо! Я переместил php и добавил 'die();' работает отлично сейчас. – cufare

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