我正在尝试构建Chrome插件。在主文件夹中,我有一个popup.html,它默认运行并在manifest.json中使用以下语法
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
popup.html绝对正常
我的popup.html在做什么?
它是从用户输入电子邮件并将其存储在本地phpmyadmin中。 以下是 popup.html
的代码<!doctype html>
<html style="min-width:350px;">
<head>
<title>Welcome</title>
</head>
<body>
<h3> Enter email </h3>
<form action=”info.php” method=”post”>
Enter email: <input type=”email” name=”email” />
<input type="submit" value="Submit" >
</form>
</body>
</html>
form操作链接到info.php,其中php连接数据库并将数据插入phpMyAdmin中的表中。 以下是 info.php代码
<html>
<body>
<?php
$con = mysql_connect('127.0.0.1','root','');
if (!$con)
{
echo'Could not connect to the server';
}
if (!mysqli_select_db($con,'test'))
{
echo 'Database Not Selected';
}
$Email = $_POST[email];
$sql = "INSERT INTO test_table(Email) VALUES ('$Email')";
if(!mysqli_query($con,$sql))
{
echo 'Could not add to database';
}
else
{
echo 'Thank you the data is added';
}
header("refresh:2; url=popup.html");
?>
</body>
</html>
我要面对什么问题? 在输入字段中输入电子邮件后,出现错误消息:未找到您的文件。该文件可能已被移动或删除。 ERR_FILE_NOT_FOUND
也许我收到此错误,因为必须在清单文件中添加info.php?如果这是问题所在,那么如何在manifest.json文件中添加多个URL?
答案 0 :(得分:0)
您的标头将不起作用,因为您已经回显了输出。
将输出粘贴到$ html变量中,而不是立即输出。
这可能无法完全解决您的问题吗?但这会修复标题。
<?php
$html = '';
$con = mysql_connect('127.0.0.1','root','');
if (!$con)
{
$html .= 'Could not connect to the server';
}
if (!mysqli_select_db($con,'test'))
{
$html .= 'Database Not Selected';
}
$Email = $_POST[email];
$sql = "INSERT INTO test_table(Email) VALUES ('$Email')";
if(!mysqli_query($con,$sql))
{
$html .= 'Could not add to database';
}
if (empty($html)) {
header("refresh:2; url=popup.html");
}
echo $html;
答案 1 :(得分:0)
使用@wOxxOm帮助解决了问题。
在 popup.html 中,它直接通过了服务器,例如http://localhost/foldername/info.php