Fatal error: Function name must be a string in /home/p/parolvag.h19.ru/WWW/login.php on line 22показывает на строку 22.все-таки дело не в запросе,так как там
die(mysql_error())ничего не выдает.это наверно изза сессии,так как я впервые работаю с сессиями.вот код-
<html>
<head>
<title>authorisation</title>
</head>
<body>
<?php
$go=$_GET['go'];
if(!isset($go)){
print "<form action=\"\" method=get>\n";
print "<table><tr><td>\n";
print "login:</td><td><input name=\"login\" type=\"text\" value=\"\"></td></tr>\n";
print "<tr><td>password:</td><td><input name=\"password\" type=\"text\" value=\"\"></td></tr></table></br>\n";
print "<input type=\"submit\" value=\"go!\" name=\"go\"></form>\n";
}
mysql_connect("localhost","parolva8","0uFN9lFQ") or die (mysql_error());
mysql_select_db("parolva8") or die (mysql_error());
$login=$_GET['login'];
$password=$_GET['password'];
if(!empty($login) && !empty($password)){
if($res=mysql_query("SELECT * FROM `users` WHERE login='$login' AND password='$password' ") or die(mysql_error())){
$row=$mysql_fetch_assoc($res) or die(mysql_error());
session_start();
$_SESSION['login']=$row[login];
echo "</br>\n";
echo "<a href=info.php>info</info>\n";
}else{echo "not found";}
}
else{echo "empty";}
?>
</body>
</html>
Спустя 3 минуты, 39 секунд (31.08.2011 - 11:43) alex12060 написал(а):
$row=$mysql_fetch_assoc($res) or die(mysql_error());
Кхе-кхе...
$row = mysql_fetch_assoc($res) or die(mysql_error());
Спустя 6 минут, 52 секунды (31.08.2011 - 11:49) l@pteff написал(а):
Вместо </info> нужно </a>
echo "<a href=info.php>info</info>\n";
Спустя 2 минуты, 35 секунд (31.08.2011 - 11:52) vagif написал(а):
ого заработало))спасибо те,я даже не заметил как туда $ вписал.но теперь другая проблема,в сессии-
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/p/parolvag.h19.ru/WWW/login.php:6) in /home/p/parolvag.h19.ru/WWW/login.php on line 23
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/p/parolvag.h19.ru/WWW/login.php:6) in /home/p/parolvag.h19.ru/WWW/login.php on line 23
info
ошибки этого типа headers already sent выходят очень часто,что такое воопще ?ни как не пойму,помогите плизз)
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/p/parolvag.h19.ru/WWW/login.php:6) in /home/p/parolvag.h19.ru/WWW/login.php on line 23
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/p/parolvag.h19.ru/WWW/login.php:6) in /home/p/parolvag.h19.ru/WWW/login.php on line 23
info
ошибки этого типа headers already sent выходят очень часто,что такое воопще ?ни как не пойму,помогите плизз)
Спустя 1 минута, 13 секунд (31.08.2011 - 11:53) vagif написал(а):
Цитата (l@pteff @ 31.08.2011 - 08:49) |
Вместо </info> нужно </a>
|
ого и еще одна тупая ошибка.и те спс,но ведь ето не главная ошибка
Спустя 5 минут, 11 секунд (31.08.2011 - 11:58) linker написал(а):
Запоминаем навечно, сначала session_start();, а потом уже весь остальной код. А не так что, сначала что-то выводим, а потом где-то в середине пытаемся запустить сессию. Сессия должна стартовать в самом начале работы скрипта, а значит и session_start(); нужно помещать именно туда.
Спустя 6 минут, 42 секунды (31.08.2011 - 12:05) vagif написал(а):
оо,спасибо огромное))ошибка исчезла.а теперь хочу в info.php вписать
если правильно понял должен выйти логин?!если что,в ету тему постить буду ошибки этой работы.надеюсь ошибки не будут)
session_start();
echo $_SESSION['login'];
если правильно понял должен выйти логин?!если что,в ету тему постить буду ошибки этой работы.надеюсь ошибки не будут)
Спустя 2 минуты, 5 секунд (31.08.2011 - 12:07) l@pteff написал(а):
vagif, вот примерный скрипт авторизации, проанализируй:
А проверку заполненности полей ввода, длины пароля и т.д. можно делать и на клиентской стороне с помощью js
/*
Файл проверки правильности
вводимых пользователем логина и пароля (авторизации)
*/
$login_auth = trim($_POST['login_auth']);
$password_auth = trim(md5($_POST['password_auth']));
/*Подключение файла с настройками для доступа к базе данных*/
require_once 'podkl.php';
$result = mysql_query("select * from users where login='$login_auth' and password = '$password_auth'");
if (mysql_num_rows($result)==0) {
echo "<span class='error'>Неверная комбинация логин-пароль.</span>";
exit;
}
$_SESSION['login_auth']=$login_auth;
$_SESSION['password_auth']=$password_auth;
setcookie('valid_user', $_SESSION['login_auth']);
setcookie('valid_passw', $_SESSION['password_auth']);
А проверку заполненности полей ввода, длины пароля и т.д. можно делать и на клиентской стороне с помощью js
Спустя 15 минут, 35 секунд (31.08.2011 - 12:23) m4a1fox написал(а):
Уважаемый l@pteff, есть баг маленький в вашем скрипте, а точнее вот тут
можно не напрягаясь иньекцию сделать.
ИМХО вот так делаю
$result = mysql_query("select * from users where login='$login_auth' and password = '$password_auth'");
можно не напрягаясь иньекцию сделать.
ИМХО вот так делаю
$result = mysql_query("SELECT * FROM `users`
WHERE `login`='"mysql_real_escape_string($login_auth)"' and `password` = '"mysql_real_escape_string($password_auth)"' LIMIT 1'
");
Спустя 1 час, 52 минуты, 53 секунды (31.08.2011 - 14:16) vagif написал(а):
опять проблемка(не буду создавать тему,так как ето ещо связано с той работой.почему у меня кнопка delete(где-то в конце) никак не выходит?вот код
<?
if(session_start()){
echo "<div align=right valign=top>hello\n";
echo $_SESSION[login];
print "</br>\n";
print "<form action=\"\" method=get>\n";
print "<input type=\"submit\" value=\"go\" name=\"go\">\n";
echo "</div>\n";}
$go=$_GET['go'];
if(isset($go)){
session_destroy();
}
?>
<html>
<head>
<title>users</title>
</head>
<body>
<?
$users=$_GET['users'];
$del=$_GET['delete'];
if(isset($users) && isset($del)){
$b=count($users);
$i=0;
while($i<$b){
$c=$users[$i];
$i++;
$sql="DELETE FROM `users` WHERE `login` = '$c' ";
$result=mysql_query($sql) or die (mysql_error());
}}
mysql_connect("localhost","parolva8","0uFN9lFQ") or die (mysql_error());
mysql_select_db("parolva8") or die (mysql_error());
$res=mysql_query("SELECT * FROM `users` ") or die (mysql_error());
echo "<table border=10><tr><td>name</td><td>login</td><td>password</td><td& gt;delete</td></tr>\n";
while($row=mysql_fetch_array($res) or die (mysql_error())){
echo "<tr><td>".$row[name]."</td><td>".$row[login]."</td><td>".$row[password]."</td>\n";?><td><input name="users" type="checkbox" value=<?echo $row[login];?>><?
}
echo "</table>\n";
?><input type="submit" value="delete" name="delete"><?
echo "</form>\n";
?>
</body>
</html>
_____________
хороший программист должен знать-он тоже когда-то ничего не знал.