0

我使用 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() );";

因此,大多数名称都没有问题,不包括在 $_POST 数组中显示为“N”的 N'Zogbia 名称或撇号名称,我尝试在发送之前添加斜杠但不起作用,所以我不知道如何在 post 数组中获取完整名称,这是主要问题。

谢谢转发!!

4

2 回答 2

0

这里有很多事情要指出。但取而代之的是,我会尽力提供帮助。

添加您的数据库条目,mysql_real_escape_string($variableName)用于将内容输入数据库。它会自动转义这些引号并使其成为一点 SQL 注入证明。

于 2013-02-24T03:26:54.257 回答
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()。

祝你好运!

于 2013-02-24T03:33:11.920 回答