Помогите с авторизацией пользователя, плиз

Serzhik

Новичок
Помогите с авторизацией пользователя, плиз

вот собственно код.
PHP:
<?
mysql_connect("localhost", "root","");
mysql_select_db("forex");
echo "<html><head></head><body>";
function authForm()
{
	echo "<form action = index.php method = POST>";
	echo "<input type = text name = login>";
	echo "<input type = password name = pass>";
	echo "<input type = submit name = go value = Войти>";
	echo "</form>";
}
function success()
{
	echo "Панель управления аккаунтом...";
}

function checkForm()
{
	$sql = "SELECT * FROM users WHERE login='$_POST[login]'";
	$result = mysql_query($sql);
	$f = mysql_fetch_array($result);
	if(mysql_num_rows($result)==0)
	{
		echo "Ошибка! Логин $_POST[login] не зарегистрирован в системе!";
		authForm();
	}
	else
	{
		if($_POST[pass]!=$f[pass])
		{
			echo "Ошибка! Неверный логин или пароль.";
			authForm();
		}
		else
		{
			success();
		}
	}
}
if(!isset($go))
{
	authForm();
}
else
{
	checkForm();
}
?>
постоянно выдает форму авторизации. Что я не так сделал? подскажите пожалуйста.
 

Serzhik

Новичок
А все понял) Это мне надо было не $go писать, а $_POST[go], так?
 

Fortop

Новичок
Автор оригинала: Serzhik
А все понял) Это мне надо было не $go писать, а $_POST[go], так?
Почти.
На самом деле стоит еще разобраться с тем, как должны записываться строковые ключи в массивах.

Явно не таким образом
PHP:
$_POST[go]
 

Serzhik

Новичок
Автор оригинала: Fortop
Почти.
На самом деле стоит еще разобраться с тем, как должны записываться строковые ключи в массивах.

Явно не таким образом
PHP:
$_POST[go]
Что ты имеешь в виду?
 

Fortop

Новичок
[m]arrays[/m] есть образец.

На самом деле пока ты занимаешься разработкой скрипта стоит еще включить отображение ошибок в php.ini
display_errors = On
error_reporting = E_ALL

Это помогает увидеть свои ошибки.

Естественно что на сервере вывод ошибок должен быть отключен и перенаправлен в логи.
 

Fortop

Новичок
Автор оригинала: Serzhik
Ну это у меня включено.
Точно?

И у Вас ни одного сообщения об ошибке про эту строчку?
PHP:
if($_POST[pass]!=$f[pass])
Автор оригинала: Serzhik
В кратце что это?
Вкратце - это то что необходимо знать при работе с массивами. Если бы Вы сходили по ссылке, то данного вопроса у Вас не возникло бы.
 

Beavis

Banned
пугает название БД ))

Автор, когда доделаешь проект, скинь сюда ссылочку)) Попробуем немного заработать на бирже с помощью знания SQL)
 

Fortop

Новичок
Автор оригинала: Beavis
пугает название БД ))
Чего?
ForEx нынче это рулетка или покер для народа.

Дилеры в их прежнем виде умерли еще на заре 2000.

-~{}~ 15.02.10 22:06:

Автор оригинала: Serzhik
Notice: Use of undefined constant go - assumed 'go' in \www\index.php on line 41
Вот именно. И говорит он следующее что константы go нет, поэтому подставлено значение 'go'

Почему бы не облегчить работу PHP и сразу не записать именно его? :)
 

ps2007

Новичок
Я советую не смешивать бизнес логику и отображение, чтобы самому себе не усложнять жизнь. Иначе получится: "Помогите, я запутался в своем собственном скрипте" (реальный случай).
Об (не) смешивании бизнес логики и отображения можно спросит гугл или посмотреть этот пример:
http://phpclub.ru/talk/showthread.php?s=&threadid=117949&rand=12
 

Serzhik

Новичок
Я советую не смешивать бизнес логику и отображение
Это я знаю, с этим разберусь сделаю логику от дизайна отдельно.Это я щас набросал по-быстрому.

Почему бы не облегчить работу PHP и сразу не записать именно его?
можно на конкретном примере. А то я че - то втупляю...

-~{}~ 15.02.10 23:26:

Автор оригинала: Fortop
Чего?
ForEx нынче это рулетка или покер для народа.

ну значит будем пробовать собирать флеш-рояли) с таким кодом это не сложно)
Мля, я не диллер, не брокер и не собираюсь ничем таким заниматься)) К форексу косвенное отношение)
 

Fortop

Новичок
Автор оригинала: Serzhik
можно на конкретном примере. А то я че - то втупляю...
Ну если PHP пишет ошибку и заменяет go на 'go'.

Почему бы не устранить эту ошибку и не написать сразу 'go'?
 
Сверху