php - 第一次单击 word 2007 中的超链接(当它是蓝色时)导致我的网站 php 上的响应不正确
问题描述
所以我必须从我的测试文档中的超链接打开我的网站。我必须这样做以确保我的测试易于使用。可悲的是,我的网页似乎出现了非常奇怪的行为。
因此,当您打开链接时,它应该发送一封电子邮件,然后回复成功消息并从数据库中删除所有记录。如果您只是在浏览器中输入链接并且第二次打开超链接,则此方法有效。
但是,当您第一次打开链接时(并且您在数据库中确实有某些内容),它会发送电子邮件,但并没有像应有的那样给出成功的响应,而是在通过我的 if 之后似乎通过了我的 else 语句声明,它给出的响应是数据库中没有电子邮件。
因此,第一次单击 word 2007(也来自 PowerPoint)中的链接时,它会执行以下操作
- 发送邮件,如果满足 if 语句会发生什么
- 如果满足 else 语句,则响应数据库中没有记录
这是我的路线
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="stylesheets/style.css">
<title>Ninebits Enquete</title>
</head>
<?php
//Models
require_once '../Models/Model.php';
require_once '../Models/Database.php';
require_once '../Models/Question.php';
require_once '../Models/Survey.php';
require_once '../Models/Mail_Info.php';
require_once '../Models/Mail.php';
require_once '../Models/Answer.php';
//controllers
require_once '../Controllers/surveyController.php';
require_once '../Controllers/mail_infoController.php';
require_once '../Controllers/mailController.php';
require_once '../Controllers/answerController.php';
//views
require_once 'views/surveyView.php';
require_once 'views/finishView.php';
require_once 'views/selectionView.php';
require_once 'views/dashboardView.php';
require_once 'views/previouslySavedView.php';
require_once 'views/errorView.php';
//will get the URL so it can be used for routing
$url = isset($_SERVER['PATH_INFO']) ? explode('/', ltrim($_SERVER['PATH_INFO'],'/')) : '/' ;
//this is where my problem comes from by calling this
if($url == '/' && $_SERVER["REQUEST_METHOD"] === "GET")
{
$mc = new mailController;
$mc->sendMail();
}
else
{
if($url[1] == 'list')
{
$sc = new surveyController();
$mic = new mail_infoController();
$list = $mic->checkadress($_GET['type']);
$sc->displayPage($list);
}
else if($url[1] == 'finish')
{
$ac = new answerController();
$ac->showFinish();
}
else if($url[1] == 'selection')
{
$sc = new surveyController();
$sc->selectionScreen();
}
else if($url[1] == 'dashboard')
{
$ac = new answerController();
$ac->getCalculatedValue($_GET['id']);
}
else
{
header('HTTP/1.1 404 Not Found');
die("<h1>404</h1> pagina $url[1] kunnen wij niet vinden of bestaat niet. ");
}
}
?>
</html>
我在调用链接时调用的函数
/**
*
*
* sends the email with link to the client.
*/
public function sendMail()
{
$mail = new Mail();
//it goes through here when calling the link the first time from word
if(!$mail->exception)
{
$info = $mail->mails;
foreach ($info as $infoItem)
{
$adress = $infoItem["mailadress"];
if(filter_var($adress, FILTER_VALIDATE_EMAIL) )
{
$hash = $this->createLink($infoItem['client'], $infoItem['survey']);
$mail->mail_info->addMailInfo($infoItem['client'], $hash);
$to = $infoItem["mailadress"];
$subject = "Enquete";
$message = "<html><body>";
$message .= "<h1>Geachte ".$infoItem['client'];
$message .= "</h1>";
$message .= "<h3>Bedankt voor het gebruiken van onze service en producten</h3>";
$message .= "<p>Om ons te laten weten wat u van de service en producten vondt willen wij u graag vragen om de enquete in de link hieronder in te vullen</p>";
$message .= "<a href='https://ontwikkeling.ninebits.nl/lab/stage/danny/Enquete/public/list?type=$hash'>Ninebits Enquete</a>";
$message .= "<br>";
$message .= "<br>";
$message .= "<p>met vriendelijke groet,</p>";
$message .= "<p>Het hele Ninebits team</p>";
$message .= "</body></html>";
$headers = "from: Ninebits\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to, $subject, $message, $headers);
$mail->deleteMails($infoItem['id']);
//this is the response I am expecting everything up to here seems to work
echo 'success <br>';
}
else
{
//it does not seem to go in this else here which is good in this case
echo 'Dit is geen correct email adres<br>';
$mail->deleteMails($infoItem['id']);
if($mail->exception)
{
echo $mail->exceptionMessage;
}
}
}
}
//but then it responds with this else here
else
{
echo $mail->exceptionMessage;
}
}
}
浏览器控制台和我能够获得的所有日志数据都指向只有 1 个正在执行的 get 调用
解决方案
推荐阅读
- git - Git - 带有变量的自定义命令
- dart - Flutter - 如何获得带有软边缘孔的半透明模糊层
- vba - 无法点击某些点来抓取信息
- java - 自动将 JAVA_HOME 设置为最新的 JDK 版本
- javascript - 在按钮单击时使用参数调用 mvc 操作
- node.js - MongoDB CursorNotFound 数百条小记录的 collection.find() 错误
- python - Python re.findall 只返回部分模式
- xamarin.forms - Xamarin.IOS Flurl.Http 参考未解决
- windows - 克隆 Anaconda 基础环境时出现 AssertionError
- ios - 来自 UICollectionView 的 didSelectItemAt 和 didDeSelectItemAt