表单上的基本验证甚至没有被触发!
我一直在盯着新服务器上的代码与其他服务器上的代码进行比较,我知道代码是完全一样的...也许在尝试访问contactInformationGoogle.php
表时会遇到目录问题,但就目前而言,这甚至不是我的担忧。我担心的是,为什么即使是基本的验证,即表格是空白的,也不会触发* First name is required
等通常的警告?
其他服务器上的完全相同的表单有效!严重撕裂我的头发......请帮忙!
这是没有 google的recaptcha小部件的形式...现在试图保持简单......
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<title>Hotel</title>
<link href="css/bootstrap.min.css" rel="stylesheet" />
<link href="css/style.css" rel="stylesheet" />
<style type="text/css">
.error {
color:red;
}
body {
padding-top: 146px;
padding-top:175px;
}
.language_choice_english {
padding-right: 1%
}
.language_choice_japanese {
padding-right: 3%;
}
</style>
</head>
<body>
<?php
session_start(); //allows use of session variables
if ($_SERVER["REQUEST_METHOD"] == "POST" && !empty($_SESSION['token']) && $_SESSION['token'] == $_POST['token']) {
$token = md5(uniqid(mt_rand(), true));
$_SESSION['token'] = $token;
if (empty($_POST["first-name"])) {
$firstNameErr = "First name is required";
} else {
$first_name = test_input($_POST["first-name"]);
}
if (empty($_POST["last-name"])) {
$lastNameErr = "Last name is required";
} else {
$last_name = test_input($_POST["last-name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["message"])) {
$messageErr = "Message is required";
} else {
$message = test_input($_POST["message"]);
}
if(isset($first_name) && isset($last_name) && isset($email) && isset($message))
{
$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
$_SESSION['email'] = $email;
$_SESSION['message'] = $message;
include dirname(__FILE__)."/../../contactInformation.php";
exit;
}
}
else {
$token = md5(uniqid(mt_rand(), true));
$_SESSION['token'] = $token;
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<nav class="navbar navbar-default navbar-fixed-top">
<a class="brand pull-left" href="index.html">
<img id="Logo" src="./images/logo_72H.gif" alt="Hotel">
</a>
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><span id="overall_title">Daimaru Hotel</span><small id="description_of_city">Little Tokyo, Los Angeles, Downtown</small></a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li><a href="about.html">About</a></li>
<li><a href="rooms.html">Rooms & information</a></li>
<li><a href="reserve.php">Book to Reserve</a></li>
<li><a href="location.html">Location Info</a></li>
<li><a href="additional.html">Additional Info</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
</div><!-- /.navbar-collapse -->
<ul class="nav navbar-nav navbar-right">
<p class="pull-right language_choice_english"><a href="contact.php">English</a></p>
<p class="pull-right language_choice_japanese"><a href="contact-ja.php"><span lang="ja">日本語</span></a></p>
</ul>
</div><!-- /.container-fluid -->
</nav>
<div id="main-container" class="col-xs-12">
<div>
<label>* Required fields</label>
</div>
<form class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<div class="form-group">
<label class="col-sm-2 control-label">* First Name</label>
<div class="col-sm-10">
<input class="form-control" name="first-name" id="first-name" placeholder="First Name" type="text" value="<?php if(isset($first_name)) { echo $first_name; }?>">
<?php if(isset($firstNameErr)) print ('<span class="error">* ' . $firstNameErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">* Last Name</label>
<div class="col-sm-10">
<input class="form-control" name="last-name" id="last-name" placeholder="Last Name" type="text" value="<?php if(isset($last_name)) { echo $last_name; }?>">
<?php if(isset($lastNameErr)) print ('<span class="error">* ' . $lastNameErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">* Email</label>
<div class="col-sm-10">
<input class="form-control" name="email" id="email" placeholder="Email" type="email" value="<?php if(isset($email)) { echo $email; }?>">
<?php if(isset($emailErr)) print ('<span class="error">* ' . $emailErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">* Message</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" placeholder="Please type in your message" name="message" id="message" value="<?php if(isset($message)) { echo $message; }?>"></textarea>
<?php if(isset($messageErr)) print ('<span class="error">* ' . $messageErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Submit</button>
</div>
</div>
</form>
</div>
<footer class="col-xs-12 roomsFooter">
<div class="row">
<div class="col-md-4">2015 Hotel -- All rights reserved</div>
<div class="col-md-4">Terms of Use</div>
<div class="col-md-4">Facebook / Twitter / Instagram </div>
</div>
</footer>
<script src="js/jquery-1.11.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
修改
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<title>Hotel</title>
<link href="css/bootstrap.min.css" rel="stylesheet" />
<link href="css/style.css" rel="stylesheet" />
<style type="text/css">
.error {
color:red;
}
body {
padding-top: 146px;
padding-top:175px;
}
.language_choice_english {
padding-right: 1%
}
.language_choice_japanese {
padding-right: 3%;
}
</style>
</head>
<body>
<?php
session_start(); //allows use of session variables
if ($_SERVER["REQUEST_METHOD"] == "POST" && !empty($_SESSION['token']) && $_SESSION['token'] == $_POST['token']) {
$token = md5(uniqid(mt_rand(), true));
$_SESSION['token'] = $token;
if (empty($_POST["first-name"])) {
$firstNameErr = "First name is required";
} else {
$first_name = test_input($_POST["first-name"]);
}
if (empty($_POST["last-name"])) {
$lastNameErr = "Last name is required";
} else {
$last_name = test_input($_POST["last-name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["message"])) {
$messageErr = "Message is required";
} else {
$message = test_input($_POST["message"]);
}
if(isset($first_name) && isset($last_name) && isset($email) && isset($message))
{
$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
$_SESSION['email'] = $email;
$_SESSION['message'] = $message;
include dirname(__FILE__)."contactInformation.php";
exit;
}
}
else {
$token = md5(uniqid(mt_rand(), true));
$_SESSION['token'] = $token;
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<nav class="navbar navbar-default navbar-fixed-top">
<a class="brand pull-left" href="index.html">
<img id="DaimaruLogo" src="./images/logo_72H.gif" alt="New Daimaru Hotel">
</a>
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.html"><span id="overall_title">Daimaru Hotel</span><small id="description_of_city">Little Tokyo, Los Angeles, Downtown</small></a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li><a href="about.html">About</a></li>
<li><a href="rooms.html">Rooms & information</a></li>
<li><a href="reserve.php">Book to Reserve</a></li>
<li><a href="location.html">Location Info</a></li>
<li><a href="additional.html">Additional Info</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
</div><!-- /.navbar-collapse -->
<ul class="nav navbar-nav navbar-right">
<p class="pull-right language_choice_english"><a href="contact.php">English</a></p>
<p class="pull-right language_choice_japanese"><a href="contact-ja.php"><span lang="ja">日本語</span></a></p>
</ul>
</div><!-- /.container-fluid -->
</nav>
<div id="main-container" class="col-xs-12">
<div>
<label>* Required fields</label>
</div>
<form class="form-horizontal" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<div class="form-group">
<label class="col-sm-2 control-label">* First Name</label>
<div class="col-sm-10">
<input class="form-control" name="first-name" id="first-name" placeholder="First Name" type="text" value="<?php if(isset($first_name)) { echo $first_name; }?>">
<?php if(isset($firstNameErr)) print ('<span class="error">* ' . $firstNameErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">* Last Name</label>
<div class="col-sm-10">
<input class="form-control" name="last-name" id="last-name" placeholder="Last Name" type="text" value="<?php if(isset($last_name)) { echo $last_name; }?>">
<?php if(isset($lastNameErr)) print ('<span class="error">* ' . $lastNameErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">* Email</label>
<div class="col-sm-10">
<input class="form-control" name="email" id="email" placeholder="Email" type="email" value="<?php if(isset($email)) { echo $email; }?>">
<?php if(isset($emailErr)) print ('<span class="error">* ' . $emailErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">* Message</label>
<div class="col-sm-10">
<textarea class="form-control" rows="2" placeholder="Please type in your message" name="message" id="message" value="<?php if(isset($message)) { echo $message; }?>"></textarea>
<?php if(isset($messageErr)) print ('<span class="error">* ' . $messageErr . '</span>'); ?>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default">Submit</button>
</div>
</div>
</form>
</div>
<footer class="col-xs-12 roomsFooter">
<div class="row">
<div class="col-md-4">2015 Hotel -- All rights reserved</div>
<div class="col-md-4">Terms of Use</div>
<div class="col-md-4">Facebook / Twitter / Instagram </div>
</div>
</footer>
<script src="js/jquery-1.11.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
ContactInformation.php
<?php
session_start();
$first_name = $_SESSION['first_name'];
$last_name = $_SESSION['last_name'];
$email = $_SESSION['email'];
$message = nl2br($_SESSION['message']);
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = ''; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = ''; // SMTP username
$mail->Password = ''; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;
$mail->addReplyTo( $email, $first_name );
$mail->addAddress( $email, $first_name );
$mail->addAddress( '', 'Staff' );
$mail->From = '';
$mail->FromName = 'Staff';
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Hotel Contact';
$mail->Body = "<table width='600'><tr><td colspan='2' height='20'><p style='text-align:center; font-size:20px; color:#ddd; padding:0px; margin:0px;'>Copy of Your Contact Form</p></td></tr>"
."<tr><td colspan='2' height='80' width='600'><p style='color:#d1502d;font-size:50px;text-align:center;padding:0px; margin:0px;'>Hotel</p></td></tr>"
."<tr><td colspan='2' height='60' width='600' style='text-align:center; color:#606060;font-size:20px;padding:0px; margin:0px;'>Address</td></tr>"
."<tr><td colspan='2' height='30' width='600' style='text-align:center;'><h3 style='color:#d1502d; '>Tag line</h3></td></tr>"
."<tr><td height='20' width='300'><p style='font-size:20px; color:gray; padding:10px; margin:0px; text-align:right;'>Your First Name: </p></td><td height='20' width='300'> <p style='font-size:20px; color:gray; padding:10px; margin:0px;'>$first_name</p></td></tr>"
."<tr><td height='20' width='300'><p style='font-size:20px; color:gray; padding:10px; margin:0px; text-align:right;'>Your Last Name: </p></td><td height='20' width='300'><p style='font-size:20px; color:gray; padding:10px; margin:0px;'>$last_name</p></td></tr>"
."<tr><td height='20' width='300'><p style='font-size:20px; color:gray; padding:10px; margin:0px; text-align:right;'>Your Email Address: </p></td><td height='20' width='300'><p style='font-size:20px; color:gray; padding:10px; margin:0px;'>$email</p></td></tr>"
."<tr><td height='20' width='300'><p style='font-size:20px; color:gray; padding:10px; margin:0px; text-align:right;'>Your Message:</p></td><td height='20' width='300'><p style='font-size:20px; color:gray; padding:0px; margin:10px;'> $message</p></td></tr></table>"
."<tr><td colspan='2' height='15' width='600'><p style=' text-align:center;padding:0px; margin:0px;'><a style='color:#d1502d;font-size:15px;text-align:center;padding:0px; margin:0px;text-decoration:none;'href=''>Visit Our Site</a></p></td></tr>";
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
if(!$mail->send()) {
header('location: url_of_contactError.html');
} else {
header('location: url_of_contactResult.html');
}
编辑两个
现在试试这个 - 一些带有自我验证的基本代码:(它有效!!!!)
<!-- Coloring error messages -->
<style>
.error {color: #FF0000;}
</style>
<?php
$nameErr = $emailErr = "";
$name = $email = "";
// Define Variables as Empty Values
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
}else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
}else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<p><span class = "error">* required field.</span></p>
<form method = "POST" action = "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table>
<tr><td>Name:</td>
<td><input type = "text" name = "name">
<span class = "error">* <?php echo $nameErr;?></span>
</td></tr>
<tr><td>E-mail: </td>
<td><input type = "text" name = "email"><span class = "error">* <?php echo $emailErr;?></span></td></tr>
<tr><td><input type = "submit" name = "submit" value = "Submit">
</td></tr>
</table>
</form>
<?php
echo ("<p>name is $name</p>");
echo ("<p>email address is $email</p>");
?>
答案 0 :(得分:0)
修改强>
尝试单独运行以下代码,完全如下所示。这将测试会话是否正确设置(和工作)。在浏览器中运行该功能,刷新页面几次,如果$_SESSION['token']
echo
到屏幕(刷新后或2),您就会知道会话按预期运行。
<?php
// session_test.php
session_start();
if ( ! empty($_SESSION['token']) )
echo 'Session: ' . $_SESSION['token'];
else
echo 'Session not set.';
$token = uniqid(mt_rand(), true);
$_SESSION['token'] = $token;
原始帖子
在session_start();
上方,尝试添加以下内容:
ini_set('session.cookie_domain', '.example.com'); // <--- add this line
session_start();
... rest of code
.example.com
是您正在访问的确切域名(因此请务必将其更改,显然;并保留前面的.
以覆盖整个服务器)