файл reg.php:
<?php
session_start();
include "conf.php";
$data = mysql_connect($base_name, $base_user, $base_pass);
if(!mysql_select_db($db_name,$data)) {
echo "<BR>";
echo mysql_error();
die();
}
if ($_POST["next"]) {
$error=0;
if (!$_POST["email"]) {
$errm= "Вы не ввели email<br>"; $error=1; }
if (!preg_match("/^[_\.0-9a-z-]{1,}@[_\.0-9a-z-]{1,}\.[_\.0-9a-z-]{2,}$/", $_POST ["email"])) {
$errm .= "Неправильный e-mail"; $error =1; }
$c_e = mysql_num_rows(mysql_query("SELECT user_id FROM user where email='".$_POST ["email"]."'")); {if ($c_e>0) {$errm .= "Данный e-mail уже зарегистрирован в игре"; $error=1;}}
if (!$_POST["name"]) {
$errl= "Вы не ввели логин<br>"; $error=1; }
if (!preg_match("/[_\.0-9a-z-]/", $_POST["name"])) {
$errl .= "Логин содержит не допустимые знаки"; $error =1; }
$c_e = mysql_num_rows(mysql_query("SELECT user_id FROM user where name='".$_POST ["name"]."'")); {if ($c_e>0) {$errl .= "Логин занят"; $error=1;}}
if (!$_POST["pass"]) {
$errp= "Вы не ввели пароль<br>"; $error=1; }
if (!preg_match("/^[А-Яа-яЁёa-zA-Z0-9]+$/",$_POST["pass"])) {
$errp= "Пароль содержит недопустимые знаки"; $error =1; }
if (strlen ($_POST["pass"])<6 || strlen ($_POST["pass"])>25) {
$errp= "Длина пароля от 6 до 25 символов"; $error= 1; }
if (($_POST["pass"]) != ($_POST["pass2"])) {
$errp= "Пароли не совпадают!"; $error= 1; }
if(!error) {
$ip = $_SERVER['REMOTE_ADDR'];
$nick = $_POST["name"];
$email = $_POST["email"];
$pass = $_POST["pass"];
mysql_query("INSERT INTO user('email','pass','name','user_ip')
values ('".$email."','".$pass."','".$nick."','".$ip."')") or die("Invalid query: ". mysql_error());
$suc_reg= "<p>Регистрация прошла успешно</p>";
session_register("email");
session_register("ip");
session_register("name");
$_SESSION['email'] = $_POST['email'];
$_SESSION['ip'] = $_POST['ip'];
$_SESSION['name'] = $_POST['name'];
?>
<?php
}
}
// Выводим ошибочки
function err($text){
return "<tr valign='middle' align='left'><td colspan='2'><span class='error'>$text</td></tr>";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регистрация | Солдаты Анархии</title>
</head>
<body>
<h1>Регистрация</h1>
<hr />
<?php echo err($suc_reg); ?>
<form name="reg" method="POST">
<p>Логин:</p><input type="text" name="name" /><br />
<?php echo err($errl); ?>
<p>Пароль:</p><input type="password" name="pass" /><br />
<?php echo err($errp); ?>
<p>Повторите пароль:</p><input type="password" name="pass2"/><br />
<p>E-mail:</p><input type="text" name="email" /><br />
<?php echo err($errm); ?>
<p>Сторона:</p><input type="radio" name="part" value="rad1" />НОЙ<br />
<input type="radio" name="part" value="rad2" />ЦНР<br />
<input type="submit" name="next" value="Зарегестрироваться" />
</form>
</body>
</html>
записываю в форму данные,потом нажимаю "Зарегистрироваться" страница только обновляется и надпись "Регистрация прошла успешно не выходит", и ошибок никаких не выдает.
Пользуюсь Adobe Dreaweawer'ом и в коде он не заметил никаких синтактических ошибок
помогите пожалуйста :unsure:
Спустя 2 часа, 51 минута, 38 секунд (2.09.2012 - 20:21) 123456 написал(а):
Боже, как это читать можно? Про стиль кодирования не слыхал? не?
Много ошибок!
Много ошибок!
Спустя 40 минут, 37 секунд (2.09.2012 - 21:02) CitRus написал(а):
Ну а вы сразу профессиональным программистом родились чтоли? я только неделю назад закончил html и css и начал изучение php. Легко сказать "Много ошибок!" а конкретно сказать слабо?
Спустя 4 минуты, 20 секунд (2.09.2012 - 21:06) 123456 написал(а):
Переписал весь скрипт. Только не проверял или работает:
<?php
session_start();
include 'conf.php';
$data = mysql_connect($base_name, $base_user, $base_pass);
mysql_select_db($db_name,$data));
if(!empty($_POST["next"]))
{
$errm_array = array(
1 => "Заполнены не все поля",
2 => "Неправильный e-mail",
3 => "Логин содержит не допустимые знаки",
4 => "Пароль содержит недопустимые знаки",
5 => "Длина пароля от 6 до 25 символов",
6 => "Пароли не совпадают",
7 => "Данный e-mail уже зарегистрирован в игре",
8 => "Логин занят"
)
$errm = NULL;
if(empty($_POST["email"]) or empty($_POST["name"]) or empty($_POST["pass"]))
{
$errm .= $errm_array[1];
}
else
{
$valid_email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if($valid_email == true)
{
$errm .= $errm_array[2];
}
if(!preg_match("/[_\.0-9a-z-]/", $_POST["name"]))
{
$errm .= $errm_array[3];
}
if(!preg_match("/^[А-Яа-яЁёa-zA-Z0-9]+$/",$_POST["pass"]))
{
$errm .= $errm_array[4];
}
if(strlen($_POST["pass"]) < 6 or strlen($_POST["pass"]) > 25)
{
$errm .= $errm_array[5];
}
if(!($_POST["pass"] == $_POST["pass2"]))
{
$errm .= $errm_array[6];
}
if($errm == NULL)
{
$email_sql = mysql_query("SELECT user_id FROM user where email='".$_POST ["email"]."'");
if(mysql_num_rows($c_e_sql))
{
$errm .= $errm_array[7];
}
$name_sql = mysql_query("SELECT user_id FROM user where name='".$_POST ["name"]."'");
if(mysql_num_rows($name_sql))
{
$errm .= $errm_array[8];
}
if($errm == NULL)
{
mysql_query("INSERT INTO `user` (`email`, `pass`, `name`, `user_ip`) values
('".$_POST["email"]."', '".$_POST["pass"]."', '".$_POST["name"]."', '".$_SERVER['REMOTE_ADDR']."')");
$_SESSION['email'] = $_POST['email'];
$_SESSION['ip'] = $_POST['ip'];
$_SESSION['name'] = $_POST['name'];
header('location: http://'. $_SERVER['HTTP_HOST'] . '/profile.php'); // Задай свой адрес
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регистрация | Солдаты Анархии</title>
</head>
<body>
<h1>Регистрация</h1>
<hr />
<?php (!($errm == NULL) ? echo "<tr valign='middle' align='left'><td colspan='2'><span class='error'>$errm</td></tr>";?>
<form name="reg" method="POST">
<p>Логин:</p><input type="text" name="name" /><br />
<p>Пароль:</p><input type="password" name="pass" /><br />
<p>Повторите пароль:</p><input type="password" name="pass2"/><br />
<p>E-mail:</p><input type="text" name="email" /><br />
<p>Сторона:</p><input type="radio" name="part" value="rad1" />НОЙ<br />
<input type="radio" name="part" value="rad2" />ЦНР<br />
<input type="submit" name="next" value="Зарегестрироваться" />
</form>
</body>
</html>
Спустя 13 минут, 27 секунд (2.09.2012 - 21:20) CitRus написал(а):
спасибо завтра проверю
Спустя 16 часов, 30 минут, 3 секунды (3.09.2012 - 13:50) CitRus написал(а):
две ошибки исправил,а вот "дримвивер" ругаеться еще на эту
и еще в базеры выдает такую ошибку:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/u25834/domains/soa.u-gu.ru/public_html/reg.php:1) in /home/u25834/domains/soa.u-gu.ru/public_html/reg.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u25834/domains/soa.u-gu.ru/public_html/reg.php:1) in /home/u25834/domains/soa.u-gu.ru/public_html/reg.php on line 2
сейчас попробую как-нибудь исправить
<?php (!($errm == NULL) ? echo "<tr valign='middle' align='left'><td colspan='2'><span class='error'>$errm</td></tr>";?>
<form name="reg" method="POST">
и еще в базеры выдает такую ошибку:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/u25834/domains/soa.u-gu.ru/public_html/reg.php:1) in /home/u25834/domains/soa.u-gu.ru/public_html/reg.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u25834/domains/soa.u-gu.ru/public_html/reg.php:1) in /home/u25834/domains/soa.u-gu.ru/public_html/reg.php on line 2
сейчас попробую как-нибудь исправить
Спустя 4 минуты (3.09.2012 - 13:54) CitRus написал(а):
а насчет session_start() все исправил ошибку,оказывается я забыл поменять кодировку с utf-8 BOM на utf-8 без ВОМ
Спустя 3 минуты, 4 секунды (3.09.2012 - 13:57) m4a1fox написал(а):
CitRus
Цитата |
две ошибки исправил,а вот "дримвивер" ругаеться еще на эту |
Содержательно. Нужно больше информации.
Спустя 5 минут, 49 секунд (3.09.2012 - 14:03) CitRus написал(а):
тут убрал одну скобку:
а тут,поставил точку с запятой:
mysql_select_db($db_name,$data));
а тут,поставил точку с запятой:
if(!empty($_POST["next"]))
{
$errm_array = array(
1 => "Заполнены не все поля",
2 => "Неправильный e-mail",
3 => "Логин содержит не допустимые знаки",
4 => "Пароль содержит недопустимые знаки",
5 => "Длина пароля от 6 до 25 символов",
6 => "Пароли не совпадают",
7 => "Данный e-mail уже зарегистрирован в игре",
8 => "Логин занят"
)
Спустя 15 минут, 43 секунды (3.09.2012 - 14:18) CitRus написал(а):
а все,исправил,заменил это:
на это:
<?php (!($errm == NULL) ? echo "<tr valign='middle' align='left'><td colspan='2'><span class='error'>$errm</td></tr>";?>
на это:
<?php
if (!($errm == NULL)) {
echo "<tr valign='middle' align='left'><td colspan='2'><span class='error'>$errm</td></tr>";
}
?>
Спустя 5 минут, 52 секунды (3.09.2012 - 14:24) 123456 написал(а):
Так будет правильней:
<?php
if (!($errm === NULL)) {
echo "<tr valign='middle' align='left'><td colspan='2'><span class='error'>$errm</td></tr>";
}
?>
Спустя 5 минут, 43 секунды (3.09.2012 - 14:30) CitRus написал(а):
сейчас вот поменял это:
на это:
$email_sql = mysql_query("SELECT user_id FROM user where email='".$_POST ["email"]."'");
if(mysql_num_rows($c_e_sql))
{
$errm .= $errm_array[7];
}
на это:
$email_sql = mysql_query("SELECT user_id FROM user where email='".$_POST ["email"]."'");
if(mysql_num_rows($email_sql))
{
$errm .= $errm_array[7];
}
Спустя 2 минуты, 5 секунд (3.09.2012 - 14:32) CitRus написал(а):
если ввести емайл пишет "Не правильный емайл",попробовал ввести просто "citrus" и все записалось на базу. почему ругаеться на мыло.
Спустя 2 минуты, 38 секунд (3.09.2012 - 14:35) CitRus написал(а):
Цитата (123456 @ 3.09.2012 - 15:24) |
Так будет правильней:<?php |
уже заметил и исправил

Спустя 3 часа, 28 минут, 45 секунд (3.09.2012 - 18:03) CitRus написал(а):
решил сделать так:
if(!preg_match("/^[_\.0-9a-z-]{1,}@[_\.0-9a-z-]{1,}\.[_\.0-9a-z-]{2,}$/", $_POST ["email"]))
{
$errm .= $errm_array[2];
Спустя 3 часа, 7 минут, 37 секунд (3.09.2012 - 21:11) 123456 написал(а):
Цитата (CitRus @ 3.09.2012 - 16:03) |
решил сделать так:if(!preg_match("/^[_\.0-9a-z-]{1,}@[_\.0-9a-z-]{1,}\.[_\.0-9a-z-]{2,}$/", $_POST ["email"])) |
Замени:
$valid_email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if($valid_email == true)
{
$errm .= $errm_array[2];
}
на
if(!(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)))
{
$errm .= $errm_array[2];
}