PHP如果(isset($\U POST…)条件失败

PHP如果(isset($\U POST…)条件失败,php,forms,post,login,isset,Php,Forms,Post,Login,Isset,PHP问题在这里,我已经做了一个登录/注销类代码,带有一个insert和delete函数,它支持login和logout 所以问题是,在我插入文本后,我无法删除它,因为删除按钮就像一个简单的 波顿回头,不做他的工作,什么都没有 在if(isset($\u POST['delete'])中,条件似乎起作用 问题可能是我使用了两个无效动作 指的是同一页吗?按下第一个按钮 工作和第二个不是 任何人都能理解为什么 您的代码存在逻辑问题。单击“删除”按钮时,脚本将再次运行。您的第一个条件-if(!is

PHP问题在这里,我已经做了一个登录/注销类代码,带有一个
insert
delete
函数,它支持
login
logout

所以问题是,在我插入文本后,我无法删除它,因为删除按钮就像一个简单的 波顿回头,不做他的工作,什么都没有 在
if(isset($\u POST['delete'])中,
条件似乎起作用

问题可能是我使用了两个无效动作 指的是同一页吗?按下第一个按钮 工作和第二个不是

任何人都能理解为什么



您的代码存在逻辑问题。单击“删除”按钮时,脚本将再次运行。您的第一个条件-
if(!isset($\u POST['send'])
现在将通过,因为不再设置send按钮,因此它进入if语句,并且从不运行删除代码


您的脚本似乎也容易受到SQL注入的攻击。

代码存在逻辑问题。单击“删除”按钮时,脚本将再次运行。您的第一个条件-
if(!isset($\u POST['send'])
现在将通过,因为不再设置send按钮,因此它进入if语句,并且从不运行删除代码


您的脚本似乎也容易受到SQL注入的攻击。

以下是正确的方法,这是一个快速提示,您需要在mysql插入安全性等方面多做一些工作

<html>
<header>
<body>

<?php

    $conn= mysql_connect('localhost','root','');
    mysql_select_db('db_try',$conn ) or die(mysql_error());

    if(isset($_POST['send'])){

        $text = $_REQUEST['text'];

        mysql_query(" INSERT INTO test (value) VALUES ('$text') ") or die(mysql_error());

        $answer = "Operation complete";

        $form = "<form name='delete' action='' method='POST'>
                <input type='submit' name='delete' value='delete' />
                </form>";

    }

    else if(isset($_POST['delete'])){

        mysql_query(" DELETE FROM test WHERE value='$text' ") or die(mysql_error());

        $answer = "Text'".$text."' deleted";

    }
    else {

        $form = "<form name='send' action='' method='POST'>
                <input type='text' name='text' value=''/>
                <input type='submit' name='send' value='send' />
                </form>";

    }

    print "<h1>" . $answer . "</h1>";
    print $form;

?>

</body>
</header>
</html>


下面是正确的方法,这是一个快速提示,您需要在mysql插入安全性等方面多做一些工作

<html>
<header>
<body>

<?php

    $conn= mysql_connect('localhost','root','');
    mysql_select_db('db_try',$conn ) or die(mysql_error());

    if(isset($_POST['send'])){

        $text = $_REQUEST['text'];

        mysql_query(" INSERT INTO test (value) VALUES ('$text') ") or die(mysql_error());

        $answer = "Operation complete";

        $form = "<form name='delete' action='' method='POST'>
                <input type='submit' name='delete' value='delete' />
                </form>";

    }

    else if(isset($_POST['delete'])){

        mysql_query(" DELETE FROM test WHERE value='$text' ") or die(mysql_error());

        $answer = "Text'".$text."' deleted";

    }
    else {

        $form = "<form name='send' action='' method='POST'>
                <input type='text' name='text' value=''/>
                <input type='submit' name='send' value='send' />
                </form>";

    }

    print "<h1>" . $answer . "</h1>";
    print $form;

?>

</body>
</header>
</html>


我想它也可能有用

if (!isset($_POST['submit']) || isa($_POST['submit'] != 'login')) 

我想它也可能有用

if (!isset($_POST['submit']) || isa($_POST['submit'] != 'login')) 

你在哪里定义
$text
?@Paul我想他在使用register globals你
块中的
样式语法给了我一个语法错误。你在哪里定义
$text
?@Paul我想他在使用register globals你
块中的
样式语法给了我一个语法错误。它应在此处触发
delete
if(isset($\u POST['delete'])){
它永远不会到达那个点,因为它不会进入那个else。他说的是,因为你在第一条语句的else中有那个语句,它将永远不会运行,因为delete表单不再发送'send'变量。将delete语句放在第一条语句的上方,这样当delete语句运行时,delete就不会运行了如果(isset($\u POST['delete']),则应触发此处的
delete
if(isset($\u POST['delete'])){
它永远不会到达那个点,因为它不会进入那个else。他说的是,因为你在第一条语句的else中有那个语句,它将永远不会运行,因为delete表单不再发送'send'变量。将delete语句放在第一条语句的上方,这样当delete语句运行时,delete就不会运行了我必须承认,在一天之内,我对代码做了很多修改,现在它可以正常工作了,但是我从你的代码中了解到了一些好的东西,再次是tanks:DMany tanks:D我必须承认,在一天之内,我对代码做了很多修改,现在它可以正常工作了,但我明白了一些好的东西从你的代码中,再次输入:D