| |
|
|
| | У меня сделана такая форма:
<form method=\"post\" action=\"$PHP_SELF\">
<input type=\"text\" name=\"username\"></p>
<input type=\"password\" name=\"password\"></p>
</form>
На localhost она работает (у меня в компе) - видимо, потому что register_globals = On.
Помещаю на сервер, где проверил и register_globals = Off. Не работает...
В этом ли причина и как её устранить? Помогите. Спасибо. | |
| |
|
|
| |
|
|
| |
для: jurij_83
(06.04.2006 в 09:42)
| | | Попробуйте так:
<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
|
| |
| |
|
|
| |
|
|
| |
для: Loki
(06.04.2006 в 10:20)
| | | Это не помогло... | |
| |
|
|
| |
|
|
| |
для: Loki
(06.04.2006 в 10:20)
| | | Чтобы было понятнее, приведу весь код.
<?
session_start();
if ($op == "ds") {
//форма заполнен, проверка правильности ввода
if (($username != "admin") || ($password != "abc123")) {
//нужно показать форму с сообщением об ошибке
$msg = "<P><font color=\"#FF0000\"><strong>Не верно введены имя пользователи или пароль! Попробуйте еще раз! </strong></font></p>";
$show_form = "yes";
} else {
session_register('valid');
$valid = "yes";
$show_menu = "yes";
}
} else {
if ($valid == "yes") {
$show_menu = "yes";
} else {
$show_form = "yes";
}
}
$form_block = "
<h1>Проверка прав пользователя </h1>
<form method=post action=\"$PHP_SELF\">
$msg
<P><strong>Имя пользователя: </strong><br>
<input type=\"text\" name=\"username\" size=15 maxlength=25></p>
<P><strong>Пароль: </strong><br>
<input type=\"password\" name=\"password\" size=15 maxlength=25></p>
<input type=\"hidden\" name=\"op\" value=\"ds\">
<br>
<P><input type=\"submit\" name=\"submit\" value=\"ОК\"></p>
</FORM>
";
$menu_block = "
<h1>Система управления контактами </h1>
<P><strong>Администрирование </strong>
<ul>
<li><a href=\"show_addcontact.php\">Добавить контакт </a>
<li><a href=\"pick_modcontact.php\">Изменить контакт </a>
<li><a href=\"pick_delcontact.php\">Удалить контакт </a>
</ul>
<P><strong>Просмотр записей </strong>
<ul>
<li><a href=\"show_contactsbyname.php\">Отобразить контакты в алфавитном порядке по имени </a>
</ul>
";
if ($show_form == "yes") {
$display_block = $form_block;
} else if ($show_menu == "yes") {
$display_block = $menu_block;
}
?>
<HTML>
<HEAD>
<TITLE>Система управления контактами </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<BODY>
<? echo "$display_block"; ?>
</BODY>
</HTML>
Нужно, чтобы работало. Если register_globals = On - то работает. А если register_globals = Off. Не работает...
Жду помощи. | |
| |
|
|
| |
|
|
| |
для: jurij_83
(06.04.2006 в 10:36)
| | | Ну так понянтое дело...
При register_globals on надо $username, $password и $op заменить на $_POST['username'], $_POST['password'] и $_POST['op'] | |
| |
|
|
| |
|
|
| |
для: Loki
(06.04.2006 в 11:51)
| | | Сделал я теперь вот так, но не работает.
Посмотрите, где ещё что не так?
<?
session_start();
if ($op == "ds") {
//форма заполнен, проверка правильности ввода
if (($_POST['username'] != "admin") || ($_POST['password'] != "abc123")) {
//нужно показать форму с сообщением об ошибке
$msg = "<P><font color=\"#FF0000\"><strong>Не верно введены имя пользователи или пароль! Попробуйте еще раз! </strong></font></p>";
$show_form = "yes";
} else {
session_register('valid');
$valid = "yes";
$show_menu = "yes";
}
} else {
if ($valid == "yes") {
$show_menu = "yes";
} else {
$show_form = "yes";
}
}
$form_block = "
<h1>Проверка прав пользователя </h1>
<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
$msg
<P><strong>Имя пользователя: </strong><br>
<input type=\"text\" name=\"username\" size=15 maxlength=25></p>
<P><strong>Пароль: </strong><br>
<input type=\"password\" name=\"password\" size=15 maxlength=25></p>
<input type=\"hidden\" name=\"op\" value=\"ds\">
<br>
<P><input type=\"submit\" name=\"submit\" value=\"ОК\"></p>
</FORM>
";
$menu_block = "
<h1>Система управления контактами </h1>
<P><strong>Администрирование </strong>
<ul>
<li><a href=\"show_addcontact.php\">Добавить контакт </a>
<li><a href=\"pick_modcontact.php\">Изменить контакт </a>
<li><a href=\"pick_delcontact.php\">Удалить контакт </a>
</ul>
<P><strong>Просмотр записей </strong>
<ul>
<li><a href=\"show_contactsbyname.php\">Отобразить контакты в алфавитном порядке по имени </a>
</ul>
";
if ($show_form == "yes") {
$display_block = $form_block;
} else if ($show_menu == "yes") {
$display_block = $menu_block;
}
?>
<HTML>
<HEAD>
<TITLE>Система управления контактами </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<BODY>
<? echo "$display_block"; ?>
</BODY>
</HTML> | |
| |
|
|
| |
|
|
| |
для: jurij_83
(06.04.2006 в 14:20)
| | | if ($op == "ds") не поменяли | |
| |
|
|
| |
|
|
| |
для: Loki
(06.04.2006 в 15:11)
| | | Да теперь заработало. Но пишет ошибку (после того, как ввёл логин и пароль):
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Код теперь такой:
<?
session_start();
if ($_POST['op'] == "ds") {
//форма заполнен, проверка правильности ввода
if (($_POST['username'] != "admin") || ($_POST['password'] != "abc123")) {
//нужно показать форму с сообщением об ошибке
$msg = "<P><font color=\"#FF0000\"><strong>Не верно введены имя пользователи или пароль! Попробуйте еще раз! </strong></font></p>";
$show_form = "yes";
} else {
session_register('valid');
$valid = "yes";
$show_menu = "yes";
}
} else {
if ($valid == "yes") {
$show_menu = "yes";
} else {
$show_form = "yes";
}
}
$form_block = "
<h1>Проверка прав пользователя </h1>
<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
$msg
<P><strong>Имя пользователя: </strong><br>
<input type=\"text\" name=\"username\" size=15 maxlength=25></p>
<P><strong>Пароль: </strong><br>
<input type=\"password\" name=\"password\" size=15 maxlength=25></p>
<input type=\"hidden\" name=\"op\" value=\"ds\">
<br>
<P><input type=\"submit\" name=\"submit\" value=\"ОК\"></p>
</FORM>
";
$menu_block = "
<h1>Система управления контактами </h1>
<P><strong>Администрирование </strong>
<ul>
<li><a href=\"show_addcontact.php\">Добавить контакт </a>
<li><a href=\"pick_modcontact.php\">Изменить контакт </a>
<li><a href=\"pick_delcontact.php\">Удалить контакт </a>
</ul>
<P><strong>Просмотр записей </strong>
<ul>
<li><a href=\"show_contactsbyname.php\">Отобразить контакты в алфавитном порядке по имени </a>
</ul>
";
if ($show_form == "yes") {
$display_block = $form_block;
} else if ($show_menu == "yes") {
$display_block = $menu_block;
}
?>
<HTML>
<HEAD>
<TITLE>Система управления контактами </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<BODY>
<? echo "$display_block"; ?>
</BODY>
</HTML> | |
| |
|
|
| |
|
|
| |
для: jurij_83
(06.04.2006 в 15:31)
| | | session_register('имя_сессионной_переменной'); теперь не пишут.
Такие вещи как
session_register('valid');
$valid = "yes";
.....
if ($valid == "yes") {
|
надо писать так:
$_SESSION['valid'] = "yes";
.....
if ($_SESSION['valid'] == "yes") {
|
| |
| |
|
|