Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > форма GET


Автор: s00r 4.3.2004, 08:18
привет всем,
объясните новичку такую вещь,
я использую в странице index.php ввод
логина и пароля методом get,
с вызовом другой страницы с использованием
введенных данных,
но данные, которые были введены
в начале не присваиваются переменным,
что я делаю не так?

index.php

<html>
<head>
<title>пример</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" href="styles.css" type="text/css">
</head>
<form action="php.php" method="get" name="loginform">
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<div align="right">Логин:&nbsp;</div>
</td>
<td>
<input type="text" name="userid" size="25">
</td>
</tr>
<tr>
<td>
<div align="right">Пароль:&nbsp;</div>
</td>
<td>
<input type="password" name="userpwd" size="25">
</td>
</tr>
<tr>
<td colspan="2">
<div align="center"> <br>
<input type="submit" name="Submit" value=" Enter ">
</div>
</td>
</tr>
</table>
</form>

php.php

<?php
echo ("имя ... ");
echo $userid;
echo ("пасс ... ");
echo $userpwd;
?>

Автор: Secandr 4.3.2004, 09:39
Пользуй не $userid , а $_REQUEST['userid']
Или $_GET['userid']

Автор: Vaulter 4.3.2004, 12:17
s00r
с точки зрения безопасности, передавать GET запросами $userid и $userpwd не рекомендуется...

Автор: s00r 5.3.2004, 18:26
Спасибо за быстрый ответ,
$_REQUEST['userid'] - работает,
данные получаю теперь не с
пом. GET, а с помощью POST.
Но опять есть непонятка, с помощью
INDEX.PHP получаю 'userid' и 'userpwd',
если в PHP.PHP - он вызывается после
ввода данных, стоит-

<?
echo ("имя ... ");
echo $_REQUEST['userid'];
echo ("пасс ... ");
echo $_REQUEST['userpwd'];
?>

то я вижу введенные имя и пароль,
а если использую -
<?

...
if ( (isset($userid)) && (isset($userpwd)) )
{
$query="select hostname,login,password from paslist where login='$userid' and password='$userpwd'";
$result=mysql_query ($query);
if (mysql_num_rows($result) != 1 ) header("location:login_error.php");
else $hostname=mysql_result($result,0,"hostname");
}
else header("location:login_error.php");
...

?>

то переменные не видятся,
достаточно в начале файла PHP.PHP прописать -

$userid=$_REQUEST['userid'];
$userpwd=$_REQUEST['userpwd'];

как начинает работать, правда не все,
но переменные понимаются.
Может какие ошибки в связи между
собой APACHE+PHP+MYSQL,
я сам ничего не настраивал, опыту еще мало,
просто поставил ASPLinux 9 и все.

Может подскажете, в какую сторону копать?

И еще вопрос, есть в природе PHP-дебугеры под Linux?

Автор: Коп 5.3.2004, 18:56
У тебя похоже не установлена переменная Register_Globals в положение On. Т. е. сейчас так:
Код
Register_Globals = Off

А должно быть так:
Код
Register_Globals = On
.
Для винды - это файл php.ini. А в Линуксе - не знаю.

Эта опция отвечает за такое вот присвоение:
Цитата
$userid=$_REQUEST['userid'];
$userpwd=$_REQUEST['userpwd'];

, но автоматически.

Автор: s00r 5.3.2004, 19:36
Хорошо, посмотрю.

Автор: s00r 5.3.2004, 22:30
Спасибе всем, все заработало,
включил - Register_Globals = On
Кстати php.ini в Linuxe лежит в /etc

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)