codecanyonから次のスクリプトを購入しました
http://codecanyon.net/item/contact-me-contact-form-admin-panel-v2/148836
次に、スクリプトをWebサイトテンプレートに追加しました。$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を提供します。
Order.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 © 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>
Config.ini
<?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のエラーチェックシステムと関係があると思います。
問題については説明しませんでした。選択オプションを含むすべてを入力すると、何かが空であることを示すエラーメッセージが表示され、コードを削除した後、機能しました。
これを引き起こしているのは何ですか?