【发布时间】:2014-03-16 19:29:51
【问题描述】:
我有一个网站,你按下一个按钮就会弹出一个 DIV 加载。
在这个 DIV 上是一个 JQuery Validator 表单,它提交到一个单独的 PHP 文件。
PHP 通过 MySQLi 登录数据库并添加用户。虽然它会这样做,但在每个阶段它都会发出一条回显消息(我的想法是我知道它在做什么)。
这给我留下了一个带有几行信息的白屏。它非常有用,但从漂亮的弹出 div 注册中非常难看。
有什么办法,在 PHP 结束时,它可以重定向到另一个页面,假设其中有一个空白 div,回显信息可以去,我可以用 HTML5 和 CSS 使剩余的页面变得活泼。
如果是这样,我如何将回显消息放入此 div?
谢谢
请看下面的 sn-p(它正在工作) - 但请放轻松,因为它只有几周的学习时间。
function webmailSignUp($db_connection,$db_con_table) //The function for the website REGISTER FORM
{
$webmailFullName = $_POST['webmailFullName'];
$webmailUserName = $_POST['webmailUserName'];
$webmailExEmail = $_POST['webmailExEmail'];
$webmailPhone = $_POST['webmailPhone'];
$webmailDOB = $_POST['webmailDOB'];
//Check that the fields are not empty
if (checkBlankFieldsError($webmailFullName,$webmailUserName,$webmailExEmail,$webmailPhone,$webmailDOB) == false)
{
echo "There are no empty Form Input Fields<br>";
//Connecting to MySQL
if (mysqli_connect_errno($db_connection))
{
echo "Failed to connect to MySQL database:" . mysqli_connect_error();
echo "<br>";
}
else
{
echo "Connected to database<br>";
//Check that there is no existing name in the table
if (checkInField($webmailUserName,$db_connection,$db_con_table,"userName") == false)
{
//Check DOB Field
$dob = $webmailDOB; //or use for non-iso: convertDate($webmailDOB);
echo "DOB is: $dob<br>";
//Binding and Query to prevent SQL injection
$query = "INSERT INTO $db_con_table(userFullName,userName,userExEmail,userPhone,userDOB) VALUES(?,?,?,?,?)";
$requery = $db_connection->prepare($query);
$requery->bind_param("sssss",$webmailFullName,$webmailUserName,$webmailExEmail,$webmailPhone,$dob);
if ($requery->execute())
{
echo "$webmailUserName has been added to the Webmail Database<br>";
}
else
{
echo "bind failed on $webmailUserName <br>";
}
//Close Database
$db_connection->close();
echo "Database is Closed.<br>";
}
else{echo "There is already a user registered with this username. Please try a different one.<br>";}
}
}
else
{
echo "There is 1 or more empty input fields. Please try again.<br>";
}
}
function checkInField($value,$db_connection,$db_con_table, $db_field) // Checks a value is not within a database field
{
$query = "SELECT $db_field FROM $db_con_table WHERE $db_field='$value'";
$result = $db_connection->query($query) or die($mysqli->error());
// GOING THROUGH THE DATA
if($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo "User $value found: '$row[$db_field]' in the table $db_con_table column $db_field<br>";
return true;
}
}
else
{
echo "User $value has not been found in the table $db_con_table column $db_field<br>";
return false;
}
}
function checkBlankFieldsError($field1,$field2,$field3,$field4,$field5) //Checks if form fields are blank
{
$fields = array($field1,$field2,$field3,$field4,$field5);
$error = false;
foreach($fields AS $fieldname) //Loop trough each fieldname in the fields array
{
if(empty($fieldname))
{
$error = true;
}
else
{
}
}
return $error;
}
function convertDate($aString) //Converts a String to a Date in Y-M-D format
{
$date2 = DateTime::createFromFormat('m/d/Y', $aString);
return $date2->format('Y-m-d');
}
//Main Code Sequence on form buttons
if(isset($_POST['webmailRegisterSubmit']))
{
webmailSignUp($mysqli_db,$db_table);
echo "End of Registration.<br>";
}
if(isset($_POST['webamilForgottenPWSubmit']))
{
webmailForgottenPassword();
echo "End of Password Reset Request.<br>";
}
【问题讨论】:
-
我同意,是的,有,但是除了这些,没有什么可以说的了
-
“我的想法是我知道它在做什么”——所以这只是为了调试目的?由于这不会发生在您的实时站点上,因此“丑陋”不应成为问题。无论如何,您可以将该数据放入会话中,然后在其他地方显示它;或将调试输出写入文件。
-
是的,我认为你是对的,我想我需要将它重定向到一个页面并将回声记录在一个文件中。给我两分钟,我会添加代码。
-
要重定向,我是否使用:header("Location: ../webmailSuccess.php");
-
我也可以简单地改变我所有的回声: