gpt4 book ai didi

php - 在 EC2 上为 S3 托管网站运行 PHP 联系表单

转载 作者:行者123 更新时间:2023-11-29 22:11:14 24 4
gpt4 key购买 nike

我是一个相当新手的程序员,所以请原谅以下任何(非常)平庸的错误。

我目前正在创建一个由 Amazon S3 上托管的几个 HTML5/CSS3 页面组成的个人品牌网站,其中包括一个联系页面。我的联系表单当前定向到 (Amazon Linux) EC2 实例上的 PHP 页面,我已按照 AWS's guide 将其设置为 LAMP 服务器。以及一些(有点有趣的)尝试和错误。我的目的是让这个 PHP 表单将联系人输入的任何信息拼接到作为单独的(基于 AWS 的)RDS 实例托管的 MySQL 数据库中。

虽然我知道有很多更简单的方法(mailto 操作等),但我一直在尽最大努力让它发挥作用,但似乎无法弄清楚我做错了什么。我的表单将完全正常地重定向到 PHP 页面,但不会发生返回,也不会将数据放入数据库中。本质上,我只是得到一个平坦的白页。

我必须在与 PHP 重定向相同的 LAMP 服务器上设置数据库吗?还是我的代码中有一些完全不可靠的东西?

我已在下面发布了我的 PHP 代码以及“联系”页面的表单 HTML。任何帮助将不胜感激!提前非常感谢您!

PHP 代码 (contact.php):

<?php

$link = mysql_connect("[Instance Public IP]:[Port #]", "[Username]", "[Password]", "[Database Name]")

if($link === false) {
die("ERROR: Could not connect." . mysqli_connect_error());
}

$contact_name = mysqli_real_escape_string($link, $_POST['Name']);
$contact_email = mysqli_real_escape_string($link, $_POST['E-Mail']);
$subject = mysqli_real_escape_string($link, $_POST['Subject']);
$message = mysqli_real_escape_string($link, $_POST['Message']);

$sql = "INSERT INTO contacts (contact_name, contact_email, subject, message) VALUES ('$contact_name','$contact_email', '$subject', '$message')";
if(mysqli_query($link, $sql)){
echo "Thank you! Your message has been sent successfully.";
} else{
echo "ERROR: Unable to send successfully." .
mysqli_error($link);
}

mysqli_close($link);
?>

HTML 代码 (contact.html):

            <form action="[contact.php URL]" method="post">
<div>
<label for="Name"><b>Name:</b></label>
<input type="text" id="Name" autofocus required />
</div>
<div>
<label for="E-Mail"><b>E-Mail:</b></label>
<input type="email" id="E-Mail" required />
</div>
<div>
<label for="Subject"><b>Subject:</b></label>
<input type="text" id="Subject" required />
</div>
<div>
<label for="Message"><b>Message:</b></label>
<textarea id="Message" required>Please write your inquiry here.</textarea>
</div>
<div>
<button type="submit">Submit</button>
</div>
<div>
<button type="reset">Reset</button>
</div>
</form>

我已将生产代码中的所有[通用标签]替换为必需的用户名、密码等。

最佳答案

所以错误是:

  • 语法错误
  • 在 php 中发布表单需要 HTML 输入名称属性

一些建议:

  • 使用可以自动检测语法错误的 IDE。
  • 开始学习简单的调试技巧,例如 var_dump
  • 深入了解 xdebug

祝你编码愉快:)

关于php - 在 EC2 上为 S3 托管网站运行 PHP 联系表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com