我使用方法post发送多个输入文本表单,我从数据库中绘制信息后重新插入输入文本内的信息:
echo "<CENTER><TABLE BORDER='0'>";
echo "<FORM METHOD='POST'>";
$sele_players = "SELECT nombre FROM JUGADORES WHERE NOM_EQUIPO='Aston villa'";
$sele_players = mysql_query( $sele_players , $link );
while( $row = @mysql_fetch_assoc( $sele_players ) )
{
$row['nombre'] = addslashes( $row['nombre'] );
echo "<TR><TD ALIGN='CENTER'>".$row['nombre']."</TD>";
echo "<TD><INPUT TYPE='TEXT' NAME='{$row['nombre']}'></TD></TR>";
}
echo "<TR><TD COLSPAN='2' ALIGN='CENTER'><INPUT TYPE='submit' NAME='send2' VALUE='INSERTAR' style='width:200px; height:60px' ></TD></CENTER></TR>";
好的,我从数据库中获取了玩家的名字,然后我使用它们作为输入文本插入作为他的名字,然后选择数组$ _POST:
if( !empty( $_POST['send2'] ) )
{
foreach($_POST as $jugador => $points)
{
$jugador = str_replace( "__" ,". ", $jugador );
$jugador = str_replace( "_" ," ", $jugador );
if( $points == "" )
{
$points = "NULL";
}
$inser_jornada = "INSERT INTO JORNADA VALUES( '{$_GET['jornada']}','{$_GET['equipo']}', '$jugador', '$points', now() );";
因此大多数名称没有问题,排除N'Zogbia名称或撇号名称,在$ _POST数组中显示为'N',我尝试在发送之前添加斜线但不起作用,所以我不这样做知道如何在post数组中获取完整的名称,这就是主要问题。
THanks转发!!
答案 0 :(得分:0)
这里有很多要指出的事情。但不是那样,我会尽力帮助你。
使用mysql_real_escape_string($variableName)
添加数据库条目以输入数据库的内容。它会自动转义这些引号,并使它成为一个小的SQL注入证明。
答案 1 :(得分:0)
如前所述,您的代码“尖叫”有帮助。有很多事情要指出,但回到你的答案:我认为你的问题在以下几行:
$inser_jornada = "INSERT INTO JORNADA VALUES( '{$_GET['jornada']}','{$_GET['equipo']}', '$jugador', '$points', now() );";
请改为尝试:
$inser_jornada = 'INSERT INTO JORNADA VALUES( "' . $_GET['jornada'] . '", "' . $_GET['equipo'] . '", "' . $jugador . '", "' . $points . '", now() );';
我真的,真的建议您对所有输入运行mysqli_real_escape_string()。
祝你好运!