Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Пишу реферальную систему для phpbb. Помогите советом |

21.06.2008, 18:33
|
|
Участник форума
Регистрация: 04.07.2007
Сообщений: 111
Провел на форуме: 486797
Репутация:
102
|
|
Пишу реферальную систему для phpbb. Помогите советом
Пишу реферальную систему для ПхпБб.
Пишу на пхп + мускул
Принцип заключаеться в чем. Когда зарегеный пользователь приводит по уник ссылке нового пользователя он получает + 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/");
}
?>
Где-то ошибка. Не заполняеться база. Помогите кто может. Буду ооочень благодарен 
|
|
|

21.06.2008, 18:41
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
а где у тебя в скрипте mysql_connect/mysql_select_db?
|
|
|

21.06.2008, 18:45
|
|
Участник форума
Регистрация: 04.07.2007
Сообщений: 111
Провел на форуме: 486797
Репутация:
102
|
|
Файл конфиг пхп
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);
?>
а насчет селект ДБ, подскажите если не трудно куда прописать и как примерно должен выглядеть скрипт
|
|
|

21.06.2008, 18:56
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
PHP код:
mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname);
и во всех операциях с таблицей перед именем таблицы ставь $table_prefix
|
|
|

21.06.2008, 19:01
|
|
Участник форума
Регистрация: 04.07.2007
Сообщений: 111
Провел на форуме: 486797
Репутация:
102
|
|
спасибо =) +1
|
|
|

21.06.2008, 19:23
|
|
Участник форума
Регистрация: 04.07.2007
Сообщений: 111
Провел на форуме: 486797
Репутация:
102
|
|
всеравно что-то нетак, попробуйте ктонить у кого есть пхпББ пожалуйста. Сделал так
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/");
}
?>
Помогите сделать пожалуйста 
Последний раз редактировалось NApoleonchik; 21.06.2008 в 19:30..
|
|
|

21.06.2008, 19:38
|
|
Участник форума
Регистрация: 04.07.2007
Сообщений: 111
Провел на форуме: 486797
Репутация:
102
|
|
up! Может кто знает есть ли где готовый скрипт или получиться дописать этот - буду очень благодарен
|
|
|

22.06.2008, 00:46
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
Провел на форуме: 5812656
Репутация:
1540
|
|
PHP код:
mysql_connect($dbhost,$dbuser,$dbpasswd;
- скобку забыл
|
|
|

22.06.2008, 02:48
|
|
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме: 389768
Репутация:
158
|
|
В первом сообщении ты сказал что создал таблицу под именем "phpbb_points".
Но в самом скрипте при выборке или вставке в таблицу используешь альтернативное название "php_points".
Вероятно тебе надо определится с названием и закрыть скобку в 4-ой строчке.
mysql_close($link); Я полагаю, это не просто так в конце стоит.
Замени 4 и 5 строчку, на
PHP код:
$link = mysql_connect($dbhost,$dbuser,$dbpasswd);
$link = mysql_select_db($dbname);
и для красоты:
Поставь пробел после echo.
|
|
|

22.06.2008, 02:53
|
|
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме: 19975136
Репутация:
4536
|
|
ставь хотя бы or print mysql_error() после mysql_query(), раз пхпббешный класс для работы с бд не юзаешь. может там где ошибка - смотри.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|