为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 中的变量在 ajax 请求后丢失

PHP 中的变量在 ajax 请求后丢失

PHP
慕码人8056858 2022-08-19 10:14:32
我的目标 - 通过条纹或PayPal付款,一旦完成,向客户出示一份表格,上传文件以通过电子邮件发送给我。我的表单处于自举模态中。我正在尝试确保除非付款,否则无法提交表单。客户当前付款,由 ajax 完成。这工作正常,并显示付款ID。但是,当我向同一 php 文档发送另一个 ajax 请求时,要完成电子邮件发送,使用 ,该变量已丢失其值。$send_form = $_POST["email_form"];$payment_made<?php$send_form = $_POST["email_form"]; //this is sent by ajax. Will be 'yes' if the form to send has been submitted.switch ($action){  case 'stripe':    //do stripe transaction    //set a variable to indicate payment is complete using transaction ID    $payment_made = $transaction->id;  break;  case 'paypal':    //do paypal transaction    //set a variable to indicate payment is complete using transaction ID    $payment_made = $transaction->id;  break;}function sendmail() {  //usual php mail function (works fine)}if ($send_form = 'yes' && $payment_made != '') {  sendmail();}?>我的问题:如何使用变量来验证付款是否已完成,以防止未经授权使用电子邮件表单?$payment_made除非有要求,否则我不会上传ajax或html代码,因为它都可以正常工作,只要我在使用之前不检查变量。$payment_madephpmail()
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

我使用PHP会话来存储然后删除变量。


<?php

session_start();

$send_form = $_POST["email_form"]; //this is sent by ajax. Will be 'yes' if the form to send has been submitted.


switch ($action){

  case 'stripe':

    //do stripe transaction

    //set a variable to indicate payment is complete using transaction ID

    $_SESSION["payment_made"] = $transaction->id;

  break;

  case 'paypal':

    //do paypal transaction

    //set a variable to indicate payment is complete using transaction ID

    $_SESSION["payment_made"] = $transaction->id;

  break;

}


function sendmail() {

  //usual php mail function (works fine)

  session_unset();

  session_destroy();

  mail();

}


if ($send_form = 'yes' && $_SESSION["payment_made"] != '') {

  sendmail(); 

}

?>


查看完整回答
反对 回复 2022-08-19
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信