-1

我从 codecanyon 购买了以下脚本

http://codecanyon.net/item/contact-me-contact-form-admin-panel-v2/148836

然后我将脚本添加到我的网站模板中。我在 $fname 变量下添加了一个新字段。

编辑前:

<label>First Name:</label>
<input type="text" name="firstName" style="width:400px;" value="<?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>" />

编辑后:

<select type="select" name="fname" id="colorselector" class="styled" value="<?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>" />
   <option value="slct">Please select a forum you saw me on</option>
   <option value="hf <?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>">Hackforums (_Jony_)</option>
   <option value="sy <?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>">Sythe (Purepks0r)</option>
   <option value="rs <?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>">R-S (Purepks0r)</option>
</select>
<br />
<div id="slct" class="colors">You haven't selected any forum.</div>
<div id="hf" class="colors" style="display:none"> <span id="brdr">HackForums:</span> Discount Percent: <font color="green">10%</font> </div>
<div id="sy" class="colors" style="display:none"> <span id="brdr">Sythe:</span> Discount Percent: <font color="green">15%</font> </div>
<div id="rs" class="colors" style="display:none"> <span id="brdr">Rune-Server:</span> Discount Percent: <font color="green">15%</font> </div>
<br />

基本上我使用 fname 作为选择标签,它应该做同样的事情,将选择的信息存储到管理面板。

我尝试将代码恢复为默认值并且它有效,为什么当我实际选择下拉菜单时它说该字段为空白?

错误检查系统:

我不确定,但我会给出 order.php 页面和 config.ini

订单.php

<?php
session_start();
require_once('captcha/Captcha.php');
$captcha = new Captcha();
$captcha->newCaptcha(session_id());
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<title>SlyFiles</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="SlyFiles upload" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen"/>
<link rel="stylesheet" href="css/bootstrap.css" type="text/css" media="screen"/>
<link href='http://fonts.googleapis.com/css?family=Dosis' rel='stylesheet' type='text/css'><link rel="stylesheet" href="css/flexslider.css" type="text/css"><script src="js/jquery.flexslider.js"></script><!-- Place in the <head>, after the three links --><script type="text/javascript" charset="utf-8">$(window).load(function() {  $('.flexslider').flexslider({    animation: "slide"  });});</script>
<link rel="stylesheet" href="flexslider.css" type="text/css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script src="js/jquery.flexslider.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/jquery.lavalamp-1.4.js"></script>
<script type="text/javascript" src="js/jquery.reveal.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<link href='http://fonts.googleapis.com/css?family=Doppio+One' rel='stylesheet' type='text/css'>
</head>
<header>
<div class="container">
  <div class="menu">
<a href="index.php"><div id="logo"></div></a>
<a href="index.php"><div id="home"></div></a>
<a href="portfolio.php"><div id="portfolio"></div></a>
<a href="vouch.php"><div id="vouch"></div></a>
<a href="tos.php"><div id="tos"></div></a>
<a href="order.php"><div id="order-current"></div></a>
  </div>
  <div id="banner"></div>
  <div id="borderbottom"></div>
</div>
</header>
<body>
<div class="container">
<div class="forms">
    <form action="next.php?c=Zm5leHQ=" method="post">
    <br /><br /><center><?php
    /*
        This code should be where you want your error messages shown.
    */
    //Edit this according to your design taste
    $errStyle = 'border: 1px solid red; color: red; width: 410px; padding: 5px; margin: 0 0 15px 0;';
    //----------------------------------
    //----No editing from here----
    //----------------------------------
    /*
        This script displays errors from the form, if any. To edit the messages itself, see err_message.php in the same folder.
    */
    include_once 'err_message.php';
    $no = base64_decode(htmlentities(strip_tags(filter_input(INPUT_GET, 'no'))));
    if($no == NULL) {} else {
    print <<<HERE
    <div style="max-width: 600px; float: left;" class="alert alert-error">
HERE;
    print $errorMes[$no];
    if($errorMes[$no]==NULL) print '<script>location.href="javascript: history.go(-1)"</script>';
    print '</div>';
    }
    ?></center>
    <br /><br /><br />
    <div class="tos1">
<input type="checkbox" id="new_info_yes" class="box1"> I agree to the <a href="#">Terms of Service</a>.
    </div>
    <br />
    <div class="creater">
<div id="new_info_form">
<select type="select" name="fname" id="colorselector" class="styled" value="<?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>" />
   <option value="slct">Please select a forum you saw me on</option>
   <option value="hf <?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>">Hackforums (_Jony_)</option>
   <option value="sy <?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>">Sythe (Purepks0r)</option>
   <option value="rs <?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>">R-S (Purepks0r)</option>
</select>
<br />
<div id="slct" class="colors">You haven't selected any forum.</div>
<div id="hf" class="colors" style="display:none"> <span id="brdr">HackForums:</span> Discount Percent: <font color="green">10%</font> </div>
<div id="sy" class="colors" style="display:none"> <span id="brdr">Sythe:</span> Discount Percent: <font color="green">15%</font> </div>
<div id="rs" class="colors" style="display:none"> <span id="brdr">Rune-Server:</span> Discount Percent: <font color="green">15%</font> </div>
<br />

    <label>Last Name:</label> 
    <input type="text" name="lastName" style="width:420px;" value="<?php if($_GET['sname']) echo urldecode($_GET['sname']); ?>" />

    <label>Phone Number:</label> 
    <input type="text" name="phone" style="width:420px;" value="<?php if($_GET['phoneno']) echo urldecode($_GET['phoneno']); ?>" />

    <label>Email Address:</label> 
    <input type="text" name="email1" style="width:420px;" value="<?php if($_GET['email']) echo urldecode($_GET['email']); ?>" />

    <label>Confirm Email Address:</label> 
    <input type="text" name="email2" style="width:420px;" />

    <label>Message:</label> 
    <textarea name="message" style="width:420px;height:150px;" ><?php if($_GET['mes']) echo urldecode($_GET['mes']); ?></textarea>
<br />
        <img src="captcha/image.php?sid=<?php echo session_id(); ?>&color=grey" alt="" />
        <label>Captcha:</label>
        <input type="text" name="captcha" style="width:400px;" />
<br />
    <input type="submit" value="Send" style="background: #575757; color: #ffffff; border: none; padding: 3px 5px; width:420px; height:40px;" />

      </form>
    </div>
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){

    $('input#upload_yes').change(function(){
        if($(this).is(':checked')) {
            $("#upload_form").show();
        } else {
            $("#upload_form").hide();
        }
    });

    $('input#new_info_yes').change(function(){
         if($(this).is(':checked')) {
                $("#new_info_form").slideDown(500);
        } else {
                $("#new_info_form").delay(300).slideUp(500);;
        }   
    });

    //Trigger the change event so the divs are initially shown or hidden.
    $('input[type=checkbox]').trigger('change');

});
</script>
<script type="text/javascript">
    $(function() {
        $('#colorselector').change(function(){
            $('.colors').hide();
            $('#' + $(this).val()).show();
        });
    });
    </script> 
  </div>
</div>
</body>
<footer>
<div class="container">
  <div class="footer">
  <span id="footer">
  JonyDesigners &copy; 2012, All rights reserved.
  </div>
</div>
</footer>
<script src="http://twitter.com/javascripts/blogger.js" type="text/javascript"></script>
<script src="https://api.twitter.com/1/statuses/user_timeline/rapturesgfx.json?callback=twitterCallback2&count=4" type="text/javascript"></script>
</html>

配置文件

<?php

/*
This file sets up all the MySQL database and tables, as well as the functions needed in other scripts.
You should only edit the next few lines.
*/

//Change these two variables to your own MySQL username and password.
$mysqluser = "justxpp1_test";
$mysqlpass = "censored";

//Change this variable to your MySQL host's name.
$mysqlhost = "localhost";

//Change this variable to the file path of the form.
$form = "order.php";

//This variable defines the database name.
$dbname = "justxpp1_test";

//Captcha toggle
$captchatoggle = TRUE;

//--------------------------------------------------
//----------Do not alter beyond this point----------
//--------------------------------------------------

//Starts session
session_start();

require_once('captcha/Captcha.php');
$captchaobject = new Captcha();

//Establish MySQL connection
$dbp = mysql_connect($mysqlhost, $mysqluser, $mysqlpass);
if(!$dbp) die('There was an error while connecting to the database'.mysql_error());
//This part sets up the database if not set up already
$result = mysql_query("CREATE DATABASE IF NOT EXISTS `$dbname`;", $dbp);mysql_select_db($dbname, $dbp);
//Creates table named "records"
$result = mysql_query("CREATE TABLE IF NOT EXISTS records (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,firstname VARCHAR (15) NOT NULL,surname VARCHAR (20) NOT NULL,email VARCHAR (40) NOT NULL,phoneno VARCHAR (15) NOT NULL, message TEXT NOT NULL, date VARCHAR (20) NOT NULL, replied TEXT NOT NULL, reply TEXT NOT NULL);", $dbp);
//Creates table named "administrators"
$result = mysql_query("CREATE TABLE IF NOT EXISTS administrators (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR (12) NOT NULL,password VARCHAR (137) NOT NULL,adminemailaddress VARCHAR (60) NOT NULL,notificationoption TEXT NOT NULL);", $dbp);
//Creates an administrative account with username 'admin' and password 'admin'
$result = mysql_query("INSERT INTO administrators VALUES(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'example@example.com', 'no');", $dbp);
//Stop error from being output to the page
error_reporting(0);
//Declare functions needed for the rest of script
function gotoPage($location) {
    print <<<HERE
    <script>location.href="$location"</script>
HERE;
}
function showErr($err_num,$fname, $username, $sname, $email, $phoneno, $mes) {
    global $form;
    $err_num = base64_encode($err_num);
        $username = urlencode($username);
        $fname = urlencode($fname);
        $sname = urlencode($sname);
        $email = urlencode($email);
        $phoneno = urlencode($phoneno);
        $mes = urlencode($mes);
    print <<<HERE
    <script>location.href="$form?no=$err_num&fname=$fname&username=$username&sname=$sname&email=$email&phoneno=$phoneno&mes=$mes"</script>
HERE;
}
function admin_showErr($place, $err_num) {
    $err_num = base64_encode($err_num);
    print <<<HERE
    <script>location.href="contactFormAdmin/$place?no=$err_num"</script>
HERE;
}
function validate($fname, $username, $sname, $email, $email_con, $phoneno, $mes, $captchaentered) {
    global $dbp;
        global $captchaobject;
        global $captchatoggle;
    if (strlen($fname)<1 || strlen($sname)<1 || strlen($email)<1 || strlen($email_con)<1 || strlen($mes)<1) {
        //Execute if one or more of the fields were less than 2 characters
        showErr(0,$fname, $sname, $username, $email, $phoneno, $mes);
    } else if($email!==$email_con) {
        //Execute if confirm email did not match email
        showErr(1,$fname, $sname, $email, $phoneno, $mes);
    } else if(strstr($email, "@")==NULL||strstr($email, ".")==NULL) {
        //Execute if email does not have an @ or a period(.)
        showErr(2,$fname, $sname, $email, $phoneno, $mes);
        } else if($captchatoggle == TRUE && ($captchaentered !== $captchaobject->getCaptcha(session_id()) || $captchaentered == null || $captchaentered == "")) {
                //Execute on captcha error
                showErr(3,$fname, $sname, $email, $phoneno, $mes);
    } else {
        //Execute if all the fields validate
        $date = date("d/M/Y");
        $new = "new";
                $noreply = "";
        $result = mysql_query("INSERT INTO records VALUES (NULL, '$fname', '$sname', '$username', '$email', '$phoneno', '$mes', '$date', '$new', '$noreply')", $dbp);
        $tmp = mysql_fetch_assoc(mysql_query("SELECT * FROM administrators WHERE id=1"));
        $adminemail = $tmp['adminemailaddress']; 
                $notificationoption = $tmp['notificationoption'];
                $esubject = "New message at Contact Me Admin!";
                $emessage = "You have received a new message in your Contact Me Admin!";
        if ($notificationoption == "yes") {mail("$adminemail","$esubject","$emessage");}
        gotoPage("success_pageForwarder.php");
    }
}
function checklogin($username, $password) {
    global $dbp;
    //Check if username and password are valid
    $num_rows = mysql_num_rows(mysql_query("SELECT password FROM administrators WHERE username='$username'", $dbp));
    $tmp = mysql_fetch_assoc(mysql_query("SELECT password FROM administrators WHERE username='$username'", $dbp));
    if($num_rows==0) return false;
    else if($password!==$tmp['password'])  return false;
    else if($num_rows==1&&$password==$tmp['password']) return true;
    else return false;
}
function login($username) {
    $_SESSION['loggedin'] = "$username";
    gotoPage("contactFormAdmin/panelHome.php");
}
function logout() {
    if(isset($_SESSION['loggedin'])) {
        session_destroy();
        unset($_SESSION['loggedin']);
        gotoPage("contactFormAdmin/index.php");
    } else {
        gotoPage("javascript: history.go(-1)");
    }
}
function auth() {
    if((!isset($_SESSION['loggedin']))||(!$_SESSION['loggedin'])) gotoPage("index.php");
}
function changepw($username, $password) {
    global $dbp;
    $password = md5($password);
    $result = mysql_query("UPDATE administrators SET password='$password' WHERE username='$username';", $dbp);
    gotoPage("contactFormAdmin/panelHome.php");
}
function checkchangepw($username, $oldpw, $newpw, $newpw_con) {
    global $dbp;
    $oldpw = md5($oldpw);
    $temp = mysql_fetch_assoc(mysql_query("SELECT password FROM administrators WHERE username='$username'", $dbp));
    $realoldpw = $temp['password'];
    if($newpw!==$newpw_con) {
        admin_showErr('changePw.php', 1);
    } else if($realoldpw!==$oldpw) {
        admin_showErr('changePw.php', 3);
    } else {
        changepw($username, $newpw);
    }
}
function lastid($table) {
    $tmp = mysql_fetch_assoc(mysql_query("SELECT MAX(id) FROM $table"));
    return $tmp['MAX(id)'];
}
function firstid($table) {
    $tmp = mysql_fetch_assoc(mysql_query("SELECT MIN(id) FROM $table"));
    if($tmp['MIN(id)']==NULL) return 0;
    else return $tmp['MIN(id)'];
}
function deleteRecord($id) {
    global $dbp;
    $result = mysql_query("DELETE FROM records WHERE id=$id", $dbp);
}
?>

我需要你们帮助我找出导致系统认为选择标签为空的原因。

我认为这与 config.ini 中的错误检查系统有关。

我没有描述问题:当填写包括选择选项在内的所有内容时,它会显示一条错误消息,指出某些内容为空,删除代码后,它可以工作。

这是什么原因造成的?

4

1 回答 1

1
<select type="select" name="fname" id="colorselector" class="styled" value="<?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>" />

选择框关闭时</select>不带/>

<select type="select" name="fname" id="colorselector" class="styled" value="<?php if($_GET['fname']) echo urldecode($_GET['fname']); ?>">

试试那个..

  <select name="fname" id="colorselector" class="styled">
   <option value="slct" <?php if($_GET['fname'] && urldecode($_GET['fname'])=="slct") echo 'selected="selected"'; ?>>Please select a forum you saw me on</option>
   <option value="hf" <?php if($_GET['fname'] && urldecode($_GET['fname'])=="hf") echo 'selected="selected"'; ?>>Hackforums (_Jony_)</option>
   <option value="sy" <?php if($_GET['fname'] && urldecode($_GET['fname'])=="sy") echo 'selected="selected"'; ?>>Sythe (Purepks0r)</option>
   <option value="rs" <?php if($_GET['fname'] && urldecode($_GET['fname'])=="rs") echo 'selected="selected"'; ?>>R-S (Purepks0r)</option>
</select>
于 2012-10-20T12:58:29.317 回答