【问题标题】:POST variable is not being saved correctlyPOST 变量未正确保存
【发布时间】:2013-02-23 14:16:31
【问题描述】:

我使用 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 数组中获取完整名称,这是主要问题。

谢谢转发!!

【问题讨论】:

  • print_r($_REQUEST); 查看是否填充了任何内容。如果没有,请检查您的 HTML 输入的名称。
  • 我什至无法解释这里有多少糟糕的设计元素。
  • 不过,我想我最喜欢的是&lt;center&gt;

标签: php forms


【解决方案1】:

这里有很多事情要指出。但除此之外,我会尽力提供帮助。

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

【讨论】:

    【解决方案2】:

    如前所述,您的代码“尖叫”帮助。有很多事情要指出,但回到你的答案:我认为你的问题出在以下几行:

     $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()。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多