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

如何让php代码不切换页面?

如何让php代码不切换页面?

PHP
梵蒂冈之花 2022-12-11 09:10:59
我创建了一个名为 coodos.co 的网站,我是 php 的新手,每当有人提交联系我们时,php 页面打开且永不关闭,我想做的是 php 代码在后端执行而不是加载页面在用户面前调用 contact.php,这是我的 PHP 代码<?php    $name = $_POST['name'];    $email = $_POST['email'];    $msg = $_POST['msg'];       $to='info@coodos.co'; // Receiver Email ID, Replace with your email ID    $subject='Form Submission';    $message="Name :".$name."\n"."email:".$email."\n"."Wrote the following :"."\n\n".$msg;    $headers="From: ".$email;    if(mail($to, $subject, $message, $headers)){        exit();    }?>
查看完整描述

2 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

这与 php 的工作方式无关,而是与 HTML 中的表单工作方式有关。
我假设在你页面的某处你有这条线

<form action="/contact.php">

或类似的东西。用户提交表单后,操作链接将告诉浏览器去哪里。要抑制这种情况,您可以按照此处所述使用 JavaScript或使其仅链接回首页。
或者,您也可以通过发送这样的重定向标题从您的联系页面重定向到您的首页:

header('Location: '.$newURL);


查看完整回答
反对 回复 2022-12-11
?
跃然一笑

TA贡献1826条经验 获得超6个赞

如果我理解正确的话,你想执行一些外部 php 文件,而不是在提交表单时离开你所在的页面。
希望这是正确的。

选项 1 - header()

实现非常相似的行为的一种常用方法是header方法。这会将您重定向到特定文件。

header('location: index.php');

这也可用于将 URL 中的附加数据作为$_GET值传递。
小例子:

    header('location: index.php?login=success');

注意:您仍然希望保留exit()以防止执行重定向后的代码。

选项 2 - PHP_SELF

有点棘手,但您也可以使用重定向到您已经在的页面。为此,您可以使用$_SERVER['PHP_SELF'].

处理这个女巫护理!
用户有办法操纵 url,这意味着您必须应对潜在的跨站点脚本 (XSS) 攻击。这很容易用 完成htmlspecialchars,但非常重要!

以下是如何在表单中使用它:

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">

因为您在页面上重定向,您很可能希望有另一段 PHP 代码来检查可能发送的数据$_GET$_POST


查看完整回答
反对 回复 2022-12-11
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号