POFIGISST » 2011.08.22 22:59

нашел мод тотализатора под чат который у меня стоит,но функционал там оставляет желать лучшего,поэтому хочу там кое что изменить,но так как я в пыхе не разбираюсь,то создал эту тему,чтоб задавать вопросы,так как их будет много(( сам тотал выложу сюда,чат вместе с ним поставлю на хост,чтоб был пример,данные от хоста тоже сюда выложу,так как хост бесплатный,та и если там что-то снесут,то не страшно))
сейчас там идет функционал :

1.Должно выводить историю матчей,но ошибка в запросе там (это исправлю).
2.Так же должно выводить "TOP 15 юзеров" но тоже ошибка в запросе(тоже сам исправлю).
3.Ну тут статистика в ней тоже ошибка,но думаю её вообще убрать.
4.Ну и админка,для юзеров не ниже левел 7(админ).
5.Админка малофункциональна

(Добавить матч,
Настройки системы,
Управление очками юзеров,
Управление оповешениями ,
Управление базой)

6.Чтоб выиграть нужно только полностью результат правильный написать(а хочу чтоб было просто если не угадали точный счет,а просто угадали какая команда выиграла,тоже чтоб начислялись посты)
8.Так же нету ставки,то есть юзер вообще не может проиграть,так как посты ставить нельзя(хочу это сделать,чтоб можно было ставить посты,и если проигрыш,то чтоб их снимало)

Теперь то что хочу сделать:
1.Ставка постов(чтоб юзер мог ставить свои посты).
2.Чтоб посты начислялись при угадании какая команда выиграла,не зависимо от счета,чтоб просто тогда добавлялось 200 постов.
3. Чтоб автоматом начисляло посты тем кто угадал команду которая победила (200 постов) и чтоб если полностью угадали правильный счет,то та ставка,которую юзер поставил например 500 постов увеличивалась в 2 раза,то есть +500 еще юзеру.

Вроде все,подскажите с чего начать?Сам тотал прикрепляю к посту.
Данные для примера адрес vipmast.ru логин sasasxas (или ид 294) пароль qqqq11w это главный админ.

ссылка на сам тотал http://vipmast.ru/total/
при заливке базы,выдавало ошибку в этой INSERT INTO `tot_adminka` VALUES (1, 'On', '1'); строке,я ей убрал :D

Данные от базы(если понадобятся)
http://limbo.beget.ru/phpMyAdmin/index.php
dimonr_vv // Пользователь БД
123456 // Пароль
dimonr_vv  // БД


теперь х\з с чего начать=( подскажите((

POFIGISST » 2011.08.23 01:05

Ну начну пожалуй с того,что сам смогу написать,это будет занос количества постов в базу,для этого ща в табле тотала,создам отдельное поле)

Gemorroj » 2011.08.23 19:57

бэээ) многабукаф)

Код:

1
2
KEY `id` (`id`),
KEY `id_2` (`id`)

индекс дублирован

POFIGISST » 2011.08.24 00:18

Gemorroj написал:

бэээ) многабукаф)

Код:

1
2
KEY `id` (`id`),
KEY `id_2` (`id`)

индекс дублирован

а дублирован это как?
Добавлено спустя   1 минуту  41 секунду:
З.Ы. чем больше букафф,тем больше пузомерка :D

WapStyle » 2011.08.24 00:21

POFIGISST написал:

Gemorroj написал:

бэээ) многабукаф)

Код:

1
2
KEY `id` (`id`),
KEY `id_2` (`id`)

индекс дублирован

а дублирован это как?
Добавлено спустя   1 минуту  41 секунду:
З.Ы. чем больше букафф,тем больше пузомерка :D

Что за народ...дублировн - копия, лдин и тот же. И вообще кто писал этот скрипт? Говнокод детектед в файлах
Добавлено спустя   4 минуты  39 секунд:
error_reporting(0); хм не аис. у меня на скриптах стоит  error_reporting(7); как говориться всё на показ, т.к. взлому это непоможет )))))
Добавлено спустя   7 минут  44 секунды:
и у твое базы кодировка cp1251_general_ci, а по данным записаным в базу они utf8_general_ci, ух как всё жестоко...чтож ты бедный мускул сервер мучаеш то, изверг )))

POFIGISST » 2011.08.24 04:15

error_reporting поставил на 10,ошибок не показало,скрипт из паблика,так что тут нечему удивляться ,если бы мог,то сам бы написал)

Gemorroj » 2011.08.25 11:36

поставь error_reporting -1 на время отладки.

POFIGISST » 2011.08.25 23:31

Gemorroj
хорошо,поставлю,я не знал что можно всовывать отрицательные числа на вывод ошибок))теперь буду знать,спасиб)

Gemorroj » 2011.08.26 13:22

-1 почти везде значит "без ограничений"

POFIGISST » 2011.08.30 15:58

Блин,начал переписывать скрипт тотала,и решил изменить немного запрос в базу(надеюсь в лучшую сторону) только возникла ошибка( раньше занос в базу был вот таким ,это сразу с проверкой)

Код:

1
2
3
4
5
6
7
mysql_query("INSERT INTO `tot_stavki` SET `kom1`='$s1',`kom2`='$s2',`kom1name`='$koma1',`time`='$time_ok',`date`='$date_ok',`kom2name`='$koma2',`idm`='$idm',`idu`='$user[id]'");
echo "Ставка сделана";
}
}
}
else
{echo"Что бы поставить на матч вам надо авторизироваться!";}

я сделал вот такой код

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ress = mysql_query("INSERT INTO tot_stavki (kom1,kom2,kom1name,time,date,kom2name,idm,idu) VALUES ('$s1','$s2','$koma1','$time_ok','$date_ok','$koma2','$idm','$user[id]')");
 
if ($ress == 'true')
 
{
echo 'Ставка сделана';
}
else
{
echo 'Ошибка! Обратитесь к Администрации!';
}
 
break;

и после этого начало выдавать ошибку в строке которая ниже,вот тут  "default:" только не знаю  в чем причина этой ошибки((вот выкладываю этот кусок кода((

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ress = mysql_query("INSERT INTO tot_stavki (kom1,kom2,kom1name,time,date,kom2name,idm,idu) VALUES ('$s1','$s2','$koma1','$time_ok','$date_ok','$koma2','$idm','$user[id]')");
if ($ress == 'true')
{
echo 'Ставка сделана';
}
else
{
echo 'Ошибка! Обратитесь к Администрации!';
}
echo '<br><a href=index.php>В тотализатор</a><br>';
break;
 
default:

в чем тут ошибка?(

DarkRiDDeR » 2011.08.30 16:03

Сделай так, что за ошибка вылезит

Код:

1
$ress = mysql_query("INSERT INTO tot_stavki (kom1,kom2,kom1name,time,date,kom2name,idm,idu) VALUES ('$s1','$s2','$koma1','$time_ok','$date_ok','$koma2','$idm','$user[id]')") or die(mysql_errno() . mysql_error());
POFIGISST » 2011.08.30 16:06

DarkRiDDeR написал:

Сделай так, что за ошибка вылезит

Код:

1
$ress = mysql_query("INSERT INTO tot_stavki (kom1,kom2,kom1name,time,date,kom2name,idm,idu) VALUES ('$s1','$s2','$koma1','$time_ok','$date_ok','$koma2','$idm','$user[id]')") or die(mysql_errno() . mysql_error());

ошибку не показывает,просто не открывает страницу,и говорит что ошибка( сейчас попробую так сделать))
Добавлено спустя   2 минуты  14 секунд:
так тоже пишет что невозможно отобразить страницу(

WapStyle » 2011.08.30 16:19

Код:

1
2
$sql = "INSERT INTO `tot_stavki` (`kom1`,`kom2`,`kom1name`,`time`,`date`,`kom2name`,`idm`,`idu`) VALUES ('$s1','$s2','$koma1','$time_ok','$date_ok','$koma2','$idm','$user[id]')";
if(mysql_query($sql) echo 'ok'; else echo mysql_error();
POFIGISST » 2011.08.30 16:27

Спасибо,с компа буду,засуну код туда:)

POFIGISST » 2011.08.31 02:58

Всеравно ошибка((

Ошибка сервера
На веб-сайте произошла ошибка при получении http://test4.ru/total/. Веб-сайт может быть закрыт на обслуживание или настроен неправильно.
Вот несколько советов и рекомендаций:
Обновите эту страницу позже.
Ошибка HTTP 500 (Internal Server Error): При попытке сервера выполнить запрос возникла неожиданная ситуация. ((

DarkRiDDeR » 2011.08.31 07:50

Ну это с запросом к БД не должно быть связано

POFIGISST » 2011.08.31 12:19

DarkRiDDeRда,запрос верный,из за проверки эта ошибка:(

DarkRiDDeR » 2011.08.31 13:37

Какой проверки?

POFIGISST » 2011.08.31 14:06

DarkRiDDeRну после запроса,идет проверка,занеслись в базу данные или нет,если нет,то пишет типа ошибка:)

POFIGISST » 2011.09.03 06:06

Подскажите как всунуть проверку  на то число ли ввели или нет,в базе стоит интежер,поэтому буквы туда все равно не заносит,хочу чтоб выдавало ошибку если чел ввел букву))примерно вот так

Код:

1
2
3
4
if(!preg_match('!^[0-9]+$!i',$txt))
{
echo 'Ошибка!! в текст вы вхерачили не только цифры!!!';
}

эта проверка должна быть,просто незнаю как я её вставить правильно(


вот кусок кода который отвечает за переменные которые заносятся в базу))

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$arr=mysql_fetch_array($q);
echo "
<form action='?mod=stav&idm=$idm' method=post>$arr[kom1] :
<input size='3' name='s1'><br/>$arr[kom2] :<input size='3' name='s2'><br/>
<p>Количество постов:<input size='3' name='stpost'><br/>
 
<input type='submit' value='Ставим' name='submit'></form>";
}else{
if(empty($_GET['idm'])){exit("Ошибка ввода данных $_POST[s1] $_POST[s2] $_GET[idm]");}
else
{
 
$s1=intval($_POST['s1']);
$s2=intval($_POST['s2']);
$stpost=intval($_POST['stpost']);
 
$idm=intval($_GET['idm']);
$time_ok=date("H:i");
$date_ok=date("d.m.y");
$koma1=mysql_result(mysql_query("SELECT (kom1) FROM `tot_match` WHERE `id`='$idm'"),0);
$koma2=mysql_result(mysql_query("SELECT (kom2) FROM `tot_match` WHERE `id`='$idm'"),0);
Gemorroj » 2011.09.03 11:53

htmspecialchars-ом пользуйся..
вставь в обработчике POST запроса

POFIGISST » 2011.09.03 18:05

Gemorroj
а нафиг это функция,чет я почитал ман по ней,там преобразовывает символы в цифровые значения если я правильно понял)

Gemorroj » 2011.09.03 18:31

капец...почитай еще

POFIGISST » 2011.09.03 18:34

Gemorroj
а почему через preg_match нельзя сделать проверку?) так же наверное проще((

Gemorroj » 2011.09.03 18:42

exit("Ошибка ввода данных $_POST[s1] $_POST[s2] $_GET[idm]");

POFIGISST » 2011.09.03 18:48

Gemorroj написал:

exit("Ошибка ввода данных $_POST[s1] $_POST[s2] $_GET[idm]");

спасиб,сделаю так))

Gemorroj » 2011.09.03 19:13

блять, это твой код! и в не не хватает htmlspecialchars

POFIGISST » 2011.09.03 19:15

Gemorroj написал:

блять, это твой код! и в не не хватает htmlspecialchars

ой бля,точн :D  ну вот ман по функции htmlspecialchars "htmlspecialchars --  Преобразует специальные символы в HTML сущности"  может я как то не так смотрел((

DarkDaNTe » 2011.09.03 21:55

в результате htmlspecialchars, например "<" преобразуется в "&lt;". Теперь понятно?)

POFIGISST » 2011.09.04 05:40

DarkDaNTe написал:

в результате htmlspecialchars, например "<" преобразуется в "&lt;". Теперь понятно?)

Это я понял что оно переобразовывает,а зачем переобразовывать?((

DarkRiDDeR » 2011.09.04 06:17

Это чтобы бразер смог отобразить теги как текст, иначи браузер не отабразит их, и могут начаться проблемы с валидностью, с хакерами, которые яваскрипт будут совать.

Gemorroj » 2011.09.04 11:31

XSS

DarkRiDDeR » 2011.09.04 11:38

Да, короче уязвимость.

POFIGISST » 2011.09.05 06:53

Ну так у меня идет 3 поле ввода,в одном идет количество голов первой команды,во втором идет количество голов второй команды,и третье поле идет для записи сколько постов ставят,в первые два поля больше двух символов вставлять нельзя,и даже если туда какой то знак суют или букву,то в базу это не заноситься так как там интежер стоит,а для количества постов сделаю,так как там можно до 20 символов вводить,но хотя и там тоже в базе стоит интежер)

DarkRiDDeR » 2011.09.05 08:32

Ну тогда не надо, это тоже от случая зависит. Если только цифры, то я использую  для проверки ctype_digit() или intval()

POFIGISST » 2011.09.06 21:44

DarkRiDDeR написал:

Ну тогда не надо, это тоже от случая зависит. Если только цифры, то я использую  для проверки ctype_digit() или intval()

а как лучше сделать,через preg_match или intval ?)

Gemorroj » 2011.09.07 08:05

ctype лучше вообще не использовать, это расширение будет перенесено в PECL и убрано из стандартной поставки.
если нужно проверить цифра ли, можно еще использовать is_numeric

DarkRiDDeR » 2011.09.07 08:53

Будем иметь в виду.
Intval, конечно, намного проще использовать, чем preg_match. Большой разницы в скорости нет, тут только разница в удобстве.

DarkRiDDeR » 2011.09.07 14:10

Ну is_numeric ещё правильными будет считать и десятичные числа(если не ошибаюсь), то лучше использовать, выхобит: функцию intval. Мороки меньше

Gemorroj » 2011.09.07 14:39

DarkRiDDeR, а еще и экспоненты. но может оно нам и надо?)

DarkRiDDeR » 2011.09.07 17:57

Ну это если может? :)