【问题标题】:What are these dots either side of the variable?变量两侧的这些点是什么?
【发布时间】:2011-08-09 13:04:50
【问题描述】:

我是 PHP / MySQL 的新手,我只是想通过以下 tut 来熟悉它:

http://www.allsyntax.com/tutorials/PHP/24/Building-a-Comments-Script/2.php

...这是脚本开头的摘录:

$inf = "SELECT * FROM `comments` WHERE page = '".stripslashes($_SERVER['REQUEST_URI'])."' ORDER BY time ASC";
$info = mysql_query($inf);
f(!$info) die(mysql_error());

我明白这是在做什么,但我想知道为什么

stripslashes($_SERVER['REQUEST_URI'])

两边都有点?

【问题讨论】:

  • 不要,我再说一遍,不要按照那个教程。它教给你一些非常糟糕的做法。只是您在上面粘贴的那段代码是一个安全漏洞案例。
  • 感谢您的建议,但我只是按照它来习惯 PHP / MySQL - 我会考虑在以后编写更安全的代码。
  • 不仅缺乏安全性。作者希望您将日期和时间作为文本存储在 MySQL 中。在 StackOverflow 上有很多问题,来自那些这样做但现在正在受苦的人。还有一个代码风格问题,总的来说,所提出的方法远非一个好的方法(更不用说最好了)

标签: php string


【解决方案1】:

句号是String Operator。具体来说,连接运算符。

用外行的话来说,就是把字符串粘在一起。

正如您在stripslashes 文档中所见,它是一个返回字符串的函数。因此,代码将第一个字符串"SELECT ..." 与函数的结果连接起来,然后是最后一个字符串" ORDER ..."

【讨论】:

  • 准确地说是串联运算符
  • 好的,谢谢 - 我知道这是串联运算符,但我没有意识到在这种情况下需要它。
【解决方案2】:

点将字符串连接在一起。

【讨论】:

    【解决方案3】:

    点 (.) 是 PHP 中的字符串连接运算符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-31
      • 2012-07-20
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 2012-01-30
      • 2019-01-21
      相关资源
      最近更新 更多