表单提交未被isset检测到

时间:2014-06-14 12:07:52

标签: php html forms

我正在尝试使用if(isset($_POST['appSelecter'])){检测表单点击,但它似乎没有返回true。这可能与我的按钮单击返回到同一页面的事实有关,该页面将丢失我刚刚填充的表单数据。有人可以确认我的假设是否正确,如果是 - 我将如何更改?

由于

试图只粘贴一段代码,以免混淆问题 - 似乎我让事情变得更糟 - 这是完整的流程

    <?php
   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<!--META-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Client Portal Login</title>

<!--STYLESHEETS-->
<link href="css/style.css" rel="stylesheet" type="text/css" />

<!--SCRIPTS-->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<!--Slider-in icons-->
<script type="text/javascript">
$(document).ready(function() {
    $(".username").focus(function() {
        $(".user-icon").css("left","-48px");
    });
    $(".username").blur(function() {
        $(".user-icon").css("left","0px");
    });

    $(".password").focus(function() {
        $(".pass-icon").css("left","-48px");
    });
    $(".password").blur(function() {
        $(".pass-icon").css("left","0px");
    });
});
</script>

</head>
<body>

<!--WRAPPER-->
<div id="wrapper">

    <!--SLIDE-IN ICONS-->
    <div class="user-icon"></div>
    <div class="pass-icon"></div>
    <!--END SLIDE-IN ICONS-->

<!--LOGIN FORM-->
<form name="login-form" class="login-form" action="index.php" method="post">

    <!--HEADER-->
    <div class="header">
    <!--TITLE--><h1>Client Portal Login</h1><!--END TITLE-->
    <!--DESCRIPTION--><span>Please login to your client portal</span><!--END DESCRIPTION-->
    </div>
    <!--END HEADER-->

    <!--CONTENT-->
    <div class="content">
    <!--USERNAME--><input name="username" type="text" class="input username" value="Username" onfocus="this.value=''" /><!--END USERNAME-->
    <!--PASSWORD--><input name="password" type="password" class="input password" value="Password" onfocus="this.value=''" /><!--END PASSWORD-->
    </div>
    <!--END CONTENT-->

    <!--FOOTER-->
    <div class="footer">
    <!--LOGIN BUTTON--><input type="submit" name="submit" value="Login" class="button" /><!--END LOGIN BUTTON-->
    <!--REGISTER BUTTON--><input type="submit" name="submit" value="Register" class="register" /><!--END REGISTER BUTTON-->
    </div>
    <!--END FOOTER-->

</form>

<?php

include("application.php");

if(isset($_POST['submit'])){
    $username=$_POST["username"];
    $password=$_POST["password"];
    $userid = logUserIn($username, $password);
    if($userid > 0){
        $applicationsForUser = getAppInformation($userid);
        printUserApplicationSelectionForm($applicationsForUser);

        if(isset($_POST['appSelecter'])) {
            echo "this is a test message";
        }
    }
}


function printUserApplicationSelectionForm($applicationsForUser){
    echo "<br/>";
    echo "<br/>";
    echo "<br/>";
    echo "<br/>";

    foreach ($applicationsForUser as $app) {        
        ?>
        <form action="index.php" method="post">
            <input type="hidden" name="userid" value="<?php echo $app->getUserid(); ?>">  
            <input type="hidden" name="name" value="<?php echo $app->getName(); ?>">  
            <input type="hidden" name="created" value="<?php echo $app->getDateCreated(); ?>">  
            <input type="hidden" name="invoice" value="<?php echo $app->getInvoice(); ?>">  
            <input type="hidden" name="comment" value="<?php echo $app->getComment(); ?>">  
            <input type="submit" name="appSelecter" value="<?php echo $app->getName(); ?>">
        </form>
        <?php


    }
}


function getAppInformation($userid){
    $applicationsForUser = array();
    $conn = new mysqli('localhost:3306', 'root', '', 'clientportal');
    if ($conn->connect_errno > 0) {
        die('Could not connect: ' . mysql_error());
    }else{
        //we have connected to the database
        $sql = "SELECT * FROM application WHERE userid = '$userid'";
        if(!$val = $conn->query($sql)){
            die('There was an error running the query [' . $db->error . ']');
        }else{
            $index = 0;
            while($row = $val->fetch_assoc()){
                $userid = $row['userid'];
                $name = $row['name'];
                $dateCreated = $row['date'];
                $invoice = $row['invoiceid'];
                $comment = $row['commentsid'];              
                $application = new Application($userid, $name, $dateCreated, $invoice, $comment);
                $applicationsForUser[$index] = $application;
                $index++;
            }
        }
    }
    $conn -> close();   
    return $applicationsForUser; 
}

function logUserIn($username, $password) {

    if(!isset($username) && !isset($password)){
        return -1;
    }

    $result = -1;
    //$conn = mysql_connect('localhost', 'web214-admin-ava', 'secondstory');
    $conn = new mysqli('localhost:3306', 'root', '', 'clientportal');
    if ($conn->connect_errno > 0) {
        die('Could not connect: ' . mysql_error());
    }else{
        //we have connected to the database
        $sql = "SELECT * FROM members WHERE username = '$username' AND password = '$password'";
        if(!$val = $conn->query($sql)){
            die('There was an error running the query [' . $db->error . ']');
        }else{
            while($row = $val->fetch_assoc()){
                $result = $row['id'];
                break;
            }
        }
    }
    $conn -> close();
    return $result;
}


?>

<!--END LOGIN FORM-->

</div>
<!--END WRAPPER-->

<!--GRADIENT--><div class="gradient"></div><!--END GRADIENT-->

</body>
</html>

2 个答案:

答案 0 :(得分:2)

您已在表单提交中使用了以下内容:

onClick="location.href='index.php'" // Making a GET request

这不是使用POST方法提交表单。删除它,它将工作。

更新:没有名称为submit的{​​{1}}按钮,因此此条件不起作用:

submit

成功:

if(isset($_POST['submit']))

您不需要使用if(isset($_POST['appSelecter'])) ;

if(isset($_POST['submit']))

答案 1 :(得分:0)

你不需要这个

onClick="location.href='index.php'"

不做任何事情,只需将值应用于按钮i,我认为您已经应用了,

location.href您的请求将通过GET方法发送,例如,没有表单元素发送到服务器

如果您允许本机表单提交,那么所有表单元素都将被发送到服务器,如果有多个表单,则发送的唯一元素将被发送到该提交按钮表单