亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用戶通過電子郵件批準顯示輸出但不更新數據庫中的記錄

用戶通過電子郵件批準顯示輸出但不更新數據庫中的記錄

PHP
慕少森 2021-06-28 17:58:32
我目前正在做一個項目,我需要讓用戶注冊,然后向網站管理員的電子郵件發送一封帶有批準鏈接的電子郵件(包含下面的 php 頁面、用戶電子郵件和 sha512)。單擊批準鏈接時,它意味著使用相應的電子郵件更新表并將 isApproved 更改為 1,但它除了打印回聲之外什么都不做。我嘗試更改 SQL 命令,在名稱周圍添加 `,在 w3schools、stackoverflow 和其他論壇上查找,但一無所獲。<?php    $hash = $_GET['h'];    $email = $_GET['e'];    if($hash == hash('sha512', 'ACCEPT')){    $host = "redacted";    $dbUsername = "redacted";    $dbPassword = "redacted";    $dbname = "redacted";    //create connection    $conn = mysqli_connect($host, $dbUsername, $dbPassword, $dbname);    if (mysqli_connect_error())     {        die('Connect Error('. mysqli_connect_errno().')'.mysqli_connect_error());    }     else     {        $sql = "UPDATE `User` SET `isApproved`='1' WHERE `User`.`email`=$email";        echo("approved");    }?>我打開網站時看到的都是“已批準”,這正是我所期望的,但數據庫中的記錄保持不變。
查看完整描述

2 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

那是因為您沒有運行查詢語句。


$sql = "UPDATE `User` SET `isApproved`='1' WHERE `User`.`email`=$email";是您編寫但未執行的查詢。您需要使用 mysqli_query() 方法在連接中傳遞并在參數中查詢來執行它mysqli_query($conn, $sql);。您可以在此處閱讀更多相關信息。


更新代碼:

   <?php

        $hash = $_GET['h'];

        $email = $_GET['e'];

    

        if($hash == hash('sha512', 'ACCEPT')){

        $host = "redacted";

        $dbUsername = "redacted";

        $dbPassword = "redacted";

        $dbname = "redacted";

        //create connection

        $conn = mysqli_connect($host, $dbUsername, $dbPassword, $dbname);

        if (mysqli_connect_error()) 

        {

            die('Connect Error('. mysqli_connect_errno().')'.mysqli_connect_error());

        } 

        else 

        {

            $sql = "UPDATE `User` SET `isApproved`='1' WHERE `User`.`email`=$email";

            mysqli_query($conn, $sql); // <------- Run SQL Query 

            echo("approved");

        }

    ?>


查看完整回答
反對 回復 2021-07-16
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

我想你沒有運行執行命令。


    $conn = mysqli_connect($host, $dbUsername, $dbPassword, $dbname);

    ....

    $sql = "UPDATE `User` SET `isApproved`='1' WHERE `User`.`email`=$email";

    $stmt = mysqli_prepare($conn, $sql);

    mysqli_stmt_execute($stmt);


查看完整回答
反對 回復 2021-07-16
  • 2 回答
  • 0 關注
  • 189 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號