Написал в базе
CREATE TABLE user (
id_user mediumint(9) auto_increment,
email char(50),
passw char(32),
status_user enum('y','n'),
PRIMARY KEY (id_user)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Пишу в php:
if (!isset($err_add)) {
if ($db = @mysql_connect(HOST_CONNECT, LOGIN_CONNECT, PASSW_CONNECT)) {
mysql_select_db(DB_CONNECT);
mysql_query("SET NAMES cp1251");
$q = "SELECT * FROM user WHERE email='$emails'";
$res_add = @mysql_query($q);
$count_add=mysql_num_rows($res_add);
if ($count_add==0) {
$pass=md5($pass);
$query_add = "INSERT INTO user VALUES ";
$query_add .= "('', '$emails', '$pass', 'y')";
if (@mysql_query($query_add)) {
session_start();
$_SESSION["sess_login"] = $emails;
$_SESSION["sess_pass"] = $pass;
$sess_data=date("U");
$_SESSION["sess_data"] = $sess_data;
header("location: add.php");
exit();
}
else {
$err_add .= "Попробуйте сделать запрос ";
$err_add .= "через некоторое время<BR>";
}
}
else {
$err_add .= "E-mail $emails уже зарегистрирован ";
$err_add .= "ранее!!!<BR>";
$err_add .= "Восстановить пароль можно заполнив форму ";
$err_add .= "ниже<BR>";
}
mysql_close($db);
}
else {
$err_add .= "Не удалось установить соединение с базой ";
$err_add .= "данных<BR>";
}
}
}
примерно так но в базе сохраняется если я в пробеле ставлю какуе то цифру
1. anton_17 - 27 Октября, 2010 - 15:41:09 - перейти к сообщению
2. Мелкий - 27 Октября, 2010 - 15:48:54 - перейти к сообщению
phpfaq.ru/debug
в каком пробеле?
anton_17 пишет:
но в базе сохраняется если я в пробеле ставлю какуе то цифру
в каком пробеле?
3. anton_17 - 27 Октября, 2010 - 15:52:27 - перейти к сообщению
Блин я же не специально
4. Мелкий - 27 Октября, 2010 - 16:05:20 - перейти к сообщению
anton_17 пишет:
Блин я же не специально
Не специально тему открыли? Или код как-то случайно написался и его вообще нету?
тут даже мой демон "пророк" не представляет, что вы хотели сказать... Поясните, а?
5. Uchkuma - 27 Октября, 2010 - 16:53:31 - перейти к сообщению
anton_17, или опишите проблему, чтобы она была ясна другим участникам форума, или я удаляю эту тему.
6. anton_17 - 28 Октября, 2010 - 10:27:12 - перейти к сообщению
Заранее прошу у всех прощение, вчера не слишком трезвый выложил, поэтому не смог нормально сформулировать вопрос я выделил часть кода с проблемой
if (isset($_POST['add'])) {
$emails=$_POST['emails'];
$pass=$_POST['pass'];
if (!eregi("^[a-z0-9_\.\-]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $emails)) {
$err_add="Недопустимый адрес E-mail !!!<BR>";
}
if (strlen($emails)>50) {
$err_add .= "Длина E-mail больше допустимой!!!<BR>";
}
if (strlen($pass)>16 || strlen($pass)<6) {
$err_add .= "Длина пароля должна быть в пределах ";
$err_add .= "от 6 до 16 символов.<BR>";
}
if (!eregi("^[a-z0-9_\.\-]{6,16}$", $pass)) {
$err_add .= "В пароле допустимы только буквы ";
$err_add .= "A-Z (a-z) или цифры 0-9<BR>";
}
if (!isset($err_add)) {
if ($db = @mysql_connect(HOST_CONNECT, LOGIN_CONNECT, PASSW_CONNECT)) {
mysql_select_db(DB_CONNECT);
mysql_query("SET NAMES cp1251");
$q = "SELECT * FROM user WHERE email='$emails'";
$res_add = @mysql_query($q);
$count_add=mysql_num_rows($res_add);
if ($count_add==0) {
$pass=md5($pass);
$query_add = "INSERT INTO user VALUES ";
$query_add .= "('2', '$emails', '$pass', 'y')";
if (@mysql_query($query_add)) {
session_start();
$_SESSION["sess_login"] = $emails;
$_SESSION["sess_pass"] = $pass;
$sess_data=date("U");
$_SESSION["sess_data"] = $sess_data;
header("location: add.php");
exit();
}
else {
$err_add .= "Попробуйте сделать запрос ";
$err_add .= "через некоторое время<BR>";
}
}
else {
$err_add .= "E-mail $emails уже зарегистрирован ";
$err_add .= "ранее!!!<BR>";
$err_add .= "Восстановить пароль можно заполнив форму ";
$err_add .= "ниже<BR>";
}
mysql_close($db);
}
else {
$err_add .= "Не удалось установить соединение с базой ";
$err_add .= "данных<BR>";
}
}
Если ставлю цифру то в базе добавляется запись, а если пишу:
$query_add .= "('', '$emails', '$pass', 'y')";
То в базе ни чего не добавляется, почему автозаполнение не работает. Ведь я прописал:
id_user mediumint(9) auto_increment
если опять не понятно написал вопрос, пожалуйста отпишите
if (isset($_POST['add'])) {
$emails=$_POST['emails'];
$pass=$_POST['pass'];
if (!eregi("^[a-z0-9_\.\-]+@([a-z0-9\-]+\.)+[a-z]{2,4}$", $emails)) {
$err_add="Недопустимый адрес E-mail !!!<BR>";
}
if (strlen($emails)>50) {
$err_add .= "Длина E-mail больше допустимой!!!<BR>";
}
if (strlen($pass)>16 || strlen($pass)<6) {
$err_add .= "Длина пароля должна быть в пределах ";
$err_add .= "от 6 до 16 символов.<BR>";
}
if (!eregi("^[a-z0-9_\.\-]{6,16}$", $pass)) {
$err_add .= "В пароле допустимы только буквы ";
$err_add .= "A-Z (a-z) или цифры 0-9<BR>";
}
if (!isset($err_add)) {
if ($db = @mysql_connect(HOST_CONNECT, LOGIN_CONNECT, PASSW_CONNECT)) {
mysql_select_db(DB_CONNECT);
mysql_query("SET NAMES cp1251");
$q = "SELECT * FROM user WHERE email='$emails'";
$res_add = @mysql_query($q);
$count_add=mysql_num_rows($res_add);
if ($count_add==0) {
$pass=md5($pass);
$query_add = "INSERT INTO user VALUES ";
$query_add .= "('2', '$emails', '$pass', 'y')";
if (@mysql_query($query_add)) {
session_start();
$_SESSION["sess_login"] = $emails;
$_SESSION["sess_pass"] = $pass;
$sess_data=date("U");
$_SESSION["sess_data"] = $sess_data;
header("location: add.php");
exit();
}
else {
$err_add .= "Попробуйте сделать запрос ";
$err_add .= "через некоторое время<BR>";
}
}
else {
$err_add .= "E-mail $emails уже зарегистрирован ";
$err_add .= "ранее!!!<BR>";
$err_add .= "Восстановить пароль можно заполнив форму ";
$err_add .= "ниже<BR>";
}
mysql_close($db);
}
else {
$err_add .= "Не удалось установить соединение с базой ";
$err_add .= "данных<BR>";
}
}
Если ставлю цифру то в базе добавляется запись, а если пишу:
$query_add .= "('', '$emails', '$pass', 'y')";
То в базе ни чего не добавляется, почему автозаполнение не работает. Ведь я прописал:
id_user mediumint(9) auto_increment
если опять не понятно написал вопрос, пожалуйста отпишите
7. Мелкий - 28 Октября, 2010 - 10:57:20 - перейти к сообщению
Всё равно phpfaq.ru/debug, а именно: "быстрые рекомендации" п.1 и п.2.
8. biperch - 28 Октября, 2010 - 11:18:02 - перейти к сообщению
anton_17 пишет:
$query_add .= "('', '$emails', '$pass', 'y')";
Открой мне тайну, какой тип переменной (id_user mediumint(9) auto_increment).
Следовательно ты в числовую переменную пытаешься записать строку"" вместо числа, а учитывая что там автоинкремент напиши просто так: