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
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf8" />  
  5. </head>  
  6. <body>  
  7. <?php  
  8. $db_host        = 'host';  
  9. $db_user        = 'user';  
  10. $db_pass        = 'pass';  
  11. $db_database    = 'db';   
  12. $link = mysql_connect($db_host,$db_user,$db_passor die('Unable to establish a DB connection');  
  13.   
  14. mysql_select_db($db_database,$link);  
  15. mysql_query("SET names UTF8");  
  16.   
  17. $query = mysql_query("SELECT valami FROM user WHERE id = '12' "or die ("Érvénytelen kérés");  
  18. $settings=mysql_fetch_array($query);  
  19.   
  20. if($_POST['submit']=='Ment')  
  21. {  
  22. $valami = $_POST["valami"];  
  23. mysql_query ("UPDATE user SET valami = $valami WHERE id = '12'");  
  24. header("Location: ./");  
  25. exit;  
  26. }  
  27. ?>  
  28. <div>  
  29. <form action="#" method="post">                 
  30. <label class="grey" for="valami">URL:</label>  
  31. <input class="field" name="valami" id="valami" size="100" value="<?php echo $settings['valami'] ?>" />    
  32. <input type="submit" name="submit" value="Ment" />  
  33. </form>  
  34. </div>              
  35. </body>  
  36. </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.
  1. mysql_query ("UPDATE user SET valami = $valami WHERE id = '12'");  
helyett
  1. 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:
  1. $valami = mysql_real_escape_string($_POST["valami"]);    
  2. mysql_query ("UPDATE user SET valami = '$valami' WHERE id = '12'");  
  3. // illetve  
  4. // mysql_query ("UPDATE user SET valami = '" . $valami . "' WHERE id = 12");