ugrás a tartalomhoz

sql hiba, pls help - megoldva

krumpli · 2011. Ápr. 3. (V), 00.52
Üdv!

Van egy problémám a következő scriptel sajnos... Az oldal bejön, minden ok, de csak számokat ment le sql-be, betűket nem hajlandó egyáltalán. Ha van benne egy betű akkor le se ment semmit... help pls. Köszönöm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
</head>
<body>
<?php
$db_host		= 'host';
$db_user		= 'user';
$db_pass		= 'pass';
$db_database	= 'db'; 
$link = mysql_connect($db_host,$db_user,$db_pass) or die('Unable to establish a DB connection');

mysql_select_db($db_database,$link);
mysql_query("SET names UTF8");

$query = mysql_query("SELECT valami FROM user WHERE id = '12' ") or die ("Érvénytelen kérés");
$settings=mysql_fetch_array($query);

if($_POST['submit']=='Ment')
{
$valami = $_POST["valami"];
mysql_query ("UPDATE user SET valami = $valami WHERE id = '12'");
header("Location: ./");
exit;
}
?>
<div>
<form action="#" method="post">				
<label class="grey" for="valami">URL:</label>
<input class="field" name="valami" id="valami" size="100" value="<?php echo $settings['valami'] ?>" />	
<input type="submit" name="submit" value="Ment" />
</form>
</div>			
</body>
</html>
ALTER TABLE user ADD `valami` varchar(100) COLLATE utf8_unicode_ci NOT NUL
 
1

string

QXY · 2011. Ápr. 3. (V), 01.44
Talán tedd aposztrófok közé, hiszen string.

mysql_query ("UPDATE user SET valami='$valami' WHERE id='12'");
2

A 23. sorban hibas az SQL

vrnagy · 2011. Ápr. 3. (V), 01.46
A 23. sorban hibas az SQL lekeresed.
mysql_query ("UPDATE user SET valami = $valami WHERE id = '12'");
helyett
mysql_query ("UPDATE user SET valami = '".$valami."' WHERE id = 12");
kellene
3

thx

krumpli · 2011. Ápr. 3. (V), 01.56
Köszönöm a segítséget, ez volt a hiba.
4

SQL Injection

Poetro · 2011. Ápr. 3. (V), 08.08
Sose, mégegyszer sose mentünk el felhasználótól jövő adatot úgy, hogy előtt nem ellenőríztük illetve escapeltük. Ebben az esetben:
$valami = mysql_real_escape_string($_POST["valami"]);  
mysql_query ("UPDATE user SET valami = '$valami' WHERE id = '12'");
// illetve
// mysql_query ("UPDATE user SET valami = '" . $valami . "' WHERE id = 12");