Форум -> Магазин Asers_Shop для Slaed 2.1 -> HTML! Ужос |
HTML! Ужос |
---|
makarovgosha | Дата: 10.06.2008, в 15:43 | Сообщение №1 |
УчастникПользователь №: 333 Сообщений: 56
| КАК не допускать HTML код в комментариях к продуктам?!
Хакнут ведь? :'( |
|
|
Serg_pnz | Дата: 10.06.2008, в 15:56 | Сообщение №2 |
АдминистраторПользователь №: 1 Сообщений: 2243
| На приемке сообщения, перед записью в базу, прогони через text_filter | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
makarovgosha | Дата: 10.06.2008, в 16:02 | Сообщение №3 |
УчастникПользователь №: 333 Сообщений: 56
| Такс, text_filter - это у нас что?) |
|
|
makarovgosha | Дата: 10.06.2008, в 16:06 | Сообщение №4 |
УчастникПользователь №: 333 Сообщений: 56
| А в каком месте файла править? не могу чтото найти это место, где происходит запись в БД(((( |
|
|
Serg_pnz | Дата: 10.06.2008, в 16:07 | Сообщение №5 |
АдминистраторПользователь №: 1 Сообщений: 2243
| Это доморощенная функция слаеда. В зависимости от версии может называться по-разному, например, save_text | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
makarovgosha | Дата: 10.06.2008, в 16:12 | Сообщение №6 |
УчастникПользователь №: 333 Сообщений: 56
| править нужно функцию rateproduct? (В ней же вроде только можно добавить оценку и комментарий сам...)
Прилагаю эту функцию...
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| <?php function rateproduct($lid, $user) { global $db, $cookie, $datetime, $module_name; include("header.php"); menu(1); echo " OpenTable(); $result = $db->sql_query("SELECT cid, title FROM asershop_products WHERE lid = '$lid'"); list($cid, $title)=$db->sql_fetchrow($result); showfeatured(); smallmenu($cid); showproduct($lid); CloseTable(); echo " OpenTable(); $ip = $_SERVER["REMOTE_HOST"]; if (empty($ip)) { $ip = $_SERVER["REMOTE_ADDR"]; } echo "<b>$title</b>" ."<ul><font class=\"content\">" ."<li>"._RATENOTE1."" ."<li>"._RATENOTE2."" ."<li>"._RATENOTE3.""; if(is_user($user)) { $user2 = base64_decode($user); $cookie = explode(":", $user2); echo "<li>"._YOUAREREGGED."" ."<li>"._FEELFREE2ADD.""; # cookiedecode($user); $auth_name = $user[1]; } else { echo "<li>"._YOUARENOTREGGED."" ."<li>"._IFYOUWEREREG.""; $auth_name = "$anonymous"; } echo "</ul>" ."<form method=\"post\" action=\"index.php?name=$module_name\">" ."<table border=\"0\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\">" ."<tr><td width=\"25\" nowrap></td>" ."<tr><td width=\"25\" nowrap></td><td width=\"550\">" ."<input type=\"hidden\" name=\"ratinglid\" value=\"$lid\">" ."<input type=\"hidden\" name=\"ratinguser\" value=\"$auth_name\">" ."<input type=\"hidden\" name=\"ratinghost_name\" value=\"$ip\">" ."<font class=content>"._RATETHISPRODUCT." " ."<select name=\"rating\">" ."<option>--</option>" ."<option>10</option>" ."<option>9</option>" ."<option>8</option>" ."<option>7</option>" ."<option>6</option>" ."<option>5</option>" ."<option>4</option>" ."<option>3</option>" ."<option>2</option>" ."<option>1</option>" ."</select></font>" ."<font class=\"content\"> <input type=\"submit\" value=\""._RATETHISPRODUCT."\"></font>" ." if(is_user($user)) { echo "<b>"._SCOMMENTS.":</b> } else { echo"<input type=\"hidden\" name=\"ratingcomments\" value=\"\">"; } echo "</tr></table></form>"; CloseTable(); include("footer.php"); } ?> |
|
|
|
Serg_pnz | Дата: 10.06.2008, в 16:24 | Сообщение №7 |
АдминистраторПользователь №: 1 Сообщений: 2243
| Фиг его знает, я вообще не нашел где там сохраняется комментарий. | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
makarovgosha | Дата: 10.06.2008, в 16:31 | Сообщение №8 |
УчастникПользователь №: 333 Сообщений: 56
| Во, а я нашел... Функция addrating
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| <?php function addrating($ratinglid, $ratinguser, $rating, $ratinghost_name, $ratingcomments) { global $db, $cookie, $user, $module_name, $anonwaitdays; $passtest = "yes"; include("header.php"); $ratinglid = intval($ratinglid); completevoteheader(); if(is_user($user)) { $user2 = base64_decode($user); $cookie = explode(":", $user2); # cookiedecode($user); $ratinguser = $user[1]; } else if ($ratinguser=="outside") { $ratinguser = "outside"; } else { $ratinguser = "$anonymous"; } /* Make sure only 1 anonymous from an IP in a single day. */ $ip = $_SERVER["REMOTE_HOST"]; if (empty($ip)) { $ip = $_SERVER["REMOTE_ADDR"]; } /* Check if Rating is Null */ if ($rating=="--") { $error = "nullerror"; completevote($error); $passtest = "no"; } /* Check if REG user is trying to vote twice. */ if ($ratinguser!=$anonymous && $ratinguser != "outside") { $result=$db->sql_query("SELECT ratinguser FROM asershop_products_votedata WHERE ratinglid='$ratinglid'"); while(list($ratinguserDB)=$db->sql_fetchrow($result)) { if ($ratinguserDB==$ratinguser) { $error = "regflood"; completevote($error); $passtest = "no"; } } } /* Check if ANONYMOUS user is trying to vote more than once per day. */ if ($ratinguser==$anonymous){ $yesterdaytimestamp = (time()-(86400 * $anonwaitdays)); $ytsDB = Date("Y-m-d H:i:s", $yesterdaytimestamp); $result=$db->sql_query("SELECT * FROM asershop_products_votedata WHERE ratinglid='$ratinglid' AND ratinguser='$anonymous' AND ratinghostname = '$ip' AND TO_DAYS(NOW()) - TO_DAYS(ratingtimestamp) < '$anonwaitdays'"); $anonvotecount = $db->sql_numrows($result); if ($anonvotecount >= 1) { $error = "anonflood"; completevote($error); $passtest = "no"; } } /* Passed Tests */ if ($passtest == "yes") { $comment = stripslashes($comment); if ($comment != "") { update_points(19); } update_points(18); /* All is well. Add to Line Item Rate to DB. */ $ratinglid = intval($ratinglid); $rating = intval($rating); $db->sql_query("INSERT into asershop_products_votedata values (NULL,'$ratinglid', '$ratinguser', '$rating', '$ip', '$ratingcomments', now())"); /* All is well. Calculate Score & Add to Summary (for quick retrieval & sorting) to DB. */ /* NOTE: If weight is modified, ALL products need to be refreshed with new weight. */ /* Running a SQL statement with your modded calc for ALL products will accomplish this. */ $voteresult = $db->sql_query("SELECT rating, ratinguser, ratingcomments FROM asershop_products_votedata WHERE ratinglid = '$ratinglid'"); $totalvotesDB = $db->sql_numrows($voteresult); include ("modules/$module_name/voteinclude.php"); $finalrating = intval($finalrating); $totalvotesDB = intval($totalvotesDB); $truecomments = intval($truecomments); $ratinglid = intval($ratinglid); $db->sql_query("UPDATE asershop_products SET buyratingsummary='$finalrating',totalvotes='$totalvotesDB',totalcomments='$truecomments' WHERE lid = '$ratinglid'"); $error = "none"; completevote($error); } completevotefooter($ratinglid, $ratinguser); include("footer.php"); } ?> |
|
|
|
makarovgosha | Дата: 10.06.2008, в 16:33 | Сообщение №9 |
УчастникПользователь №: 333 Сообщений: 56
| Сохраняет в таблицу 'asershop_products_votedata'.
Сейчас попробую потыкать этим text_filter'ом ))) |
|
|
makarovgosha | Дата: 10.06.2008, в 16:41 | Сообщение №10 |
УчастникПользователь №: 333 Сообщений: 56
| заменил
PHP - Код | 1 2 3 4
| <?php $rating = intval($rating); $db->sql_query("INSERT into asershop_products_votedata values (NULL,'$ratinglid', '$ratinguser', '$rating', '$ip', '$ratingcomments', now())"); ?> |
на
PHP - Код | 1 2 3 4 5
| <?php $rating = intval($rating); text_filter($ratingcomments); $db->sql_query("INSERT into asershop_products_votedata values (NULL,'$ratinglid', '$ratinguser', '$rating', '$ip', '$ratingcomments', now())"); ?> |
= Комментарий теперь не сохраняется... Или я не так сделал? |
|
|
makarovgosha | Дата: 10.06.2008, в 16:45 | Сообщение №11 |
УчастникПользователь №: 333 Сообщений: 56
| вместо
text_filter($ratingcomments);
написать
$ratingcomments = text_filter($ratingcomments);
= то же самое...не сохраняет камент. |
|
|
makarovgosha | Дата: 10.06.2008, в 17:00 | Сообщение №12 |
УчастникПользователь №: 333 Сообщений: 56
| чтото я не понял XD
вернул исходный файл (копию, которую я сделал перед началом) и всё равно не добавляются! 0_O |
|
|
makarovgosha | Дата: 10.06.2008, в 17:02 | Сообщение №13 |
УчастникПользователь №: 333 Сообщений: 56
| я идиот...... phpmyadmin не закрыт был блин.. |
|
|
Serg_pnz | Дата: 10.06.2008, в 17:14 | Сообщение №14 |
АдминистраторПользователь №: 1 Сообщений: 2243
| А в целом победил? | Не все кальсоны с оторванными пуговицами - брюки. © Serg_pnz
"...даме водки? Это чистый спирт!" © кот Бегемот |
|
|
makarovgosha | Дата: 10.06.2008, в 17:16 | Сообщение №15 |
УчастникПользователь №: 333 Сообщений: 56
| Есть, получилось!!
$ratingcomments = text_filter($ratingcomments); работает!
Serg_pnz, большое спасибо! |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|