Не можете подсказать, как сделать так, чтобы выводился id только что зарегистрировавшегося пользователя? Т.е. он регается и сразу же его id выводится в элемент массива для добавления далее в другие запросы к базе. Это не должен быть скрипт, который будет вытаскивать последний id, ибо система должна быть расчитана на множество регистраций одновременно.
Надеюсь, что понятно объяснил.
И, разумеется, не прошу написать скрипт за меня. Подскажите, в какую сторону тут шагать? Нужно ли тут применение сессий?
Спустя 1 минута, 31 секунда (9.08.2010 - 14:29) Basili4 написал(а):
ну да при регистрации ложи в сессию его id и вперед. Новый пользователь новая сессия
Спустя 57 секунд (9.08.2010 - 14:30) AlmazDelDiablo написал(а):
А можете подсказать MySQL запрос, для вывода данных из таблицы? А то я с SQL не дружу.
Спустя 36 секунд (9.08.2010 - 14:31) Michael написал(а):
может
mysql_insert_id
?
mysql_insert_id
?
Спустя 54 секунды (9.08.2010 - 14:32) AlmazDelDiablo написал(а):
О, спасибо большое Как раз то, что нужно!
Спустя 20 минут, 17 секунд (9.08.2010 - 14:52) AlmazDelDiablo написал(а):
И еще один вопрос. Как вывести что-нибудь из куков?
Вот я сделал:
Как теперь значение user_id вывести в следующий запрос?
Вот я сделал:
@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, спасибо.
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 написал(а):
Спасибо, помогло
Спустя 48 минут, 26 секунд (9.08.2010 - 16:41) AlmazDelDiablo написал(а):
А нельзя ли решить проблему с руганью на ковычки в блоке echo <<<HTML? А то ругается на "", а мне без них тяжко.
И еще проблема. Идет ошибка "Parse error: syntax error, unexpected $end" на строку "?>". Погуглил, нашел, что причиной может случить короткий открывающий пхп-тэг "<?" или отсутствие где нужно "}" или ";". Но у меня открывается пхп через "<?php" и все циклы закрыты (проверял код раз 15).
И еще проблема. Идет ошибка "Parse error: syntax error, unexpected $end" на строку "?>". Погуглил, нашел, что причиной может случить короткий открывающий пхп-тэг "<?" или отсутствие где нужно "}" или ";". Но у меня открывается пхп через "<?php" и все циклы закрыты (проверял код раз 15).
Спустя 28 минут, 15 секунд (9.08.2010 - 17:09) uMnepaTop написал(а):
Где-то не закрыл..
У меня $end всегда означал, что где-то не закрыл
И в блоке
Не может ругаться на кавычки.. Никак
зы: Мониторинг cs 1.6 серверов?))
У меня $end всегда означал, что где-то не закрыл
И в блоке
echo <<<HTML
HTML;
Не может ругаться на кавычки.. Никак
зы: Мониторинг cs 1.6 серверов?))
Спустя 11 минут, 37 секунд (9.08.2010 - 17:21) AlmazDelDiablo написал(а):
А ведь ругается.
Если убрать в строке "<form action="" method="post">" ковычки (или заменить на " ' "), ругаться перестает
ПС: нет, не мониторинг, но КС 1.6
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;
типа:
<<<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);
значит есть ошибки
);
}
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']
это зависит от мтода которым ты форму передавал
анологино и с другими переменными
занчит этой переменной никогда не существует
она есть только в массиве
$_POST['cs16_acc_create_go'] или $_GET['cs16_acc_create_go']
это зависит от мтода которым ты форму передавал
анологино и с другими переменными
Спустя 12 минут, 10 секунд (11.08.2010 - 19:35) AlmazDelDiablo написал(а):
Спасибо большое, форма как таковая заработала Теперь буду разбираться с появившимися теперь ошибками, которые мне радостно сообщили о том, что не получается законнектиться к мускулу. Но теперь он хотябы пытается это сделать
ПС: если что, буду сюда писать )
ПС: если что, буду сюда писать )
Спустя 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