PHP基础知识-在重定向页面中回显消息

PHP基础知识-在重定向页面中回显消息,php,html,redirect,echo,Php,Html,Redirect,Echo,我有一个网站,你按下一个按钮,一个弹出的DIV加载 在这个DIV上是一个JQuery验证程序表单,它提交到一个单独的PHP文件 PHP通过MySQLi登录到数据库并添加一个用户。当它这样做的时候,在每一个阶段它都会发出一条回音信息(我的想法是我知道它在做什么) 这给我留下了一个带有几行信息的白色屏幕。它非常有用,但从漂亮的弹出div注册来看非常丑陋 有没有办法,在PHP结束时,它可以重定向到另一个页面,假设其中有一个空白的div,回音信息可以放在那里,我可以用HTML5和CSS将剩下的页面搞乱

我有一个网站,你按下一个按钮,一个弹出的DIV加载

在这个DIV上是一个JQuery验证程序表单,它提交到一个单独的PHP文件

PHP通过MySQLi登录到数据库并添加一个用户。当它这样做的时候,在每一个阶段它都会发出一条回音信息(我的想法是我知道它在做什么)

这给我留下了一个带有几行信息的白色屏幕。它非常有用,但从漂亮的弹出div注册来看非常丑陋

有没有办法,在PHP结束时,它可以重定向到另一个页面,假设其中有一个空白的div,回音信息可以放在那里,我可以用HTML5和CSS将剩下的页面搞乱

如果是这样,我如何将回显消息获取到此div中

谢谢

请看下面的片段(这是有效的),但请放心,因为这只是几个星期的学习

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上显示它们
  • 你完了
此worklow的好处是,当您将消息添加/存储和显示清楚地分开时,即使没有重定向,它也可以工作


希望这有帮助

我会同意是的,有,但除了“我知道它在做什么”之外,几乎没有什么信息可以说——所以这只是为了调试目的?因为这不会发生在你的现场,所以“丑陋”不应该是一个问题。无论如何,您可以将该数据放入会话中