首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么程序总是返回$everything_Ok = true

为什么程序总是返回$everything_Ok = true
EN

Stack Overflow用户
提问于 2021-09-21 18:31:26
回答 3查看 48关注 0票数 0
代码语言:javascript
复制
<?php

我的"if“子句不起作用。Programm总是返回$everything_OK = true;我希望"if“子句返回值$everything_OK =Faslse值,但它从来没有出现过。为什么?

session_start();

代码语言:javascript
复制
if(isset($_POST['name']))
{

    $everything_OK = true;

    $name = $_POST['name'];
    $surname = $_POST['surname'];
    $date = $_POST['date'];

这里有一个必须满足命名用户条件,这里有一个问题,因为这个"if“总是返回$everythink_OK = true

代码语言:javascript
复制
if(strlen($name)<2 || strlen($name)>15 || is_numeric($name))
    {
        $everything_OK = false;
        $_SESSION['e_name'] = '<strong>Podaj prawdziwe imię!</strong>';
    }
    
    // if(strlen($surname)<2 || strlen($surname)>15 || is_numeric($surname))
    // {
    //     $wszystko_OK = false;
    //     $_SESSION['e_surname'] = '<strong>Podaj prawdziwe nazwisko!</strong>';
    // }

    // if($everything_OK = true)
    // {
    //     header("Location: profil.php");
    // } 
}
?>


<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formularz</title>
</head>
<body>

<style>
    *{text-align: center;
    background-color: gray;
} 
.error
{
    color: red;
    margin-top: 5px;
    margin-bottom: -10px; 

}
/* .error2
{
    color: red;
    margin-top: 10px;
    margin-bottom: 10px; 

}  */
</style>

<form action='index.php' method='Post'>
    <strong>Podaj imię</stron><br>
    <input type='text' name='name'>
    
    <?php
        if(isset($_SESSION['e_name']))
        {
            echo '<div class="error">'. $_SESSION['e_name'].'</div>';
            unset($_SESSION['e_name']);
        }
    ?>
    
    <br><strong>Podaj nazwisko</stron><br>

    <!-- <?php
        if(isset($_SESSION['e_surname']))
        {
            echo '<div class="error2">'. $_SESSION['e_surname'].'</div>';
            unset($_SESSION['e_surname']);
        }
    ?> -->

    <input type='text' name='surname'>
    <br><strong>Podaj datę urodzenia</stron><br>
    <input type='date' name='date'>
    <br><br>
    <input type='submit' value='prześlij'>
    <br>

</form>

</body>
</html>
EN

回答 3

Stack Overflow用户

发布于 2021-09-21 19:47:14

使用赋值: if($everything_OK = true)

如果($everything_OK == true),则需要使用比较

注意两个等号==

票数 0
EN

Stack Overflow用户

发布于 2021-09-21 20:04:40

你的帖子发送了变量名...isset()返回总是true,因为是空字符串或字符串。在这两种情况下,返回true。

您还需要检查是否为空,如下所示:

代码语言:javascript
复制
if(isset($_POST['name']) && $_POST['name'] != '') {...}
票数 0
EN

Stack Overflow用户

发布于 2021-09-21 19:35:57

name作为字符串值传递,但检查数字

if(strlen($name)<2 || strlen($name)>15 || is_numeric($name))

它是错误的,并且永远不会通过条件。

你能指定你使用的条件和输入参数吗?

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

https://stackoverflow.com/questions/69273924

复制
相关文章

相似问题

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