Мистика какая-то. Рагистрирую пользователя, и через секунду он исчезает из БД. В чём может быть глюк?
Дело в том что я пробовал 2 абсолютно разных файла reg.php (один новый, и один ещё с первого варианта проекта), результат тот же. Так что я теперь вообще не знаю в каком из файлов может быть ошибка
Но опять же повторюсь, что сам файл работает, и пользователя он добавляет, просто после того как пользователь прописывается в БД, он сразу же оттуда удаляется. Если Вам так охота копаться в коде, в чем я лично не вижу никакого смысла, тогда пожалуйста! Вы как из анекдота блин Сломался ИБП IBM, звоню в службу поддержки. Я - у нас не работает ИБП. Она - у вас сервер есть? Я - есть. Она - серийный номер и модель! Я - зачем вам серийный номер сервера, если сломался ИБП? Она - у нас заявка оформляется на сервер! Я - ну ладно. (я ж не знаю как в IBM принято...) Она - что случилось с сервером? Я - (уже начинаю тихонько ржать) сломался ИБП! Она - хорошо! Я - (с издевкой уже) а у нас еще один сервер есть! Она - серийный номер и модель?! Я - пожалуйста! (сообщаю номер и модель) Она - что с ним? Я - а он работает! Вот этот ответ уже ввел ее в ступор. Я подсказываю ей выход из ситуации: ...но он не работает с тем ИБП, который сломался! Код (Text): <?php session_start(); ?> <!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" xml:lang="ru"> <head> <title>Registration</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="/style.css" /> <script type="text/javascript" src="/js/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <!-- фиксация PNG для IE6 --> <!-- http://24ways.org/2007/supersleight-transparent-png-in-ie6 --> <!--[if lte IE 6]> <script type="text/javascript" src="/js/pngfix/supersleight-min.js"></script> <![endif]--> <script src="/js/slide.js" type="text/javascript"></script> <?php echo $script; ?> </head> <body> <? include_once $_SERVER['DOCUMENT_ROOT']."/db/config.php" ; dbConnect() ;?> <div id="wrapper"> <div id="middle"> <div id="container"> <div id="content"> <?php if(@$_POST['do']!=''){ $page=''; if(empty($_POST['business_unit'])) $page.="Select your Business Unit<br>"; if(empty($_POST['lastname'])) $page.="lastname is empty<br>"; if(empty($_POST['firstname'])) $page.="firstname is empty<br>"; if(empty($_POST['doa'])) $page.="Date Of Recepient is empty<br>"; if(empty($_POST['month_limit'])) $page.="Month Limit is empty<br>"; if(empty($_POST['phone_number'])) $page.="Phone Number is empty<br>"; if(empty($_POST['linemanager'])) $page.="linemanager is empty<br>"; if(empty($_POST['Email'])) $page.="Email is empty<br>"; // Вводим регулярные значения переменных $business_unit = $_POST['business_unit'] = str_replace("'","`",$_POST['business_unit']); $lastname = $_POST['lastname'] = str_replace("'","`",$_POST['lastname']); $firstname = $_POST['firstname'] = str_replace("'","`",$_POST['firstname']); $doa = $_POST['doa'] = str_replace("'","`",$_POST['doa']); $dod = $_POST['dod'] = str_replace("'","`",$_POST['dod']); $month_limit = $_POST['month_limit'] = str_replace("'","`",$_POST['month_limit']); $phone_number = $_POST['phone_number'] = str_replace("'","`",$_POST['phone_number']); $login = $_POST['login'] = str_replace("'","`",$_POST['login']); $dostup = $_POST['dostup'] = str_replace("'","`",$_POST['dostup']); $Email = $_POST['Email'] = str_replace("'","`",$_POST['Email']); if (preg_match('/[a-z0-9][0-9a-z_\-]+/ui', $login)) {echo"";} else { $page.= "Error: Name can contain only latin letters<br> " ;} // в регулярке я ставлю маленькие буквы, цифры, дефис и знак_ от 1 до 15 символов $password = $_POST['password'] = str_replace("'","`",$_POST['password']); if (preg_match('/[a-z0-9][0-9a-z_\-]+/ui', $password)) {echo"";} else {$page.= "Error Password can contain only latin letters and numbers<br>" ;} $linemanager = $_POST['linemanager'] = str_replace("'","`",$_POST['linemanager']); if (isset($_POST['login'])) { $login = $_POST['login']; //заносим введенный пользователем логин в переменную $login } else { if ($login == '') { unset($login);} //если он пустой, то уничтожаем переменную } if (isset($_POST['password'])) { if($_POST['password'] !== $_POST['pass_again']) $page.="Passwords do not match<br>"; $password=$_POST['password']; //заносим введенный пользователем пароль в переменную $password } else { if ($password =='') { unset($password);} //если он пустой, то уничтожаем переменную } if (empty($login) or empty($password) ) { //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт $page.='You did not enter all the information you fill in all fields!<br>'; } else { /* $login = stripslashes($login); $login = htmlspecialchars($login); $password = stripslashes($password); $password = htmlspecialchars($password); //удаляем лишние пробелы $login = trim($login); $password = trim($password); */ //добавляем проверку на длину логина и пароля if (strlen($login) < 3 or strlen($login) > 15) { $page.='Username must consist of at least 3 characters and no more than 15<br>'; } else { if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['login'])) { $page.='Your username contains invalid characters!<br>'; } else { if (strlen($password) < 3 or strlen($password) > 15) { $page.='The password must contain at least 3 characters and no more than 15<br>'; } else { $password = md5($password);//шифруем пароль // $password = strrev($password);// для надежности добавим реверс // $password = $password."b3p6f"; // проверка на существование пользователя с таким же логином $result = mysql_query("SELECT `id` FROM `users` WHERE login='$login'"); $myrow = mysql_fetch_array($result); if (!empty($myrow['id'])) { $page.='Sorry, you entered username is already registered. Please enter a different username.<br>'; } else { // если такого нет, то сохраняем данные $query = "INSERT INTO `users` VALUES (NULL,'".$business_unit."','".$lastname."','".$firstname."','".$dostup."','".$doa."','".$dod."','".$month_limit."','".$phone_number."','".$login."','".$password."','".$linemanager."','".$Email."')"; if(mysql_query($query)) { $page.="<p class='soob' style='color:red'>Thanks. Registration is completed.</p>";} else { $page.='Error! You are not registered.<br>';} } } } } } } ?>
никому здесь не охота. по большому счету тут всем пох на твои проблемы. потому и вел бы себя соответственно, а не как будто здесь умоляют тебя выложить свой кусок гениального кода. службе поддержки ты бабло заплатил, когда сервер у них покупал - это входит в стоимость товара. А в стоимость говнокода услуги экстрасенсов и телепатов не входят. или как ты хотел чтобы тебе помогли, не видя кода? написать письмо демону mysql, спросить кто юзеров тырит из базы?
Апельсин. Отжег, считается. Ты всегда такой умный?! Вот что тебе в данной конкретной ситуации дал код? Нихрена. Я же сказал, что использовал 2 абсолютно разный файла регистрации, результат один - удаление. А вот идея с тригерами это уже интересно. Кстати заметь что код тут какбы не при чем =)
окей бро, оставляю тебя наедине с Малдером решать твои загадочные исчезновения. И заметь - в написанном руками, а не задницей коде - юзеры не пропадают. Внатуре код тут ни причем.
Апельсин Включи логику. Есть две страницы регистрации пользователей. И та и другая работали идеально, модификации проводились только в новой версии, но после исчезновения первого юзера, я вернулся к старому файлу, с ним такая же ситуация. bkm Я проверил все страницы кода по 100 раз. Нигде нет запроса на удаление. Ну кроме файла del.php конечно же, который и был создан для удаления пользователя, но он запускается только специальной ссылкой, которая находится на персональной странице пользователя. А у меня получается что я при регистрации вбиваю все данные пользователя, нажимаю Зарегистрировать, страница обновляется, выдаёт сообщение что пользователь добавлен, и всё, писец. Он какбы добавлен и сразу удалён. Бред какой-то.
100%. 1. После каждой такой регистрации auto_increment увеличивается на 1. номер ID который получает каждый новый пользователь постоянно новый 2. Если до нажатия кнопки открыть phpMyAdmin, патом нажать кнопку, и следить за phpMyAdmin, то пользователь появляется, и сразу исчезает. Т.е. я обновляю страницу PMA и вижу пользователь добавился, обновляю ещё раз и пользователя нет.
тогда я согласен с Апельсином - вызывай Малдера и Скалли)))) А по делу - проверь триггеры в mysql и внимательно просмотри код. Может ты случайно при перенаправлении пользователя вызываешь его удаление?
=) Код представлен выше, там даже намёка нет на удаление. А вот про тригеры это идея, где можно их посмотреть? И что там должно быть?
был у меня баг, но там добавлялась ещё одна запись, тоже долго голову ломал - как так?, а потом установил последний стабильный денвер и забыл.
У меня и так последний, хотя он тоже мозг парит, просто на нормальный комплект php+mysql пока нет ни времени ни сил, боюсь что терпение лопнет, и вообще брошу этот проект. Уже 4 месяца с ним вожусь.
А триггеры могут действовать только на 1 таблицу в БД? Потому-что в этой базе кроме Calls ещё куча таблиц, но остальные ведут себя вполне адекватно
SHOW TRIGGERS ничего не показывает Таблица Server: localhost Database: information_schema Table: TRIGGERS пустая
Я только сегодня его переустановил, но я ставил Denwer3_Base_PHP52_2010-11-07_a2.2.4_p5.2.12_zendoptimizer_m5.1.40_pma3.2.3
Я нашёл в чем проблема! CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC Убрал к чертям эти 3 строки из таблицы Users и данные перестали пропадать =)