Обновленный ответ
Этот код должен работать:
session_start();
include("db_connect.php");
$myusername = mysql_real_escape_string($_POST['myusername']);
$mypassword = crypt($_POST['mypassword'], 'ctk');
$mypassword = mysql_real_escape_string($mypassword);
$sql = "SELECT * FROM `login` WHERE `u_name` = '$myusername' and `password` = '$encrypted_mypassword'";
$result = mysql_query($sql);
if(mysql_num_rows($result) == 1)
{
$_SESSION['myusername'] = $myusername;
$_SESSION['encrypted_mypassword'] = $encrypted_mypassword;
header("Location: http://servername/folder/edit-grid.php");
}
else
{
header("Location: http://servername/folder/main_login.php?a=Login Failed Try Again!!");
}
Оригинальный ответ
Строка ниже не имеет смысла. Вы уже начали сеанс в начале вашего сценария. Также session_start
не принимает никаких аргументов. Удаление может решить вашу проблему.
session_start('myusername');
Кроме того, вы должны использовать полный URL при перенаправлении:
HTTP / 1.1 требует абсолютного URI как
Аргумент к »Расположение: в том числе
схема, имя хоста и абсолютный путь,
но некоторые клиенты принимают относительные URI.
Вы можете обычно использовать
$ _SERVER [ 'HTTP_HOST'],
$ _SERVER ['PHP_SELF'] и dirname () для
сделать абсолютный URI из родственника
один сам.
Источник: http://www.php.net/manual/en/function.header.php
Edit:
В вашем сценарии есть еще одна ошибка. Это в этой строке:
$_SESSION['myusername']=$result['myusername'];
Вы используете $result['myusername'];
, но вы должны сначала получить результаты. Как это:
$row = mysql_fetch_assoc($result);
$_SESSION['myusername'] = $row['u_name'];