【问题标题】:Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in ... i can't find the error [closed]解析错误:语法错误,意外的'$_POST'(T_VARIABLE)在......我找不到错误[关闭]
【发布时间】:2014-06-30 04:48:48
【问题描述】:

我正在尝试运行这个 php 代码:

    <?php
include("misfunciones.php");
?>
<html>
    <link rel="stylesheet" href="styleinterfaz.css" type="text/css" media="screen"/>
        <body>
            <?php
            // process form
                $conexion=Conectarse();
                mysql_select_db("alpaca", $conexion);
                $validar = "SELECT * FROM articulo WHERE cod_art = '$_POST[cod_art]'";
                $resultado = mysql_query($validar);
                $ingreso = mysql_num_rows($resultado);
                if($ingreso > 0){
                    if(strlen($_POST['nro_id_trans']) == 6 AND $_POST['dia'] > 0 AND $_POST['dia'] < 32 AND $_POST['mes'] > 0 AND $_POST['mes'] < 13 AND strlen($_POST['año']) == 4 AND strlen($_POST['cod_art']) == 5 AND strcasecmp( $_POST['tipo_trans'] , "ingreso" ) == 0 OR strcasecmp( $_POST['tipo_trans'] , "egreso" ) == 0 AND $_POST['cant_art'] > 0){
                        $sql = "INSERT INTO transaccion (nro_id_trans, dia, mes, año, cod_art, tipo_trans, cant_art) ";
                        $sql.= "VALUES ('$_POST[nro_id_trans]', '$_POST[dia]', '$_POST[mes]', '$_POST[año]', '$_POST[cod_art]', '$_POST[tipo_trans]', '$_POST[cant_art]')";
                        $actualizarmes = "UPDATE cat_dem_mensual SET actualizado = 'no' WHERE mes = '"$_POST['mes']"' AND año = '"$_POST['año']"'";
                        $actualizaraño = "UPDATE cat_dem_anual SET actualizado = 'no' WHERE año = '"$_POST['año']"'"
                        mysql_query($sql, $conexion);
                        mysql_query($actualizarmes, $conexion);
                        mysql_query($actualizaraño, $conexion);
                        echo "¡Gracias! Hemos recibido sus datos.\n";
                        mysql_close($conexion);
                    }
                    else{
                        echo "Algún dato ingresado no es válido. Vuelva a la Interfaz e ingrese los datos nuevamente.";
                    }
                }
                else{
                    echo "El código de artículo no existe en la base de datos.";
                }
            ?>
            <a class="button" href="interfaz.html" onclick=”#”><span>Volver a la Interfaz</span></a>
        </body>
</html>

但是当我这样做时,会出现以下错误:“Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in C:** on line 18” 我就是找不到问题所在!我认为这很简单,但我只是 php 的初学者。

【问题讨论】:

  • 你检查过$_POST是否存在吗?
  • 另外,不要使用 mysql 扩展! 它已被弃用,很可能会在 PHP 5.6 中被删除,您在这里使用它的方式是 不安全的:易受 SQL 注入攻击。使用带有参数化查询的 mysqli 或 PDO 扩展。
  • @Guns 你这是什么意思?我使用 $_POST 是因为我试图比较的数据是由索引页面中的表单给出的。
  • 正如你所说的你是一个“php初学者”,我得问一下;您使用什么学习资源/参考资料?我只是无法理解任何新的开发如何使用这些过时且不安全的做法。

标签: php syntax syntax-error parse-error


【解决方案1】:

您缺少一个 dot (.),它在第 18 行连接字符串:

改变:

$actualizarmes = "UPDATE cat_dem_mensual SET actualizado = 'no' WHERE mes = '"$_POST['mes']"' AND año = '"$_POST['año']"'";

$actualizarmes = "UPDATE cat_dem_mensual SET actualizado = 'no' WHERE mes = '".$_POST['mes']."' AND año = '".$_POST['año']."'";

【讨论】:

  • 解决了问题,谢谢!
  • @Guns 谢谢它对我有用!!
猜你喜欢
  • 1970-01-01
  • 2014-02-17
  • 2015-05-11
  • 2013-03-10
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多