2016-06-16 3 views
0

Я использовал Dreamweaver, чтобы сделать страницу входа, но он не работает, после того, как он отправил его, просто перезагружает страницу, даже в случае успеха или неудачи, она должна измениться на другую страницу. Кто-нибудь знает, что я сделал не так?php login не перенаправляется

<?php require_once('Connections/trabalhoCD.php'); ?> 
<?php 
if (!function_exists("GetSQLValueString")) { 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{ 
    if (PHP_VERSION < 6) { 
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; 
    } 
    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); 
    switch ($theType) { 
    case "text": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break;  
    case "long": 
    case "int": 
     $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
     break; 
    case "double": 
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; 
     break; 
    case "date": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break; 
    case "defined": 
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
     break; 
    } 
    return $theValue; 
} 
} 
?> 
<?php 
// Validate request to login to this site. 
if (!isset($_SESSION)) { 
    session_start(); 
} 
$loginFormAction = $_SERVER['PHP_SELF']; 
if (isset($_GET['accesscheck'])) { 
    $_SESSION['PrevUrl'] = $_GET['accesscheck']; 
} 
if (isset($_POST['login'])) { 
    $loginUsername=$_POST['login']; 
    $password=md5($_POST['pass']); 
    $MM_fldUserAuthorization = ""; 
    $MM_redirectLoginSuccess = "tabela1.php"; 
    $MM_redirectLoginFailed = "login2.php"; 
    $MM_redirecttoReferrer = false; 
    mysql_select_db($database_trabalhoCD, $trabalhoCD); 

    $LoginRS__query=sprintf("SELECT login, pass FROM utilizador WHERE login=%s AND pass=%s", 
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

    $LoginRS = mysql_query($LoginRS__query, $trabalhoCD) or die(mysql_error()); 
    $loginFoundUser = mysql_num_rows($LoginRS); 
    if ($loginFoundUser) { 
    $loginStrGroup = ""; 

    if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();} 
    //declare two session variables and assign them 
    $_SESSION['MM_Username'] = $loginUsername; 
    $_SESSION['MM_UserGroup'] = $loginStrGroup;  
    if (isset($_SESSION['PrevUrl']) && false) { 
     $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; 
    } 
    header("Location: " . $MM_redirectLoginSuccess); 
    } 
    else { 
    header("Location: ". $MM_redirectLoginFailed); 
    } 
} 
?> 
<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
</head> 
<body> 
<form ACTION="<?php echo $loginFormAction; ?>" method="POST" name="form" id="form"> 
<table width="600" border="1"> 
    <tbody> 
    <tr> 
     <th width="173" scope="row"><label for="login">Login:</label></th> 
     <td width="411"> 
     <input name="login" type="text" id="login" size="20" maxlength="20"></td> 
    </tr> 
    <tr> 
     <th scope="row"><label for="pass">Password:</label></th> 
     <td> 
     <input name="pass" type="password" id="pass" size="20" maxlength="20"></td> 
    </tr> 
    <tr> 
     <th colspan="2" scope="row"><input type="reset" name="limpar" id="limpar" value="limpar"> 
     <input type="submit" name="enviar" id="enviar" value="enviar"></th> 
    </tr> 
    </tbody> 
</table> 
</form> 
</body> 
</html> 
+2

Не будет перенаправляться, потому что «Заголовки уже отправлены» будет вашей ошибкой. HTML считается выходным, следовательно, заголовок. Вы должны «умереть» (header()) », чтобы убедиться, что вы не столкнулись с этой проблемой. – Darren

+0

Произошло это, но у меня все еще такая же проблема –

+0

Включите отчет об ошибках в верхней части вашего скрипта php - ' Darren

ответ

0

Удалите лишние теги php. Они, вероятно, добавляя пробелы, которые нам посылают перед вызовом header

<?php require_once('Connections/trabalhoCD.php'); 

if (!function_exists("GetSQLValueString")) { 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{ 
    if (PHP_VERSION < 6) { 
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; 
    } 
    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); 
    switch ($theType) { 
    case "text": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break;  
    case "long": 
    case "int": 
     $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
     break; 
    case "double": 
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; 
     break; 
    case "date": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break; 
    case "defined": 
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
     break; 
    } 
    return $theValue; 
} 
} 

// Validate request to login to this site. 
if (!isset($_SESSION)) { 
    session_start(); 
} 
$loginFormAction = $_SERVER['PHP_SELF']; 
if (isset($_GET['accesscheck'])) { 
    $_SESSION['PrevUrl'] = $_GET['accesscheck']; 
} 
if (isset($_POST['login'])) { 
    $loginUsername=$_POST['login']; 
    $password=md5($_POST['pass']); 
    $MM_fldUserAuthorization = ""; 
    $MM_redirectLoginSuccess = "tabela1.php"; 
    $MM_redirectLoginFailed = "login2.php"; 
    $MM_redirecttoReferrer = false; 
    mysql_select_db($database_trabalhoCD, $trabalhoCD); 

    $LoginRS__query=sprintf("SELECT login, pass FROM utilizador WHERE login=%s AND pass=%s", 
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

    $LoginRS = mysql_query($LoginRS__query, $trabalhoCD) or die(mysql_error()); 
    $loginFoundUser = mysql_num_rows($LoginRS); 
    if ($loginFoundUser) { 
    $loginStrGroup = ""; 

    if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();} 
    //declare two session variables and assign them 
    $_SESSION['MM_Username'] = $loginUsername; 
    $_SESSION['MM_UserGroup'] = $loginStrGroup;  
    if (isset($_SESSION['PrevUrl']) && false) { 
     $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; 
    } 
    header("Location: " . $MM_redirectLoginSuccess); 
    } 
    else { 
    header("Location: ". $MM_redirectLoginFailed); 
    } 
} 
?> 
... 

Кроме того, вы должны попытаться организовать свой код таким образом, что вам не нужно, чтобы проверить, если функция определена, прежде чем определить его (это вопрос производительности и только кажется, мне, как плохая идея)

Кроме того, mysql_ библиотека является устаревшим в PHP 5 и удаляется из PHP 7. Consider switching to mysqli or PDO which will let you use parameterized queries. (ПДО путь, имо)

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