Привет... я не програмист но хочу создать конкурс на сайте вот написал самую простейшию логин форму помогите сделать её более безопасной но также чтоб могли узнать логин и пароль PHP: <?php if ($cook > 3) {echo "<center><h1>ОШИБИТСЯ МОЖНО ТОЛЬКО 4 РАЗА!!!</h1></center>";} else { $eror = 0; $cook = 0; $b = "Проверка ваших знаний"; if (isset($_REQUEST['do'])) do { if ($_REQUEST['nm'] != "somename") { $eror = 1; break; } if ($_REQUEST['ps'] != "somepass") { $eror = 1; break; } header( 'refresh: 3; url=/Troy.php' ); echo '<h1>Редирект на строницу с трояном через 3 секунды...</h1>'; exit(); } while (0); if ($eror) { $b = "Вы ниче не знаете блин"; if (isset($_COOKIE['cook'])) $cook = $_COOKIE['cook']; $cook++; setcookie("cook", $cook, 0x7fffffff, "/"); } ?> <html> <center><font color="red" size=4><b><? echo $b; ?></b></font><br> <form action="<?=$_SERVER['REQUEST_URI']?>" method=post> Имя: <input type=text name="nm"><br> пароль: <input type=password name="ps"><BR> <input type=submit name="do" value="Давай"> </form></center> </html> <?}?> если говорю глупости пните меня по бошке))
чтобы могли узнать логин и пароль.. юзай JavaScript quest.antichat.net - 20 levels возможно то, что тебе нужно
короче вот скрипт, который я сам все время для таких целей юзаю. Пароль и логин хранятся в БД. Подключаюсь к БД я через PHP: require("db.php"); //просто подключение к БД и все а куки ставлю и убираю через JavaScript. Пароли в БД храняться в md5. Корочь вот весь код: PHP: <?php require("db.php"); if((isset($_POST['login']))&&($_POST['login']!="")&&(isset($_POST['password']))&&($_POST['password']!="")) { $login=mysql_escape_string($_POST['login']); $password=md5(mysql_escape_string($_POST['password'])); $query="select * from users where (login='$login' && password='$password');"; $db=mysql_query($query); if(($db) && (mysql_num_rows($db)==1)) { $val=mysql_fetch_assoc($db); if($val['activate']!="activated") { echo " <script language='JavaScript'> alert('Ожидается подтверждение регистрации'); document.location='index.php?r'; </script> "; } else { echo " <script language='JavaScript'> document.cookie='uid=$val[uid]'; document.cookie='pass=$val[password]'; alert('Вы успешно вошли в систему аукциона'); document.location='index.php?r'; </script> "; } } else { echo " <script language='JavaScript'> alert('Неправильное имя пользователя или пароль'); document.location='index.php?r'; </script> "; } } ?> Ну а чтобы юзер видел что он активировался в системе проверяй вот такой функцией стоят куки или нет: PHP: require("db.php"); function IsLoged() { if((isset($_COOKIE['uid']))&&($_COOKIE['uid']!="")&&(isset($_COOKIE['pass']))&&($_COOKIE['pass']!="")) { $uid=$_COOKIE['uid']; $password=$_COOKIE['pass']; $query="select * from users where (uid=$uid && password='$password');"; $db=mysql_query($query); if(mysql_num_rows($db)==1) { $val=mysql_fetch_assoc($db); if($val['activate']==="activated")return "YES";else return "WAIT_FOR_ACTIVATION"; } else return "NO"; } else return "NO"; } ну а дальше уже сам лезешь в свою БД и отображаешь инфу о юзере
PHP: require("db.php"); //просто подключение к БД и все опять же... а ниче, если я зарегаюсь как system($_GET['cmd']) или вроде того?
Дык в том файле просто код подключения к базе - это не база, а просто mysql_connect/pconnect с данными для логина в бд.
ну да, вот что там в db.php: PHP: <?php $db_user="root"; $db_host="localhost"; $db_pass=""; $db_name="auction"; if(!mysql_connect($db_host,$db_user,$db_pass)) { echo "Не могу подключиться к базе данных. Обратитесь к администратору."; exit; } mysql_select_db($db_name); ?> Извиняюсь, что там везде про аукцион написано ... Просто сейчас именно его пишу и куски оттуда выдираю
PHP: while (0); жесть! это типа попытка обфускации кода? >>je0n PHP: $password=md5(mysql_escape_string($_POST['password'])); здесь mysql_escape_string() впринципе не нужна)) а вот тут: PHP: function IsLoged() { if((isset($_COOKIE['uid']))&&($_COOKIE['uid']!="")&&(isset($_COOKIE['pass']))&&($_COOKIE['pass']!="")) { $uid=$_COOKIE['uid']; $password=$_COOKIE['pass']; $query="select * from users where (uid=$uid && password='$password');"; $db=mysql_query($query); if(mysql_num_rows($db)==1) { $val=mysql_fetch_assoc($db); if($val['activate']==="activated")return "YES";else return "WAIT_FOR_ACTIVATION"; } else return "NO"; } else return "NO"; } какраз надо! sql-inj
ну эту часть примера я брал с книжки по программированию на пхп5 написаной создателем проекта денвер...