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

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

使用 $wpdb->insert 將包含撇號的用戶輸入文本保存到數據庫表中

使用 $wpdb->insert 將包含撇號的用戶輸入文本保存到數據庫表中

PHP
互換的青春 2023-04-02 10:19:51
我正在使用 Wordpress 和 MySQL。我有一個簡單的表單,允許用戶輸入文本字符串。在這種情況下,我要求提供供應商的名稱。因此,假設用戶輸入“Arby's”。Arby's 包含一個撇號。在用戶提交表單后,我使用 $wpdb->insert 將其插入到數據庫中的自定義表中。我得到的結果是:ID meta_key meta_value 13 vendor Arby's我不知道如何擺脫“\”。用戶沒有輸入“\”。當然,我不希望它出現在數據庫值中。我只是想要它作為用戶輸入它 - “Arby's”。我花了很多時間研究這個,并嘗試了很多我發現的東西,但沒有任何效果。這是我的代碼的精簡版本,用于演示我的問題和我嘗試過的內容。...global $wpdb;if ($_SERVER['REQUEST_METHOD'] == 'POST') {    $vendor = $_POST['vendor'];    $vendor1 = addslashes($_POST['vendor']);    $vendor2 = esc_attr($_POST['vendor']);    $vendor3 = sanitize_text_field($_POST['vendor']);    $vendor4 = esc_html_e($_POST['vendor']);    echo '<br><br>Post Value: ' . $_POST['vendor'] . '<br>';    echo 'With Addslashes: ' . $vendor1 . '<br>';    echo 'With esc_attr: ' . $vendor2 . '<br>';    echo 'With sanitize_test_field: ' . $vendor3 . '<br>';    echo 'With esc_html_e: ' . $vendor4 . '<br>';    $result = $wpdb->insert( 'raw_meta',        array(            'meta_key' => 'vendor',            'meta_value' => $vendor,        )    );} else {    echo '<form method="post" >';        echo 'Vendor Name:<br>';        echo '<input style="font-size:18px;" type="text" name="vendor" autofocus required><br><br>';        echo '<input type="submit"  value="Save New Vendor" name="submit">';    echo '</form>';}...代碼回顯如下:Post Value: Arby\'sWith Addslashes: Arby\\\'sWith esc_attr: Arby\'sWith sanitize_test_field: Arby\'sWith esc_html_e:我也嘗試過其他東西,但沒有任何東西能給我想要的結果。這似乎是一件很基本的事情;接受來自表單的輸入并將輸入的內容存儲在數據庫中。但我不明白為什么它不起作用。如果您有解決方案,我很樂意聽到。但是,除了這個特定問題的答案之外,如果有資源可以理解這個問題并學習如何處理它,那就太好了。我沒有上過教室,只是自學,所以不明白這個話題。謝謝。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

好吧,我從來沒有得到這方面的幫助,但我終于偶然發現了如何解決我的問題。所以發生的事情是表單的發布在撇號前添加了一個斜杠 ()。我以為問題出在 $wpdb->insert 上,但事實并非如此。


我如何解決我的問題是使用下面的代碼。首先,我找到了 stripslashes 函數,它刪除了表單帖子中的斜杠。然后,我還必須使用 __() 。不太確定為什么但它有效。


    $translated = __( stripslashes( $_POST['vendor'] ) );


    $result = $wpdb->insert( 'raw_meta',

        array(

            'meta_key' => 'test_data',

            'meta_value' => $translated,

        )

    );


查看完整回答
反對 回復 2023-04-02
  • 1 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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