PHP-Isset函数不起作用

时间:2011-08-18 06:43:54

标签: php

我是PHP的新手。我的isset功能不起作用。它没有显示错误。它总是插入表格。我已经给了我的代码。请在此建议我做错了什么

<?php
if(isset($_POST['submit'])) {
    $a= $_POST['companyname'];
    $b= $_POST['ballpark_url'];
    $c= $_POST['username'];
    $d= $_POST['email'];
    $e= $_POST['login1'];
    $f= $_POST['pass'];
    $error = false;
    if(validname($a) ==false) {
        echo $nameerror = "enter the valid name";
    }
    if(validemail($d) ==false) {
        echo $nameerror = "enter the valid email";
    }
    if(isset($_POST['companyname'])) {
        if($error==false) {
            $query= "INSERT INTO user VALUES ('$a','$b','$c','$d','$e','$f','');";
            if(!mysql_query($query)) {
                die ('error:'.mysql_error());
            }
            mysql_close($conn);  
        }
        include("templats/header_1.html");
        include("templats/content.html");
        include("templats/footer.html");
    }
?>

请在我的代码中纠正这个问题并发回给我......

4 个答案:

答案 0 :(得分:2)

继Garvey之后,如果它不存在,那么检查你的HTML,你已经设置了一个名为submit的提交按钮......(感谢shef说发布它;)

答案 1 :(得分:2)

他没有将$error变量设置为true,因此它总是插入。

$error = false;
if(validname($a) ==false) {
    echo $nameerror = "enter the valid name";
}
if(validemail($d) ==false) {
    echo $nameerror = "enter the valid email";
}

这就是它需要做的事情

$error = false;
if(validname($a) ==false) {
    echo $nameerror = "enter the valid name";
    $error = true;
}
if(validemail($d) ==false) {
    echo $nameerror = "enter the valid email";
   $error = true;
}

答案 2 :(得分:1)

使用!empty($a)代替isset($_POST['companyname'])

然而,您的页面将无法显示。为什么不:

<?php
if(isset($_POST['submit'])) {

    $company_name = $_POST['companyname'];
    $ballpark_url = $_POST['ballpark_url'];
    $username     = $_POST['username'];
    $email        = $_POST['email'];
    $login1       = $_POST['login1'];
    $pass         = $_POST['pass'];

    $error = false;

    if( !validname( $company_name ) ) {
        echo "enter the valid name";
        $error = true;
    }

    if( !validemail( $email ) ) {
        echo "enter the valid email";
        $error = true;
    }


    if( empty($_POST['companyname']) ) {
        echo "enter a company name";
        $error = true;
    }

    if( !$error ) {
        $query= "INSERT INTO user VALUES ('$company_name',
                                          '$ballpark_url',
                                          '$username',
                                          '$email',
                                          '$login1',
                                          '$pass','');";

        if(!mysql_query($query)) {
         die ( 'error:' . mysql_error() );

         mysql_close( $conn );  
    }

    include("templats/header_1.html"); 
    include("templats/content.html");
    include("templats/footer.html");
}
?>

答案 3 :(得分:1)

检查表单中是否有一行

 <input type="submit" name="submit" value="submitOrSomething">

您的isset会检查名称值对是否存在“key”键。因此,如果你有一个提交按钮,但它有一个不同于提交的名称,那么你必须使用isset。