首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php strcmp函数

php strcmp函数
EN

Stack Overflow用户
提问于 2011-08-02 15:55:27
回答 4查看 3.1K关注 0票数 2

我有以下代码:

代码语言:javascript
复制
if(strcmp($_POST['password'], $_POST['password-rpt']) == 0) {  
    $password_field = $_POST['password'];  
    echo "Password created" . "<br />";  
} else {  
    echo "blarg! Password mismatch!!!";  
}

我知道,与C/C++一样,当两个字符串相同时,strcmp应该返回0,但当我用html文件测试它时,输入两个相同的字符串或两个不同的字符串,这两种情况都会转到错误情况下,我的输出是"blarg!密码错配!“

以下是我使用的表格:

代码语言:javascript
复制
<form method="post" action="register.php">
        Name: <input type="text" name = "name" id="name" /><br />
        Password: <input type="password" name ="password" id = "password" /> <br />
        Confirm Password: <input type="password" name="password_rpt" id="password_rpt" /> <br />
        email:    <input type="text" name = "remail" id = "remail" /><br />

        <input type = "submit" name="register" id="register"  value = "Sign Up" />
    </form>

我遗漏了什么?

更新:我将条件更改为if($_POST['password'] == $_POST['password-rpt'])。帮不上忙。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-02 15:57:06

您可以简单地使用:

代码语言:javascript
复制
$_POST['password'] === $_POST['password-rpt']

此外,在您的表单中,您使用了名称password_rpt,而在您的代码中,您引用了password-rpt。您需要更改其中之一,以使名称匹配。

查看字符串手册页面,了解有关PHP处理的更多信息。我还建议查看语言参考以获得一般指导。

请记住,PHP是一种高级脚本语言,与C++非常不同,即使它们看起来可能是一样的。有些东西在C++中是非常可行的,但在PHP中却是不可行的,反之亦然。

票数 4
EN

Stack Overflow用户

发布于 2011-08-02 16:21:19

对于真正想要使用=== (相同)的密码,== (相等)将返回true,即使大小写不匹配.

代码语言:javascript
复制
if( $_POST['password'] === $_POST['password-rpt'] ) {  
    $password_field = $_POST['password'];  
    echo "Password created" . "<br />";  
} else {  
    echo "blarg! Password mismatch!!!";  
}
票数 2
EN

Stack Overflow用户

发布于 2016-05-11 15:09:01

请记住,strcmp()返回:

  • -1如果str1小于str2
  • 1如果str1大于str2
  • 如果they相等,则为0;

类似于== (相等运算符),如strcmp('1e3', '1000') (返回值0)或'1e3'=='1000' (true)。

注意,PHP7有一个类似的运算符,即宇宙飞船操作符(<=>),并且具有与strcmp()相同的行为。

在您的情况下,您应该使用:

if ($_POST['password'] === $_POST['password-rpt'])

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6914901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档