UPDATE данных в таблице!

Печать RSS
312

A
Автор
Пришелец
0
Как обновить данные в базе(правилно)? Я делал так
$add = $_GET['add'];
$pluss = 1;
$q = mysql_fetch_array(mysql_query("SELECT id,money,str,def,hp,maxhp FROM users WHERE usr = '.$_GET[usr].' AND pwd = '.$_GET[pwd].'"));
$id = strip_tags($q['id']);
$money = strip_tags($q['money']);
$str = strip_tags($q['str']);
$def = strip_tags($q['def']);
$hp = strip_tags($q['hp']);
$maxhp = strip_tags($q['maxhp']);
if($add == str){
echo '<p align="center">';
echo '<b><font color="green">Spēks veiksmīgi palielināts par 1 punktu!</font></b><br/>-===-<br/>';
echo '<a href="char.php?usr='.$usr.'&amp;pwd='.$pwd.'">Atpakaļ</a><br/>';
echo '<a href="main.php?usr='.$usr.'&amp;pwd='.$pwd.'">Uz galveno</a>';
$stre = $str + $pluss;
$mon = $money - $sprice;
mysql_query("UPDATE users SET str = '.$stre.', money = '.$mon.' WHERE id = '.$id.'"); }
но когда запускаю ету страницу все данные в таблице пропадает!
Help plizz
О

Землянин
0
Как понять исчезают? Поля обнуляются? Я так пологаю id имеет числовое значение? Числовые значение в кавычки или апострофы не подвергаются.
О

Землянин
0
Вообще к чему тебе тут strip_tags()?
A
Автор
Пришелец
0
http://wap-gang.net/scr.zip
ет весь скрипт! посмотри плиз размер 6кб
О

Землянин
0
В твоем скрипте очень много уязвимостей критической степени. пересмотри все свои типы данных. Например, денежный формат должен быть типа decimal. strip_tags вообще не к чему.
<?php
$q = mysql_fetch_array(mysql_query("SELECT id,money,str,def,hp,maxhp FROM users WHERE usr = '".$_GET['usr']."' AND pwd = ".intval($_GET['pwd'])));
mysql_query("UPDATE users SET str = $stre, money = $mon WHERE id = $id"); }
mysql_query("UPDATE users SET def = $defe, money = $mon WHERE id = $id"); }
mysql_query("UPDATE users SET hp = $hp, maxhp = $maxhpe, money = $mon WHERE usr = $id"); }
?>
Скрипт работает, но суть надеюсь понял
О

Землянин
0
я тебе только запросы написал. Весь скрипт нет времени смотреть. Но дырок в нем полно
О

Землянин
0
Для экранирования строковых значений достаточно
<?
$str = "Строка, "которую нужно" экранировать";
public function escapes($escp)
	{
		if(!get_magic_quotes_gpc())
		{
			$escp = mysql_escape_string($escp);
		}
		return $escp;
	}
$str = escapes($str);
?>
Для числовых значений достаточно intval()
A

Оранжевые штаны
0
Ты в функции mysql_query ("..."); используешь двойные кавычки а переменные заключаешь в одинарные '.$id.'

Чатланин
0
только хотел написать про уязвимости.
A

Оранжевые штаны
0
Если уж использовать такой метод то mysql_query('UPDATE . . . '.$id.'. . .');
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск