Доброго всем! Прошу уважаемых посетителей форума разобраться с парочкой скриптов, скрипты честно скажу- не мои, но никаких копирайтов и тому подобного там небыло, так что думаю если найдется автор он не будет против использования их в моих образовательных целях.Собственно вопрос: есть файлы- register.php PHP: <?php if ( isset ($name) AND isset ($password) ) { $data = File ("users.txt"); for ($i=0;$i<count($data);$i++) { $dat = explode (";", $data[$i]); if ($name == $dat[0]) { echo "<b><center>Такой пользователь уже есть !"; exit; } } $pass = md5 ($password); $fp = fopen ("users.txt", "a"); flock ( $fp, 1); fputs ($fp, $name.";".$pass."\r\n"); flock ($fp, 3); fclose ($fp); echo "<b><center><h2>Спасибо за регистрацию !"; exit; } ?> <html> <head> <title>регистрация</title> </head> <body> <center><b><h3>РЕГИСТРАЦИЯ</h3></b></center><p> <form action=<?php print $PHP_SELF ?> method=post> <table> <tr><td> <center>Ваше имя<td><input type=text size=15 name=name></tr><br> <tr><td><center>Ваш пароль<td><input type=text size=15 name=password></tr><br> </table> <p><input type=submit value="Зарегистрироваться"> </form></body></html> ################ и файл login.php ################ PHP: <?php if ( isset ($name) AND isset ($password)) { $data = File ("users.txt"); $pass = md5 ($password); for ($i=0;$i<count($data);$i++) { $dat = explode (";", $data[$i]); if ($name == $dat[0] && $pass."\r\n" == $dat[1]) { echo "<b><center>Пример</b><p><a href=\"\">Статистика ваших посещений</a><p><a href=\"\">Общая статистика вашей страницы</a>"; exit; } } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>авторизация</title> <link rel="stylesheet" type="text/css" href="style.css"> <style type="text/css"> </head> </style> <body> <b><center>Вход в гостевую</b></center> <form action=<?php print $PHP_SELF ?> method=post> <table> <tr><td>Ваш логин<td><input type=text size=15 name=name></tr> <tr><td>Ваш пароль<td><input type=text size=15 name=password></tr> </table> <p><input type = submit value="Войти"></p> <a href="register.php"><p><font color=red>Или зарегистрироваться</a></p></font> </form> </body> </html> и файл users.txt Подскажите пожалуйста, что не правильно, потому как это не работает, то есть введя логин и пароль при регистрации и нажав кнопку получаеться 404.. тоже самое при авторизации. И еще- что,как и куда прописать чтобы после авторизации пользователь попадал на нужную страницу? Заранее благодарю за помощь!!!![/code][/php]
для начал почитай про глобальные массивы http://www.php.ru/manual/language.varia ... fined.html и http://www.php.ru/manual/security.globals.html и оформляй код. уважай тех, кто будет это читать.
Спасибо за поддержку, извиняюсь за оформление- немного запарился с формулировкой вопроса и не разобрался как оформлять)) по Вашим ссылкам если честно применительно к моему вопросу ничего не понял, может все таки я не с того начинаю? Всмысле- надо начинать с более простых скриптов? И все таки просьба- подсказать где ошибка, мне так реально легче будет разбираться.
login.php # <?php # # if ( isset ($name) AND isset ($password)) # { замени на # <?php # # print_r($_POST); # # if ( isset ($name) AND isset ($password)) # { вызови скрипт и нажми на кнопку заполнив поля. и посмотри что вернется в суперглобальном массиве и тогда узнаешь откуда надо брать переменные. нуи прочитай еще раз ВНИМАТЕЛЬНО те ссылки что я тебе дал.
на странице появилось надпись arrey() ....прямо около поля логина. заполнять поля и жать кнопку не стал)))) на всякий случай..
в первом скрипте register.php: всюду заменить $name на $_POST['name'] $password на $_POST['password'] вместо $PHP_SELF писать $_SERVER['PHP_SELF']
А если не затруднит не покажете как конкретно заменить, я сомневаюсь что правильно проставлю скобки(во всем коде если можно). попробовал поменять только это, ничего не изменилось за исключением того что при нажатии "зарегистрироваться" не происходит ровным счетом ничего, а до изменения выводилась ошибка 404
Код (Text): <?php // import_request_variables("p"); if ( isset ($_POST['name']) AND isset ($_POST['password']) ) { $data = File ("users.txt"); for ($i=0;$i<count($data);$i++) { $dat = explode (";", $data[$i]); if ($_POST['name'] == $dat[0]) { echo "<b><center>Такой пользователь уже есть !"; exit; } } $pass = md5 ($_POST['password']); $fp = fopen ("users.txt", "a"); // flock ( $fp, 1); fputs ($fp, $_POST['name'].";".$pass."\r\n"); // flock ($fp, 3); fclose ($fp); echo "<b><center><h2>Спасибо за регистрацию !"; exit; } ?> <html> <head> <title>регистрация</title> </head> <body> <center><b><h3>РЕГИСТРАЦИЯ</h3></b></center><p> <form action=<?php print $_SERVER['PHP_SELF'] ?> method=post> <table> <tr><td> <center>Ваше имя<td><input type=text size=15 name=name></tr><br> <tr><td><center>Ваш пароль<td><input type=text size=15 name=password></tr><br> </table> <p><input type=submit value="Зарегистрироваться"> </form></body></html>
Спасибо!!! Регистрация работает, но есть проблема- регистрируются даже не заполненные поля.И второй момент- как сделать, чтобы юзер зарегившись и авторизовавшись попадал на нужную страницу? Еще раз огромное спасибо за участие и помощь!!
сделайте проверку, если поля не пустые, выполнять регистрацию, иначе - выдать сообщение о том, что поля не заполнены. PHP: if (($_POST['name']=='') or ($_POST['password'])=='') { echo ('Поля пустые'); } else { // код регистрации } используйте в случае авторизации PHP: header('location:index.php'); index.php в данном случае - "нужная" страница. следите за тем, чтоб перед функцией header в браузер не выводилась никакая другая информация. иными словами чтоб код пхп был перед хтмл-кодом
Не совсем понятно где в коде это прописывать, если не трудно- покажите пожалуйста) И спасибо за помощь конечно-же!
файл login.php вместо строк PHP: echo "<b><center>Пример</b><p><a href=\"\">Статистика ваших посещений</a><p><a href=\"\">Общая статистика вашей страницы</a>";
В том то и дело что я не РАБОТАЮ, а УЧУСЬ!!! В одной из моих мессаг выше я многоуважаемому 440Hz задал вопрос по поводу того, что может я начал не с того уровня.. скорее всего так и есть, но все таки хотелось бы с этим скриптом разобраться. И реально проще понять принцип, когда тебе подсказали где ошибка и как ее исправить, если конешно не собираешься в дальнейшем расчитывать только на подсказки, а пытаешься сам проанализировать и понять.Но на старте всетаки подсказки нужны. Тем более что мне кроме как на форумах никто и не подскажет, ну нету у меня знакомых программистов))) А мануалы и учебники хороши тогда, когда знаешь основные моменты, смысла нет пытаться понять назначение функции, если даже примерно не представляешь где она должна быть в коде.. как то так.
когда знаешь назначение функции, ответ на вопрос о том, где она должна быть в коде, становится очевидным...
Я в свое время сам учился играть на гитаре, абсолютно сам, используя самоучители и т.п., сейчас играю очень даже неплохо, в дальнейшем научил играть человек 10, многие из них играют лучше меня, но!!! Если бы не один человек, который в начале обучения мне "на пальцах" не показал бы что я делаю не правильно, думаю вряд ли бы я умел то что умею сейчас.И в названии темы я специально указал- помогите разобраться, именно с той целью чтобы зная правильное решение, понять почему оно правильное. Ну и оставив лирику- сделал все так как вы сказали, но скрипт не работает все же..