Пишу реферальную систему для ПхпБб. Пишу на пхп + мускул Принцип заключаеться в чем. Когда зарегеный пользователь приводит по уник ссылке нового пользователя он получает + 1 поинт. ссылка выглядит примерно так сайт.ру/индекс.пхп?123 Создал доп таблицу в мускуле : CREATE TABLE `phpbb_points` ( `user_id` int(11) NOT NULL, `username` text NOT NULL, `userpoints` int(11) NOT NULL, `ip` text NOT NULL, `time` time NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; PHP: <? include("config.php"); $id = mysql_escape_string($_SERVER['QUERY_STRING']); if (!is_numeric($id) || strlen($id) == 0) echo"Error!"; else { $login=mysql_fetch_array(mysql_query("SELECT user_id, username FROM phpbb_users WHERE id='".$id."'")); if (!empty($login['user'])) { $ip=GetEnv("REMOTE_ADDR"); $now=time(); $res=mysql_fetch_array(mysql_query("SELECT `user_id` FROM php_points where ip='".$ip."' AND time>$now-86400")); $col=mysql_fetch_array(mysql_query("SELECT count(*) as count FROM php_points where id='".$id."' AND time>$now-86400")); if ($col['count']<=50) { if (empty($res['user_id'])) { mysql_query("INSERT INTO php_points values ('".$login['user_id']."','$ip','$now')"); mysql_query("UPDATE php_points set points=points+1 where id='".$login['user_id']."'"); } } } mysql_close($link); $host=GetEnv("HTTP_HOST"); Header("Location: http://$host/"); } ?> Где-то ошибка. Не заполняеться база. Помогите кто может. Буду ооочень благодарен
Файл конфиг пхп PHP: <?php // phpBB 2.x auto-generated config file // Do not change anything in this file! $dbms = 'mysql'; $dbhost = 'localhost'; $dbname = 'db'; $dbuser = 'user'; $dbpasswd = 'pass'; $table_prefix = 'phpbb_'; define('PHPBB_INSTALLED', true); ?> а насчет селект ДБ, подскажите если не трудно куда прописать и как примерно должен выглядеть скрипт
PHP: mysql_connect($dbhost,$dbuser,$dbpasswd); mysql_select_db($dbname); и во всех операциях с таблицей перед именем таблицы ставь $table_prefix
всеравно что-то нетак, попробуйте ктонить у кого есть пхпББ пожалуйста. Сделал так PHP: <? include("config.php"); mysql_connect($dbhost,$dbuser,$dbpasswd; mysql_select_db($dbname); $id = mysql_escape_string($_SERVER['QUERY_STRING']); if (!is_numeric($id) || strlen($id) == 0) echo"Error!"; else { $login=mysql_fetch_array(mysql_query("SELECT user_id, username FROM phpbb_users WHERE id='".$id."'")); if (!empty($login['user'])) { $ip=GetEnv("REMOTE_ADDR"); $now=time(); $res=mysql_fetch_array(mysql_query("SELECT `user_id` FROM phpbb_points where ip='".$ip."' AND time>$now-86400")); $col=mysql_fetch_array(mysql_query("SELECT count(*) as count FROM php_points where id='".$id."' AND time>$now-86400")); if ($col['count']<=50) { if (empty($res['user_id'])) { mysql_query("INSERT INTO php_points values ('".$login['user_id']."','$ip','$now')"); mysql_query("UPDATE php_points set points=points+1 where id='".$login['user_id']."'"); } } } mysql_close($link); $host=GetEnv("HTTP_HOST"); Header("Location: http://$host/"); } ?> Помогите сделать пожалуйста
В первом сообщении ты сказал что создал таблицу под именем "phpbb_points". Но в самом скрипте при выборке или вставке в таблицу используешь альтернативное название "php_points". Вероятно тебе надо определится с названием и закрыть скобку в 4-ой строчке. mysql_close($link); Я полагаю, это не просто так в конце стоит. Замени 4 и 5 строчку, на PHP: $link = mysql_connect($dbhost,$dbuser,$dbpasswd); $link = mysql_select_db($dbname); и для красоты: PHP: == 0) echo"Error!"; Поставь пробел после echo.
ставь хотя бы or print mysql_error() после mysql_query(), раз пхпббешный класс для работы с бд не юзаешь. может там где ошибка - смотри.
Всем спасибо но еще не все, следовал вашим советом, ставил пхп-редактор в нем пробовал - не то. Все равно база не заполняется. Структура таблиці `phpbb_points` -- вот проапгрейдженый код: PHP: <html> <head> <title></title> </head> <body> <? include("config.php"); $link = mysql_connect($dbhost,$dbuser,$dbpasswd); $link = mysql_select_db($dbname); $id = mysql_escape_string($_SERVER['QUERY_STRING']); if (!is_numeric($id) || strlen($id) == 0) echo "Error!"; else { $login=mysql_fetch_array(mysql_query("SELECT user_id, username FROM phpbb_users WHERE user_id='".$id."'")); if (!empty($login['username'])) { $ip=GetEnv("REMOTE_ADDR"); $now=time(); $res=mysql_fetch_array(mysql_query("SELECT `user_id` FROM phpbb_points where ip='".$ip."' AND time>$now-86400")); $col=mysql_fetch_array(mysql_query("SELECT count(*) as count FROM phpbb_points where user_id='".$id."' AND time>$now-86400")); if ($col['count']<=50) { if (empty($res['user_id'])) { mysql_query("INSERT INTO phpbb_points values ('".$login['user_id']."','$ip','$now')"); mysql_query("UPDATE phpbb_points set userpoints=userpoints+1 where user_id='".$login['user_id']."'"); } } } mysql_close($link); $host=GetEnv("HTTP_HOST"); Header("Location: http://$host/"); } ?> </body> </html> попробуйте пожалуйста ктонить у себя поставить - может разберетесь, я уже 3-тий день с ним имею половую жизнь
попробуй все свои mysql_query заменить на следующее: PHP: if(!mysql_query( ... )) echo mysql_error();
народ извините сейчас времени нету. Практика все-таки.... Если кто может пожалуйста потестируйте скрипт как подсказали господа solker и scrat