POST变量未正确保存

时间:2013-02-23 14:16:31

标签: php forms

我使用方法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转发!!

2 个答案:

答案 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()。

祝你好运!