я начал изучать php вчера, хочу создать сайт с регистрацией так вот я нашёл уроки, код для регистрации, но почему то часть кода php проявляется и не работает я пробовал через Денвер вот код подскажите ошибки Код (Text): <html><head> <title></title> </head> <body> <!--?php // Подключаем файлы: require_once("cfg.php"); // файл настроек require_once("funcs.php"); // вспомогательные функции require_once("connect_db.php"); // соединение с базой данных session_start(); // Тут мы впервые встречаемся с технологией сессий. //Если вы с нею не знакомы, обязательно перейдите по ссылке //и изучите урок, в котором я рассказываю о них. if(!isset($_POST['do_reg'])) { if($_SESSION['uid'] =='') { $_SESSION['uid'] = mt_rand(10000,99999); } echo '<form action="" method="post"--> <table> <tbody><tr><td>Логин:</td> <td><input name="login" size="20" type="text"></td></tr> <tr><td>Пароль:</td> <td><input name="pass" size="20" type="password"></td></tr> <tr><td>Подтверждение пароля:</td> <td><input name="pass_confirm" size="20" type="password"></td></tr> <tr><td>НИК:</td> <td><input name="nick" size="20" type="text"></td></tr> <tr><td>Мейл:</td> <td><input name="email" size="20" type="text"></td></tr> <tr><td><img src="capcha/capcha.php?sid=%27.$_SESSION[%27uid%27].%27"></td> <td><input name="sid" value="" size="5" type="text"></td></tr> <tr><td colspan="2"><input name="do_reg" value="Принять" type="submit"></td></tr> </tbody></table> '; } else { $login = clear($_POST['login']); $pass = clear($_POST['pass']); $nick = clear($_POST['nick']); $email = clear($_POST['email']); $date = date("Y-m-d"); /* Код подтверждения формируем из md5 - хэша конкатенации версии браузера пользователя, его ip-адреса и текущего времени сервера.*/ $cnfrm_id = md5($_SERVER['USER_AGENT'].$_SERVER['REMOTE_ADDR'].mktime()); // Далее проверяем введенные пользователем данные $nick_q = mysql_query("Select nick From users Where nick=".$nick); // Проверка на существование в базе введенного ника if(mysql_affected_rows()==0) // Если такого не существует, продолжаем { // Проверка на совпадение введенного кода и кода капчи. if($_POST['sid'] == $_SESSION['uid']) { // Проверяем подтверждение пароля if($pass == $_POST['pass_confirm']) // Если совпадают { // Проверка корректности введенного email - адреса. if(checkMailAddr($email)) { // Записываем в базу данных строку с данными нового пользователя. if($reg_q = mysql_query("Insert Into users Values (NULL, '".$login."', md5('".$pass."'), '".$nick."', '".$email."', 0, '".$cnfrm_id."', '".$date."')")) { // Пропишем заголовки http-запроса, которые нам нужно будет отправить с письмом. // Версия протокола MIME по которому сформировано сообщение. $headers = 'MIME-Version: 1.0' . "\r\n"; //Формат представления содержимого сообщения. $headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n"; // Указываем отправителя, то бишь my_bomb_site.ru $headers .= 'From: Почта_отправителя - например, администрация сайта' . "\r\n"; //Здесь укажите электронный адрес, куда будут уходить сообщения $mailto = $email; $subject = "Подтверждение регистарции на сайте _Имя нашего сайта_"; $message = 'Для активации аккаунта пройдите по ссылке <a href="http://www.my_bomb_site.ru%D0%90/reg_form.php?confirmation=%27.%0A$cnfrm_id.%27" target="_blank">http://АДРЕС_САЙТА/registration.php?confirmation='. $cnfrm_id.'</a>'; $message .= 'или откройтее ее в новом окне.'; //Отправляем весточку if(sendmail($mailto,$subject,$message,$headers) !== false) { echo 'Регистрация завершена, теперь вы почетный член уважаемой группы крайне левых урюпинских эксгибиционистов! Проверьте почту и подтвердите ваше желание быть среди нас!'; } else { echo "Че-т не так с почтальеном.. Сотню раз говорил баб на велике не подвозить.."; } } else { echo "Ошибочка в базе данных.. А-ля ".mysql_error(); } } else {echo "Шпыён какой ??? Укажи верный адрес!!";} } else {echo "Пароле-пароле куоте-муа, пароле-пароле-пароле же тьен при.. ";} } else { echo "Ты чо бот? Терминатор, тоже мне.. Если ты бот, возьми флешку и засунь ее себе.. И не лезь куда не просят, поганец!"; } } else {echo "Придумай ник поинтересней.. Ну, такой.. Шоб поэратишней звучало.. Уникальный!";} } ?> </body></html>
это лечится session_start должен идти ДО любого другого вывода в браузер, соответственно до <html><head>... <!--?php - что это за ? и это тоже что за чудо ?
PHP: <?php session_start(); require_once("cfg.php"); // файл настроек require_once("funcs.php"); // вспомогательные функции require_once("connect_db.php"); // соединение с базой данных ?> <html><head> <title></title> </head> <body> <?php // Подключаем файлы: // Тут мы впервые встречаемся с технологией сессий. //Если вы с нею не знакомы, //и изучите урок, в котором я рассказываю о них. if(!isset($_POST['do_reg'])) { if($_SESSION['uid'] =='') { $_SESSION['uid'] = mt_rand(10000,99999); } echo '<form action="" method="post" <table> <tbody><tr><td>Логин:</td> <td><input name="login" size="20" type="text"></td></tr> <tr><td>Пароль:</td> <td><input name="pass" size="20" type="password"></td></tr> <tr><td>Подтверждение пароля:</td> <td><input name="pass_confirm" size="20" type="password"></td></tr> <tr><td>НИК:</td> <td><input name="nick" size="20" type="text"></td></tr> <tr><td>Мейл:</td> <td><input name="email" size="20" type="text"></td></tr> <tr><td><img src="capcha/capcha.php?sid=%27.$_SESSION[%27uid%27].%27"></td> <td><input name="sid" value="" size="5" type="text"></td></tr> <tr><td colspan="2"><input name="do_reg" value="Принять" type="submit"></td></tr> </tbody></table> '; } else { $login = clear($_POST['login']); $pass = clear($_POST['pass']); $nick = clear($_POST['nick']); $email = clear($_POST['email']); $date = date("Y-m-d"); /* Код подтверждения формируем из md5 - хэша конкатенации версии браузера пользователя, его ip-адреса и текущего времени сервера.*/ $cnfrm_id = md5($_SERVER['USER_AGENT'].$_SERVER['REMOTE_ADDR'].mktime()); // Далее проверяем введенные пользователем данные $nick_q = mysql_query("Select nick From users Where nick=".$nick); // Проверка на существование в базе введенного ника if(mysql_affected_rows()==0) // Если такого не существует, продолжаем { // Проверка на совпадение введенного кода и кода капчи. if($_POST['sid'] == $_SESSION['uid']) { // Проверяем подтверждение пароля if($pass == $_POST['pass_confirm']) // Если совпадают { // Проверка корректности введенного email - адреса. if(checkMailAddr($email)) { // Записываем в базу данных строку с данными нового пользователя. if($reg_q = mysql_query("Insert Into users Values (NULL, '".$login."', md5('".$pass."'), '".$nick."', '".$email."', 0, '".$cnfrm_id."', '".$date."')")) { // Пропишем заголовки http-запроса, // Версия протокола MIME по которому сформировано сообщение. $headers = 'MIME-Version: 1.0' . "\r\n"; //Формат представления содержимого сообщения. $headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n"; // Указываем отправителя, то бишь my_bomb_site.ru $headers .= 'From: Почта_отправителя - например, администрация сайта' . "\r\n"; //Здесь укажите электронный адрес, куда будут уходить сообщения $mailto = $email; $subject = "Подтверждение регистарции на сайте _Имя нашего сайта_"; $message = 'Для активации аккаунта пройдите по ссылке <a href="http://www.my_bomb_site.ru%D0%90/reg_form.php?confirmation=%27.%0A$cnfrm_id.%27" target="_blank">http://АДРЕС_САЙТА/registration.php?confirmation='. $cnfrm_id.'</a>'; $message .= 'или откройтее ее в новом окне.'; //Отправляем весточку if(sendmail($mailto,$subject,$message,$headers) !== false) { echo 'Регистрация завершена, теперь вы почетный член уважаемой группы крайне левых урюпинских эксгибиционистов! Проверьте почту и подтвердите ваше желание быть среди нас!'; } else { echo "Че-т не так с почтальеном.. Сотню раз говорил баб на велике не подвозить.."; } } else { echo "Ошибочка в базе данных.. А-ля ".mysql_error(); } } else {echo "Шпыён какой ??? Укажи верный адрес!!";} } else {echo "Пароле-пароле куоте-муа, пароле-пароле-пароле же тьен при.. ";} } else { echo "Ты чо бот? Терминатор, тоже мне.. Если ты бот, возьми флешку и засунь ее себе.. И не лезь куда не просят, поганец!"; } } else {echo "Придумай ник поинтересней.. Ну, такой.. Шоб поэратишней звучало.. Уникальный!";} } ?> </body></html> Бесплатный совет: поучи ещё php...
Gromo незнаю как ты, а я другого от человека который вчера начал изучать php а сегодня захотел сделать сайт с регистрации неожидал...
Ric не знаю как другие, но я начинал с простейшего PHP: <?php echo 'Hello World!'; ?> и если кто-то начал изучение пхп не зная основ, но при этом на второй день решил сделать регистрацию на сайте испльзуя чьи-то готовые примеры... не знаю было ли твоё сообщение упрёком, либо констатацией факта, но в своём посте я попытался указать на все ошибки, которые заметил беглым взглядом, а не послал искать нормальный учебник.
спаcибо и вот ещё вопрос у меня почти получилось но опять ошибка: Код (Text): <? include_once("connect.php"); if (isset($_POST['submit'])) { if(empty($_POST['login'])) { echo 'Вы не ввели логин'; } elseif(empty($_POST['password'])) { echo 'Вы не ввели пароль'; } elseif(empty($_POST['password2'])) { echo 'Вы не ввели подтверждение пароля'; } elseif($_POST['password'] != $_POST['password2']) { echo 'Введенные пароли не совпадают'; } elseif(empty($_POST['email'])) { echo 'Вы не ввели E-mail'; } else { $login = $_POST['login']; $password = $_POST['password']; $password2 = $_POST['password2']; $email = $_POST['email']; $query = "SELECT `id` FROM `users` WHERE `login`='{$login}' AND `password`='{$password}' "; $sql = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($sql) > 0) { echo 'Такой логин уже существует'; } else { $query = "INSERT INTO users(login , password , email ) VALUES ('$login', '$password', '$email')"; $result = mysql_query($query) or die(mysql_error());; echo 'Регистрация успешно прошла'; } } } ?>
что за ошибка? где описание действий? чуть выше есть топик о том как правильно задать вопрос, чтобы получить ответ