【发布时间】:2011-07-05 09:26:33
【问题描述】:
编辑:
非常感谢您的回答,您的智慧真让我惊讶:)
我正在尝试对 TuteC 的代码进行一些更改,但不知道如何使其正常工作:
$valor = $_POST['valor'];
$post_vars = array('iphone3g1', 'iphone3g2', 'nome', 'iphone41', 'postal', 'apelido');
foreach($post_vars as $var) {
$$var = "'" . mysql_real_escape_string($_POST[$var]). "', ";
}
$sql = "INSERT INTO clientes (iphone3g1, iphone3g2, nome, iphone41, postal, apelido, valor) VALUES ($$var '$valor')";
$query= mysql_query($sql);
我知道代码有一点作弊,我需要使用子字符串,这样 $$var 就不会在我需要值的末尾输出“,”,而是尝试插入一个变量是一个值($valor = $_POST['valor'];) 出了什么问题?
对于其他试图帮助我的人,非常感谢,我在 stackoverflow 和你一起学习了很多东西。
我有一个包含多个字段值的表单,当我尝试编写一个读取这些值的 php 文件时,结果很严重:
$codigounico= md5(uniqid(rand()));
$modelo=$_POST['selectName'];
$serial=$_POST['serial'];
$nif=$_POST['nif'];
$iphone3g1=$_POST['iphone3g1'];
$iphone3g2=$_POST['iphone3g2'];
$iphone3g3=$_POST['iphone3g3'];
$iphone3g4=$_POST['iphone3g4'];
$iphone3gs1=$_POST['iphone3gs1'];
$iphone3gs2=$_POST['iphone3gs2'];
$iphone3gs3=$_POST['iphone3gs3'];
$iphone3gs4=$_POST['iphone3gs4'];
$iphone41=$_POST['iphone41'];
$iphone42=$_POST['iphone42'];
$iphone43=$_POST['iphone43'];
$iphone44=$_POST['iphone44'];
$total=$_POST['total'];
$valor=$_POST['valor'];
$nome=$_POST['nome'];
$apelido=$_POST['apelido'];
$postal=$_POST['postal'];
$morada=$_POST['morada'];
$notas=$_POST['notas'];
$sql="INSERT INTO clientes (postal, morada, nome, apelido, name, serial, iphone3g1, iphone3g2, iphone3g3, iphone3g4, total, valor, iphone3gs1, iphone3gs2, iphone3gs3, iphone3gs4, iphone41, iphone42, iphone43, iphone44, nif, codigounico, Notas)VALUES('$postal', '$morada', '$nome', '$apelido', '$modelo', '$serial', '$iphone3g1', '$iphone3g2', '$iphone3g3', '$iphone3g4', '$total', '$valor', '$iphone3gs1', '$iphone3gs2', '$iphone3gs3', '$iphone3gs4', '$iphone41', '$iphone42', '$iphone43', '$iphone44', '$nif', '$codigounico', '$notas')";
$result=mysql_query($sql);
这是一个非常难维护的代码,
我能让我的生活更轻松吗?
【问题讨论】:
-
确保您阅读过SQL injection,然后再进一步执行此代码,例如在生产中。
-
我知道 SQL 注入,感谢您的警告,我正在进一步改进这部分代码,这对编码器不太友好。非常感谢您的提示。
标签: php