【问题标题】:PHP syntax error that I cannot find我找不到的 PHP 语法错误
【发布时间】:2013-07-02 23:27:22
【问题描述】:

我有一个包含以下 php 代码的文件:

<?php
session_start();
include_once("config.php");
include_once("functions.php");
include_once("class/db.class.php");
$config = new config($db_host, $db_user, $db_pass, $db_name);
$db = new db($config);
$db->openConnection();

switch ($_POST['mode']) {
    case 'update':
        if(mysql_query("UPDATE table_name SET id_negozio = '".$_POST['negid']."', nome='".mysql_real_escape_string(strtolower($_POST['nome']))."', cognome='".mysql_real_escape_string(strtolower($_POST['cognome']))."', indirizzo='".mysql_real_escape_string($_POST['indirizzo'])."', CAP='".$_POST['cap']."', city='".mysql_real_escape_string($_POST['city'])."', tel='".$_POST['tel']."', email='".strtolower($_POST['email'])."', provincia='".strtoupper($_POST['provincia'])."', data_nascita = '".$_POST['datanascita']."', luogo_nascita='".mysql_real_escape_string($_POST['luogonascita'])."', doc_number='".strtoupper($_POST['docnum'])."', doc_type='".$_POST['doctype']."', doc_data='".$_POST['docdata']."', cf='".strtoupper($_POST['cf'])."', doc_exp='".$_POST['doc_exp']."', doc_rilascio='".$_POST['doc_rilascio']."' WHERE id = ".$_POST['id']." ")){
            echo "ok";
        }
    break;

    case 'salvataggio_finale':
        if(mysql_query("UPDATE table_name SET salvato = 1 WHERE id = ".$_POST['id']." ")){
            logit("Creato nuovo cliente.", $_POST['idneg']);
            echo "ok";
        }
    break;

    case 'del':
        if(mysql_query("DELETE FROM table_name WHERE id = ".$_POST['id']." ")){
            logit("Eliminato cliente con id ".$_POST['id']."", $_POST['idneg']);
            echo "deleted";
        }
    break;
}
unset($db);
?>

在我的服务器上,我的 error_log 显示了 38 个给出此错误的条目:

[..] PHP Parse error:  syntax error, unexpected '{' in /home/.../filename.php on line 12

第 12 行是 case 'update' 之后的 if 语句 我不明白为什么我不应该把括号或真正的错误是什么。

【问题讨论】:

  • 好吧,您的数据库将被盗用 :D 转义输入。
  • 请告诉我为什么您的一些$_POST 值被转义而一些没有?
  • 你的包含文件的代码是什么?您的代码似乎是正确的。
  • @Jari 因为在意大利,我们有像 D'Agostino Antonio 这样的人的名字,我必须这样做,以便他们可以将 ' 放在他们想要的地方
  • 那我可以说一件事:GG

标签: php error-handling syntax-error


【解决方案1】:

您是否检查了class/db.class.php 是否有未闭合的引号 (")?

在将 POST 变量连接到查询中时,还要注意可能的 sql 注入。

【讨论】:

  • 好的,那我应该怎么做才能不注射?
  • 我检查了,看不到任何错误。我还在 NetBeans 中打开它,这样可以捕获错误,但是……什么都没有。
  • mysql_real_escape_string() 上所有$_POST[...] 变量应该足够...是的,这可能不是引号问题,从那时起它应该抱怨无效的UPDATE 关键字...但仍然是必须是包含的东西,也许你也可以在这里发布它们
猜你喜欢
  • 2013-01-11
  • 2010-10-25
  • 2015-01-22
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
相关资源
最近更新 更多