成功执行sql命令后刷新页面

时间:2019-04-26 04:27:31

标签: php header refresh

我正在处理一个脚本,该脚本负责在成功更新后刷新页面。我正在使用GET方法来传递信息。我有一个名为“读取”的按钮,单击该按钮将更新我的数据库并负责刷新页面。当前,我正在使用此功能创建表:

if (data.status === "Success") {
    $scope.close = null;// close updates dom after next statement which is not expected .

    $timeout(function() {
        alert(data.successmessage);
    });
}

该函数调用我的更新:

function fetch_message($patient_ssn, $physician_ssn) {
    global $conn, $key, $iv;

    //Create query to fetch data
    $query = "SELECT message_ID, message_body, date_message, time_message, read_message FROM message WHERE patient_SSN='$patient_ssn' AND physician_SSN='$physician_ssn'";
    $result = mysqli_query($conn, $query);
    while($row = mysqli_fetch_row($result)) {
        //Enter table data here
        if($row[4] == 0) {
            echo '<tr class="table-danger">';
        } elseif($row[4] == 1) {
            echo '<tr class="table-success">';
        }
            echo "<td>$row[0]</td>";
            $decrypted_message = decrypt_text($row[1], $key, $iv);
            echo "<td>$decrypted_message</td>";
            echo "<td>$row[2]</td>";
            echo "<td>$row[3]</td>";
            //Checkbox setup
            if($row[4] == 0) {
                echo "<td><input type='submit' name='read' value='Confirm $row[0]'</td>";
            } elseif($row[4] == 1) {
                echo "<td><lable>Confirmed</lable></td>";
            }

        echo '</tr>';
    }
    echo '<tr>';
    echo '<th class="text-center" colspan="2" scope="row"><input type="submit" value="Update" name="update"</th>';
    echo '</tr>';
}

我遇到的问题是,单击按钮后,我希望它更新表并将页面刷新回 messaging.php 。这就是我尝试重定向的方式

function update_check($message_id, $patient_ssn, $physician_ssn) {
    global $conn;

    $query = "UPDATE message SET read_message='1' WHERE message_ID='$message_id' AND patient_SSN='$patient_ssn' AND physician_SSN='$physician_ssn'";
    $result = mysqli_query($conn, $query);
    if($result) {
        echo "success";
    }
}

(我也尝试过使用header(“ Location:messages.php”);但出现错误:

  

标题无法修改

可能是因为我在脚本顶部使用了fetch_message($_SESSION['ssn'], $_SESSION['phy_ssn']); //Update button has been clicked if(isset($_GET['read'])) { $message_id =explode(' ' , $_GET['read']); update_check($message_id[1], $_SESSION['ssn'], $_SESSION['phy_ssn']); echo "<meta http-equiv='refresh' content='0' URL='messaging.php'>"; } 。使用meta标签,它可以工作,但是它开始进行快速刷新而不停止。

URL看起来像这样:

session_start();

对于实现此目标的正确过程,我感到很困惑。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

通过使用输出缓冲区,可以避免标题出现问题。只需在ob_start()之后添加session_start()

顺便说一句。尝试使用准备好的sql语句。更安全。

答案 1 :(得分:0)

尝试使用此PHP方法。 >>> is_palindrome("f") True >>> is_palindrome("foo") False >>> is_palindrome("foof") True