Привет всем я только недавно начал изучать РНР опыта не имею так что прошу не бить буду очень признателен если подскажете кам можно было лучше написать или советы какието так же по самой защите скрипта.
за советы и т.д. всем нажму спасибо
Код:
if(isset($zatochka)){
if (!get_magic_quotes_gpc()){
$_POST['name_item']=mysql_escape_string($_POST['name_item']);
$_POST['urov_zat_or']=mysql_escape_string($_POST['urov_zat_or']);
$_POST['min_iznos']=mysql_escape_string($_POST['min_iznos']);
$_POST['max_iznos']=mysql_escape_string($_POST['max_iznos']);
}
/* if($_POST['session_id']!=session_id()){
exit();
}*/
$name_items=htmlspecialchars(stripslashes($_POST['name_item']), ENT_QUOTES);
$name_item=trim($name_items);
$urov_zat_ors=htmlspecialchars(stripslashes($_POST['urov_zat_or']), ENT_QUOTES);
$urov_zat_or=trim($urov_zat_ors);
$min_iznoss=htmlspecialchars(stripslashes($_POST['min_iznos']), ENT_QUOTES);
$min_iznos=trim($min_iznoss);
$max_iznoss=htmlspecialchars(stripslashes($_POST['max_iznos']), ENT_QUOTES);
$max_iznos=trim($max_iznoss);
// делаем проверку формы на правильность введеных параметров
if (strlen($urov_zat_ors)>2 and strlen($min_iznoss)>3 and strlen($max_iznoss)>3 ){
exit("Вы ввели не правильное значение!");
}
if ($name_item){
if ($stat['bloked']!=0)
$error = "У вас нет прав!";
elseif (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)|(\<>)|(\|(\<)|(\>)|(\%3B)|(\")|]/",$name_item))
$error = "Имя предмета имеет запрещенные символы.";
elseif (preg_match("/^[\b]*$/",$urov_zat_or))
$error = "Вы ввели неправельный уровень заточки.";
elseif (preg_match("/^[\b]*$/",$min_iznos))
$error = "Минимальный износ имеет запрещенные символы.";
elseif (preg_match("/^[\b]*$/",$max_iznos))
$error = "Максимальный износ имеет запрещенные символы.";
else{
//делаем запрос в БД и проверяем на предмет существования такой вещи у персонажа не стоит ли она на продаже или неодета она на нем
$object=mysql_query("SELECT objects. * FROM objects, slots WHERE objects.user='".$stat['user']."' AND objects.tip = 1 AND objects.title ='".$name_item."' AND objects.urov_zat_or ='".$urov_zat_or."' AND objects.min_iznos ='".$min_iznos."' AND objects.iznos ='".$max_iznos."' AND objects.bank=0 AND objects.komis=0 AND objects.id NOT IN (slots.1,slots.2,slots.3,slots.4,slots.5,slots.6,slots.7,slots.8,slots.9,slot
s.10,slots.11,slots.12,slots.13,slots.14,slots.15,slots.16,slots.17,slots.18,slo
t
s.19) ORDER BY time DESC");
$objects=mysql_fetch_array($object);
// Делаем проверку если предмет равен уровню заточки (urov_zat_or) 15 то дальнейшая заточка запрещена!
if ($objects['urov_zat_or']==15){
$error = "Вы достигли максимального уровня заточки"; break;
}else{ // в противном случае продолжаем
// также проверяем полученных данных с введенными. Проверяем имя предмета мин износ и макс износ
if ($objects['title']===$name_item AND $objects['urov_zat_or']==$urov_zat_or AND $objects['min_iznos']==$min_iznos AND $objects['iznos']==$max_iznos){
// если уровень заточки лежит в деапазоне от 0 до 6 включительно выполняем этот блок
if ($objects['urov_zat_or']>=0 AND $objects['urov_zat_or']<=6){
//$id=$objects['id'];
$zat=rand(1,10);
switch ($zat){
case 1://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 2://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 3://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 4://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 5://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 6://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 7://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 8://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 9://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 10://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
default: echo"<B STYLE='COLOR: Red'>Ошибка в сценарии!![/B]"; break;
}
}else{ // если уровень заточки больше проверяем в другом блоке
// если уровень заточки от 7 до 10 выполняем етот блок
if ($objects['urov_zat_or']>6 AND $objects['urov_zat_or']<=10){
//$id=$objects['id'];
$zat=rand(1,10);
switch ($zat){
case 1://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 2://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 3://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 4://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 5://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 6://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 7://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 8://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 9://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+1 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 10://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
default: echo"<B STYLE='COLOR: Red'>Ошибка в сценарии!![/B]"; break;
}
}else{
// если уровень заточки от 11 до 15 то этот
if ($objects['urov_zat_or']>10 AND $objects['urov_zat_or']<=15){
//$id=$objects['id'];
$zat=rand(1,10);
switch ($zat){
case 1://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+2 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 2://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 3://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+2 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 4://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 5://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+2 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 6://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 7://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+2 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 8://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
case 9://Удача
mysql_query("UPDATE objects SET urov_zat_or=".$objects['urov_zat_or']."+1, min_zat_or=".$objects['min_zat_or']."+1, max_zat_or=".$objects['max_zat_or']."+2 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$msg = "Вы удачно заточили вещь на +1"; break;
case 10://Неудача
mysql_query("UPDATE objects SET urov_zat_or=0, min_zat_or=0, iznos=".$max_iznos."-3, max_zat_or=0 WHERE user='".$stat['user']."' AND title='".$name_item."' AND urov_zat_or='".$urov_zat_or."' AND min_iznos ='".$min_iznos."' AND iznos ='".$max_iznos."' AND id=".$objects['id']."");
$error = "Вам не удалось заточить вещь! Вся заточка обнуляется и износ вещи уменьшелся на 3 ед."; break;
default: echo"<B STYLE='COLOR: Red'>Ошибка в сценарии!![/B]"; break;
}
}else{ echo"ошибка в уровне заточки";}
}
}
} else {
echo "<font color=red>Вы ввели не правельные параметры</font>";
}
}
}
}
unset($objects);
echo"<font color=green>".$msg."</font>";
echo"<font color=red>".$error."</font>";
}else{
//форма запроса созлаем переменные name_item - имя предмета, min_iznos - минимальний износ, max_iznos - максимальный износ
echo"
<FIELDSET style='WIDTH: 98.6%'><legend>Заточка оружия</legend>
<table width=100% cellspacing=0 cellpadding=5>
<form action='zatochka_or.php' method='POST'>
<tr><td align='center'>[b]Введите название предмета: <input type=text size=25 value='' name='name_item' ><big>+</big><input type=text size=3 value='0' name='urov_zat_or'>- Текущий уровень заточки[/b]</td></tr>
<tr><td align='center'>[b]Износ вещи: <input type=text size=5 value='0' name='min_iznos' class=input >из<input type=text size=5 value='0' name='max_iznos' class=input>[/b]</td></tr>
<tr><td align='center'><input type=submit value='Заточить оружие' class=input name='zatochka'>
<input type=hidden name='session_id' value=<?php echo session_id();?>
</td></tr>";
echo"
</table>
</FIELDSET>";
}
за советы и т.д. всем нажму спасибо