[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не записывает данные в бд
CitRus
что делать? вот скрипты
файл 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 написал(а):
две ошибки исправил,а вот "дримвивер" ругаеться еще на эту
<?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 
if (!($errm === NULL)) {
echo "<tr valign='middle' align='left'><td colspan='2'><span class='error'>$errm</td></tr>";
}
?>

уже заметил и исправил smile.gif

Спустя 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"])) 
{
$errm .= $errm_array[2];

Замени:
$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];
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.