[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск по таблице
AlmazDelDiablo
Добрый день.

Не можете подсказать, как сделать так, чтобы выводился id только что зарегистрировавшегося пользователя? Т.е. он регается и сразу же его id выводится в элемент массива для добавления далее в другие запросы к базе. Это не должен быть скрипт, который будет вытаскивать последний id, ибо система должна быть расчитана на множество регистраций одновременно.

Надеюсь, что понятно объяснил.
И, разумеется, не прошу написать скрипт за меня. Подскажите, в какую сторону тут шагать? Нужно ли тут применение сессий?



Спустя 1 минута, 31 секунда (9.08.2010 - 14:29) Basili4 написал(а):
ну да при регистрации ложи в сессию его id и вперед. Новый пользователь новая сессия

Спустя 57 секунд (9.08.2010 - 14:30) AlmazDelDiablo написал(а):
А можете подсказать MySQL запрос, для вывода данных из таблицы? rolleyes.gif А то я с SQL не дружу.

Спустя 36 секунд (9.08.2010 - 14:31) Michael написал(а):
может
mysql_insert_id
?


Спустя 54 секунды (9.08.2010 - 14:32) AlmazDelDiablo написал(а):
О, спасибо большое smile.gif Как раз то, что нужно!

Спустя 20 минут, 17 секунд (9.08.2010 - 14:52) AlmazDelDiablo написал(а):
И еще один вопрос. Как вывести что-нибудь из куков?
Вот я сделал:
@session_start();
set_cookie( "user_id", "$user_info['player_id']" );

Как теперь значение user_id вывести в следующий запрос?

mysql_query("INSERT INTO `amx_admins_servers`
SET
`project_id` = string(i),
`user_id` = "

Спустя 2 минуты, 8 секунд (9.08.2010 - 14:54) Basili4 написал(а):
$_COOKIE['user_id']

Спустя 32 секунды (9.08.2010 - 14:55) Michael написал(а):
Цитата
set_cookie

что то не встречал. А код этой функции где?

Спустя 3 минуты, 1 секунда (9.08.2010 - 14:58) AlmazDelDiablo написал(а):
Это из ДЛЕ.

Basili4, спасибо.

Спустя 45 минут, 25 секунд (9.08.2010 - 15:43) AlmazDelDiablo написал(а):
Хм.
Вроде сделал простенький модуль регистрации аккаунтов, но ругается непонятно на что.

Parse error: syntax error, unexpected T_IF in /cs16_acc.php on line 32


Вот это строка:
if( @$cs16_acc_create_go ) {  

Спустя 2 минуты, 23 секунды (9.08.2010 - 15:45) Basili4 написал(а):
AlmazDelDiablo
строчкой выше не поставил ;

Спустя 6 минут, 55 секунд (9.08.2010 - 15:52) AlmazDelDiablo написал(а):
Спасибо, помогло smile.gif

Спустя 48 минут, 26 секунд (9.08.2010 - 16:41) AlmazDelDiablo написал(а):
А нельзя ли решить проблему с руганью на ковычки в блоке echo <<<HTML? А то ругается на "", а мне без них тяжко.

И еще проблема. Идет ошибка "Parse error: syntax error, unexpected $end" на строку "?>". Погуглил, нашел, что причиной может случить короткий открывающий пхп-тэг "<?" или отсутствие где нужно "}" или ";". Но у меня открывается пхп через "<?php" и все циклы закрыты (проверял код раз 15).

Спустя 28 минут, 15 секунд (9.08.2010 - 17:09) uMnepaTop написал(а):
Где-то не закрыл..
У меня $end всегда означал, что где-то не закрыл rolleyes.gif
И в блоке
echo <<<HTML
HTML;

Не может ругаться на кавычки.. Никак wink.gif

зы: Мониторинг cs 1.6 серверов?))

Спустя 11 минут, 37 секунд (9.08.2010 - 17:21) AlmazDelDiablo написал(а):
А ведь ругается.
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

Если убрать в строке "<form action="" method="post">" ковычки (или заменить на " ' "), ругаться перестает


ПС: нет, не мониторинг, но КС 1.6

Спустя 41 минута, 13 секунд (9.08.2010 - 18:02) Michael написал(а):
нельзя выводить двойные кавычки внутри двойных просто так.
Т.е.
echo "тра ля ля "ло ло ло" тра ля ля"; // - неверно

Нужно:
echo 'тра ля ля "ло ло ло" тра ля ля';

или
echo "тра ля ля \"ло ло ло\" тра ля ля";

или
echo <<<XXX
"" ''
XXX;

Спустя 29 минут, 8 секунд (9.08.2010 - 18:31) AlmazDelDiablo написал(а):
Ммм... немного не понял вас. У меня строка
<form action="" method="post">

И на "" в ней ругается.

Спустя 8 минут, 9 секунд (9.08.2010 - 18:39) Ice написал(а):
Дайте сюда кусок кода

Спустя 5 минут, 28 секунд (9.08.2010 - 18:45) AlmazDelDiablo написал(а):
	if( @$cs16_acc_create_go ) {

/* Проверяем ник и пароль юзера */
if(!$POST['cs16_acc_nick'])
$info[] = 'Введите ник';

if(mb_strlen($POST['cs16_acc_pass1']) < 3)
$info[] = 'Пароль должен быть более 3-х символов.';

if($POST['cs16_acc_pass1'] !== $POST['cs16_acc_pass2'])
$info[] = 'Пароли не совпадают';

$res = mysql_query("SELECT COUNT(*) AS `cnt`
FROM `amx_amxadmins`
WHERE `username` = '"
. escapeString($POST['cs16_acc_nick']) ."'"
);

if(mysql_result($res, 0) > 0)
$info[] = '<b>Ник занят!</b>';

/* Добавляем юзера */
if(!count($info)) {
mysql_query("INSERT INTO `amx_amxadmins`
SET
`username` = '"
. escapeString($POST['cs16_acc_nick']) ."',
`password` = '"
. md5($POST['cs16_acc_pass1']) ."',
`access` = '"
. $cs16_acc_conf['standart_access'] ."',
`flags` = '"
. $cs16_acc_conf['standart_flags'] ."',
`nickname` = 'user'"

);

/* Пишем в сессию юзера его ИД */
@session_start();
set_cookie( "cs16_acc_player_id", "mysql_insert_id()", 0 );

/* Активируем аккаунт на всех серверах */
for( $i = 0; $i < $cs16_acc_conf['servers_count']; $i++ ) {
mysql_query("INSERT INTO `amx_admins_servers`
SET
`server_id` = '"
. string(i) ."',
`admin_id` = '"
. $_COOKIE['user_id'] ."'
);
}
reDirect();
}
}

/* Форма реги */
echo <<<HTML
<form action='' method=post>
Ваш игровой ник: <input name=cs16_acc_nick type=text><br />
Ваш пароль: <input name=ucs16_acc_pass1 type=password><br />
Повторите пароль: <input name=ucs16_acc_pass2 type=password><br />
<input name=cs16_acc_create_go type=submit value=Create />
</form>
HTML;

Спустя 3 минуты, 29 секунд (9.08.2010 - 18:48) Гость_Michael написал(а):
$_COOKIE['user_id'] ."'

закрой:
$_COOKIE['user_id'] ."'"

Спустя 1 минута, 59 секунд (9.08.2010 - 18:50) Гость_Michael написал(а):
и нормальный html делай, а не то, что у тебя внутри
<<<HTML
...
HTML;

типа:
<form action="" method="post">


Спустя 1 минута, 48 секунд (9.08.2010 - 18:52) AlmazDelDiablo написал(а):
Эх, опять с SQL накасячил >< Не везет мне с ним. Спасибо )

Спустя 1 минута, 58 секунд (9.08.2010 - 18:54) Гость_Michael написал(а):
Цитата
А всмысле нормальный ХТМЛ делать?

по стандартам оформленный - кавычечки двойные не забываем и т.д. Поучиться можно у дримвиевера.

Спустя 1 день, 1 час, 20 минут, 49 секунд (10.08.2010 - 20:15) AlmazDelDiablo написал(а):
Такс, вроде звершил этот скрипт, запустил его, но ничего не происходит >_<

Т.е. при вводе в формы ника, паролей и нажатия на отправку данных просто обновляется страница, а записи в БД не поступают.

Код:

<?php
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}

require_once (ENGINE_DIR.'/data/cs16_acc_conf.php');
require_once (ENGINE_DIR.'/modules/cs16_acc/cs16_acc_sql.php');
require_once ROOT_DIR.'/language/'.$config['langs'].'/cs16_acc.lng';

$cs16_acc_dbconnect;

/*
=====================================================
Создание аккаунта CS 1.6
=====================================================
*/

if( $cs16_acc_create_go ) {

/* Проверяем ник и пароль юзера */
if(!$cs16_acc_nick)
$info[] = 'Введите игровой ник';

elseif(mb_strlen($cs16_acc_nick) > 16)
$info[] = 'Длина ника не должна превышать 16 символов';

if(!$cs16_acc_pass1)
$info[] = 'Введите пароль';
elseif(mb_strlen($cs16_acc_pass1) < 3)
$info[] = 'Пароль должен состоять как минимум из 3х символов';
elseif($cs16_acc_pass1 !== $cs16_acc_pass2)
$info[] = 'Пароли не идентичны';

$res = mysql_query("SELECT COUNT(*) AS `cnt`
FROM `amx_amxadmins`
WHERE `username` = '"
. escapeString($cs16_acc_nick) ."'"
);
if(mysql_result($res, 0) > 0)
$info[] = 'Данный ник уже занят';

/* Добавляем юзера */
if(!count($info)) {
mysql_query("INSERT INTO `amx_amxadmins`
SET
`username` = '"
. escapeString($cs16_acc_nick) ."',
`password` = '"
. md5($cs16_acc_pass1) ."',
`access` = '"
. $cs16_acc_conf['standart_access'] ."',
`flags` = '"
. $cs16_acc_conf['standart_flags'] ."',
`nickname` = 'user'"

);

/* Пишем в сессию юзера его ИД */
@session_start();
setcookie( 'cs16_acc_player_id', "mysql_insert_id()", time() + 3600 * 24 * 30, '/' );

/* Активируем аккаунт на всех серверах */
for( $i = 0; $i < $cs16_acc_conf['servers_count']; $i++ ) {
mysql_query("INSERT INTO `amx_admins_servers`
SET
`server_id` = '"
. string(i) ."',
`admin_id` = '"
. $_COOKIE['user_id'] ."'"
);
}
reDirect();
}
}


/* Форма */
<form action='' method='post'>
<
input name='cs16_acc_nick' type='text'>
<
input name='cs16_acc_pass1' type='text'>
<
input name='cs16_acc_pass2' type='text'>
<
input name='cs16_acc_create_go' type='submit' value='Create' />
</
form>

?>

Спустя 21 час, 54 минуты, 1 секунда (11.08.2010 - 18:09) AlmazDelDiablo написал(а):
up тему. Не могу понять, из-за чего ничего не происходит >_<

Спустя 5 минут, 28 секунд (11.08.2010 - 18:14) Basili4 написал(а):
AlmazDelDiablo
а ты сам запрос прверял в ПМА например ? может сним что не так

можно так написть будет видно что происходит

mysql_query("INSERT INTO `amx_amxadmins`
SET
`username` = '"
. escapeString($cs16_acc_nick) ."',
`password` = '"
. md5($cs16_acc_pass1) ."',
`access` = '"
. $cs16_acc_conf['standart_access'] ."',
`flags` = '"
. $cs16_acc_conf['standart_flags'] ."',
`nickname` = 'user'"

)or die(mysql_error());

Спустя 5 минут, 40 секунд (11.08.2010 - 18:20) AlmazDelDiablo написал(а):
Добавил, проверил. Все также просто обновляется страница, никаких ошибок не появляется.

Спустя 2 минуты, 40 секунд (11.08.2010 - 18:22) Basili4 написал(а):
вот так напиши
);
}
reDirect();
} else print_r($info);

значит есть ошибки

Спустя 10 минут, 59 секунд (11.08.2010 - 18:33) AlmazDelDiablo написал(а):
Нет. Все так же простое обновление страницы.

Кстати, если неправльно ввести данные в форумы паролей (разные), то он всеравно также обновляет страницу и ничего не выводит нового.

Спустя 45 минут, 56 секунд (11.08.2010 - 19:19) Basili4 написал(а):
$cs16_acc_create_go это окуда берется ?

Спустя 32 секунды (11.08.2010 - 19:20) AlmazDelDiablo написал(а):
<input name='cs16_acc_create_go' type='submit' value='Create' />

Спустя 2 минуты, 34 секунды (11.08.2010 - 19:22) Basili4 написал(а):
ну вот

занчит этой переменной никогда не существует
она есть только в массиве

$_POST['cs16_acc_create_go'] или $_GET['cs16_acc_create_go']

это зависит от мтода которым ты форму передавал

анологино и с другими переменными

Спустя 12 минут, 10 секунд (11.08.2010 - 19:35) AlmazDelDiablo написал(а):
Спасибо большое, форма как таковая заработала smile.gif Теперь буду разбираться с появившимися теперь ошибками, которые мне радостно сообщили о том, что не получается законнектиться к мускулу. Но теперь он хотябы пытается это сделать smile.gif

ПС: если что, буду сюда писать )

Спустя 1 минута, 13 секунд (11.08.2010 - 19:36) Basili4 написал(а):
пиши

Спустя 1 день, 52 минуты, 15 секунд (12.08.2010 - 20:28) AlmazDelDiablo написал(а):
Можете подсказать, что это за переменная $this ? Гуглил, вроде это нечто связанное в кешированнием. Или же это не стандартная переменная и этот вопрос лучше задать на форуме, посвященному DLE?

Спустя 1 час, 9 минут, 21 секунда (12.08.2010 - 21:37) Nord написал(а):
$this - указатель в методе на текущий объект:


class SomeClass{
function getThis(){
return $this;
}
}


$obj = new SomeClass();
if ($obj === $obj->getThis()){
echo "Да, это так";
} else echo "Нет, это не так";

// Результат:
//
// Да, это так
//


Спустя 15 часов, 33 минуты, 3 секунды (13.08.2010 - 13:10) AlmazDelDiablo написал(а):
Спасибо большое.


_____________
Блог | VK | GitHub | Twitch
Быстрый ответ:

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