Ошибка добавление в базу

vadosik

Школьник
Репутация
45 / 123
PHP:
        mysqli_query($GLOBALS ['db_link'],"INSERT INTO `users` (`login`,`pass`,`email`,`name`) VALUES ('".htmlspecialchars($_POST['nickname'])."','".md5($_POST['psw_f'])."','".htmlspecialchars($_POST['email'])."','".htmlspecialchars($_POST['name'])."');
        $msg = '<span class="redtitle_st"><strong>Спасибо за регистрацию!</strong></span><br />';

спасибо за регистрацию выдаёт, но в базу не заносит, при этом отлично проверят на одинаковые логины или майлы, следовательно доступ в базу идёт, а вот добавлять почему-то не хочет
при включении ошибок пишет Notice: Undefined variable login
 
register_globals on?
 
что за скрипт? инфы больше можно?
w.wenl
PHP:
        mysqli_query($GLOBALS ['db_link'],"INSERT INTO `user` (`login`,`pass`,`email`,`name`,`country`,`city`,`bday`,`sex`,`thotem`,`bdaypers`,`obraz`,`ip`,`RegIp`".(($pers['id'])?',`referal`':'').") VALUES ('".htmlspecialchars($_POST['nickname'])."','".md5($_POST['psw_f'])."','".htmlspecialchars($_POST['email'])."','".htmlspecialchars($_POST['name'])."','".htmlspecialchars($_POST['country'])."','".htmlspecialchars($_POST['city'])."','".(intval($_POST['bday']).".".intval($_POST['bmonth']).".".intval($_POST['byear'])).$birst."','".htmlspecialchars($_POST['sex'])."','".rand(0,11)."','".time()."','".htmlspecialchars($_POST['sex']).".gif"."','".getIP()."','".getIP()."'".(($pers['id'])?",'".$pers['id']."'":'').")");
        $msg = '<span class="redtitle_st"><strong>Спасибо за регистрацию!</strong></span><br />';
вот если убрать $GLOBALS ['db_link'], то не коннектит к базе, Access denied for user ''@'localhost' (using password: NO)
если поменять mysqli на mysql то A link to the server could not be established
и на многие переменные выдаёт Undefined variable

если входить под заранее созданным в базе логином отлично заходит, но вот при регистрации не добавляет немогу понять почему
 
Последнее редактирование:
так. По порядку, это не солянка чтоб запихнуть всё в 2 строчки, сначала обработка и запись в переменные
Код:
// Принимаем данные и записываем в переменные
$login = htmlspecialchars($_POST['nickname']);
$psw = md5($_POST['psw_f']);
$email = htmlspecialchars($_POST['email']);
$name = htmlspecialchars($_POST['name']);
// mysql запрос на базу. Записываем в переменную результат запрос (он может быть True (если выполнен) и False (если ошибка))
$result = mysql_query("INSERT INTO users ('login','pass','email','name') VALUES ('{$login}','{$psw}','{$email}','{$name}') or die('Error insert user');
if($result){
[INDENT]$msg = '<span class="redtitle_st"><strong>Спасибо за регистрацию!</strong></span><br />';[/INDENT]
}else{
[INDENT]$msg = '<span class="redtitle_st"><strong>Регистрация не прошла ... Обратитесь к службу поддержки проекта!</strong></span><br />';[/INDENT]
}
Еще если не пройдет данное решение пришлите структуру базы
 
Последнее редактирование:
Еще если не пройдет данное решение пришлите структуру базы
[/QUOTE]
Parse error: syntax error, unexpected '?'

PHP:
$msg = '<span class="redtitle_st"><strong>Спасибо за регистрацию!</strong></span><br />';
 

Вложения

  • user.sql
    9.2 КБ · Просмотры: 572
у меня шок


базу почистили?
Первое что бросается ) PACK_KEYS=0 AUTO_INCREMENT=215782840 ;
Далее что за свалка в одной базе?!?! почему столько ключей?!?!
 
чувак, скобка и знак вопроса — это смайлик и вопросительный знак, а не кусок кода, который нао копипастить :)
я в курсе я добавлял только isset перед переменной.
базу почистили?
нет не чистил, чем это может помочь?
 
что не сильно отличается от...
— кури внимательно.
isset на все эти переменные возвращает 1

PHP:
    mysqli_query($GLOBALS['db_link'],'INSERT INTO user(login,pass,email,name,country,city,bday,sex,thotem,bdaypers,ip,obraz) VALUES ('.AP.$nickname.AP.','.AP.$pass.AP.','.AP.$email.AP.','.AP.$name.AP.','.AP.$country.AP.','.AP.$city.AP.','.AP.$birst.AP.','.AP.$sex.AP.','.AP.$thotem.AP.','.AP.time().AP.','.AP.$ip.AP.','.AP.$sex.".gif".AP.')');
вот вычитал, помогло.
 
Последнее редактирование:
isset на все эти переменные возвращает 1

PHP:
    mysqli_query($GLOBALS['db_link'],'INSERT INTO user(login,pass,email,name,country,city,bday,sex,thotem,bdaypers,ip,obraz) VALUES ('.AP.$nickname.AP.','.AP.$pass.AP.','.AP.$email.AP.','.AP.$name.AP.','.AP.$country.AP.','.AP.$city.AP.','.AP.$birst.AP.','.AP.$sex.AP.','.AP.$thotem.AP.','.AP.time().AP.','.AP.$ip.AP.','.AP.$sex.".gif".AP.')');
вот вычитал, помогло.

Приводите базу в порядок , при возможности PDO. И ключи используйте по назначению (сейчас база это свалка)
еще что у вас в константе AP
PHP:
AP.$nickname.AP.
isset - определяет установлена или передана переменная (потому возврат TURE (единица), если установлен и FALSE если нет)
 
не понимаю , define задает не кукис а создает константу , и перед использованием не обязателен знак @ (@ - означает что во время выполнения, эта функция не может показывать ошибки. Использование не рекомендуется в большинстве случаев)


bool define ( string $name , $value [, bool $case_insensitive = false ] )
Определяет именованную константу при запуске.
name
Имя константы.

value
Значение константы, допустимы скалярные величины и . Допустимые скалярные значения: , , или . Возможно определить константы типа , однако это не рекомендуется и может вызвать неопределенные последствия.

case_insensitive
Если параметр установлен как TRUE, то константа будет определена без учета регистра. По умолчанию регистр учитывается, т.е. CONSTANT и Constant могут содержать различные значения.

Замечание:

Регистронезависимые константы хранятся в нижнем регистре.


@DEFINE('AP','\''); // неверно!

define('AP','\');// верно!

Так же не ясно зачем использовать эту константу для вставки в MYSQL запросы.
 
Последнее редактирование:

Похожие темы

Сверху