PHP基础知识-在重定向页面中回显消息
我有一个网站,你按下一个按钮,一个弹出的DIV加载 在这个DIV上是一个JQuery验证程序表单,它提交到一个单独的PHP文件 PHP通过MySQLi登录到数据库并添加一个用户。当它这样做的时候,在每一个阶段它都会发出一条回音信息(我的想法是我知道它在做什么) 这给我留下了一个带有几行信息的白色屏幕。它非常有用,但从漂亮的弹出div注册来看非常丑陋 有没有办法,在PHP结束时,它可以重定向到另一个页面,假设其中有一个空白的div,回音信息可以放在那里,我可以用HTML5和CSS将剩下的页面搞乱 如果是这样,我如何将回显消息获取到此div中 谢谢 请看下面的片段(这是有效的),但请放心,因为这只是几个星期的学习PHP基础知识-在重定向页面中回显消息,php,html,redirect,echo,Php,Html,Redirect,Echo,我有一个网站,你按下一个按钮,一个弹出的DIV加载 在这个DIV上是一个JQuery验证程序表单,它提交到一个单独的PHP文件 PHP通过MySQLi登录到数据库并添加一个用户。当它这样做的时候,在每一个阶段它都会发出一条回音信息(我的想法是我知道它在做什么) 这给我留下了一个带有几行信息的白色屏幕。它非常有用,但从漂亮的弹出div注册来看非常丑陋 有没有办法,在PHP结束时,它可以重定向到另一个页面,假设其中有一个空白的div,回音信息可以放在那里,我可以用HTML5和CSS将剩下的页面搞乱
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>";
}
function webmailSignUp($db\u connection,$db\u con\u table)//网站注册表单的函数
{
$webmailFullName=$\u POST['webmailFullName'];
$webmailUserName=$_POST['webmailUserName'];
$webmailExEmail=$\u POST['webmailExEmail'];
$webmailPhone=$_POST['webmailPhone'];
$webmailDOB=$_POST['webmailDOB'];
//检查字段是否为空
如果(checkBlankFieldsError($webmailFullName、$webmailUserName、$webmailExEmail、$webmailPhone、$webmailDOB)==false)
{
echo“没有空表单输入字段
”;
//连接到MySQL
if(mysqli_connect_errno($db_connection))
{
echo“未能连接到MySQL数据库:”.mysqli_connect_error();
回声“
”;
}
其他的
{
echo“连接到数据库
”;
//检查表中是否没有现有名称
if(checkInField($webmailUserName,$db\u connection,$db\u con\u table,“userName”)==false)
{
//检查DOB字段
$dob=$webmailDOB;//或用于非iso:convertDate($webmailDOB);
echo“DOB is:$DOB
”;
//绑定和查询以防止SQL注入
$query=“插入$db_con_表(userFullName、userName、userExEmail、userPhone、userDOB)值(?,,,?,?)”;
$requery=$db\U连接->准备($query);
$requery->bind_参数(“sssss”、$webmailFullName、$webmailUserName、$webmailExEmail、$webmailPhone、$dob);
如果($requery->execute())
{
echo“$webmailUserName已添加到Webmail数据库
”;
}
其他的
{
echo“绑定$webmailUserName失败
”;
}
//关闭数据库
$db_连接->关闭();
echo“数据库已关闭。
”;
}
else{echo“已经有一个用户使用此用户名注册。请尝试其他用户。
”;}
}
}
其他的
{
echo“有一个或多个空输入字段。请重试。
”;
}
}
函数checkInField($value,$db\u connection,$db\u con\u table,$db\u field)//检查值是否不在数据库字段中
{
$query=“从$db\u con\u表中选择$db\u字段,其中$db\u字段='$value';
$result=$db_connection->query($query)或die($mysqli->error());
//浏览数据
如果($result->num_rows>0)
{
而($row=$result->fetch_assoc())
{
echo“在表$db\u con\u表列$db\u字段中找到用户$value:'$row[$db\u字段]”;
返回true;
}
}
其他的
{
echo“在表$db_con_表列$db_字段中未找到用户$value
”;
返回false;
}
}
函数checkBlankFieldsError($field1、$field2、$field3、$field4、$field5)//检查表单字段是否为空
{
$fields=array($field1、$field2、$field3、$field4、$field5);
$error=false;
foreach($fields AS$fieldname)//通过字段数组中的每个字段名循环
{
if(空($fieldname))
{
$error=true;
}
其他的
{
}
}
返回$error;
}
函数convertDate($aString)//将字符串转换为Y-M-D格式的日期
{
$date2=DateTime::createFromFormat('m/d/Y',$aString);
返回$date2->格式('Y-m-d');
}
//表单按钮上的主代码序列
如果(isset($_POST['webmailRegisterSubmit']))
{
webmailSignUp($mysqli\u db,$db\u table);
回显“注册结束。
”;
}
如果(isset($_POST['webamilForgottenPWSubmit']))
{
webmailForgottenPassword();
回显“密码重置请求结束。
”;
}
如果您真的想要重定向,您必须将邮件存储在某个地方。我建议您将它们保存在用户会话中。工作流程将是:
- 用户执行操作(保存表单/获取页面:任何内容)
- 服务器处理请求并根据情况(错误消息?成功消息?)在用户会话(标准php$\会话)的特定数组中存储新的“消息”。此时,您应该存储消息及其级别(INFO/WARNING/ERROR/SUCCESS/etc)
- 服务器执行重新定位(如果需要)
- 创建一个方法,该方法:
- 检索所有存储邮件并直接删除它们,因为您只想显示它们一次
- 在你的DIV上显示它们
- 你完了
希望这有帮助我会同意是的,有,但除了“我知道它在做什么”之外,几乎没有什么信息可以说——所以这只是为了调试目的?因为这不会发生在你的现场,所以“丑陋”不应该是一个问题。无论如何,您可以将该数据放入会话中