Post 使用 curl 或 webhooks 从外部服务器到数据库的数据
Post data to database from external server using curl or webhooks
这是我想要存档的内容的摘要以及我使用 curl 走了多远,这似乎通过触发另一个服务器中的文件到 运行 并更新数据库来完美地完成我的任务,但是我现在的问题是,更新的数据库不是从 html 表单所在的 serverA 发送的数据或值。
<!--- html code -->
<form action="" method="post" name="cashaform" id="cashaform">
<div class="dephone">Phone <br><input type="text" name="phone" id="phone" /></div>
<div class="deemail">Email <br><input type="text" name="email" id="email" /></div>
<div class="submit"> <br><input type="submit" name="submitprime" value="Submit" id="submitprime" /></div>
</form>
// 处理表单并将其发送到另一台服务器上的 do.php 的代码,该服务器使用表单
中的详细信息更新数据库
// This is process.php in serverA
if(isset($_POST['submitprime'])){
$sphone = $_POST['phone'];
$semail = $_POST['email'];
$form_data = array(
'phone' => $sphone,
'email' => $semail
);
$str = http_build_query($form_data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/serverb/do.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
}
现在在 serverB 上,我有一个名为 do.php 的文件,一旦 process.php 通过 curl
命中它,它就会更新数据库
// do.php that is on serverb
$hostname = 'localhost';
$dbusername = 'prime';
$dbpassword = 'prime';
$dbname = 'prime';
$conn = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname);
$email = 'pandglo@yahoo.com'; // this values should be replaced with phone sent from form in serverA via curl
$phone = '09077345'; // this values should be replaced with email sent from form in serverA via curl
// update the database
$run = "INSERT INTO prime_securetable (email, phone) VALUES('$email', '$phone')";
if(mysqli_query($conn, $run) ) {
echo 'Transferred Successfully';
}else{
echo'transfer failed';
}
mysqli_close($conn);
我希望用于更新数据库的数据 phone 和电子邮件是从 post 从 serverb 中的表单发送的,我试过了并使用 pandglo@ 设置了固定值yahoo.com 和一个固定的 phone 09077345 但我希望这个值是实际从 serverA 中的表单提交的值
它会更新数据库,但我希望它是通过 curl 编辑的 post 形式的值。
请帮忙。
非常简单地说,您可以使用它来获取发布到您的 serverb 的值:
$email = $_POST['email'];
$phone = $_POST['phone'];
请注意,您的代码未准备好生产,因为它容易受到 SQL 注入攻击,它也不验证传入数据等。在您的实时网站上使用它之前,请务必解决此问题。
这是我想要存档的内容的摘要以及我使用 curl 走了多远,这似乎通过触发另一个服务器中的文件到 运行 并更新数据库来完美地完成我的任务,但是我现在的问题是,更新的数据库不是从 html 表单所在的 serverA 发送的数据或值。
<!--- html code -->
<form action="" method="post" name="cashaform" id="cashaform">
<div class="dephone">Phone <br><input type="text" name="phone" id="phone" /></div>
<div class="deemail">Email <br><input type="text" name="email" id="email" /></div>
<div class="submit"> <br><input type="submit" name="submitprime" value="Submit" id="submitprime" /></div>
</form>
// 处理表单并将其发送到另一台服务器上的 do.php 的代码,该服务器使用表单
中的详细信息更新数据库// This is process.php in serverA
if(isset($_POST['submitprime'])){
$sphone = $_POST['phone'];
$semail = $_POST['email'];
$form_data = array(
'phone' => $sphone,
'email' => $semail
);
$str = http_build_query($form_data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/serverb/do.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $str);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
}
现在在 serverB 上,我有一个名为 do.php 的文件,一旦 process.php 通过 curl
命中它,它就会更新数据库// do.php that is on serverb
$hostname = 'localhost';
$dbusername = 'prime';
$dbpassword = 'prime';
$dbname = 'prime';
$conn = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname);
$email = 'pandglo@yahoo.com'; // this values should be replaced with phone sent from form in serverA via curl
$phone = '09077345'; // this values should be replaced with email sent from form in serverA via curl
// update the database
$run = "INSERT INTO prime_securetable (email, phone) VALUES('$email', '$phone')";
if(mysqli_query($conn, $run) ) {
echo 'Transferred Successfully';
}else{
echo'transfer failed';
}
mysqli_close($conn);
我希望用于更新数据库的数据 phone 和电子邮件是从 post 从 serverb 中的表单发送的,我试过了并使用 pandglo@ 设置了固定值yahoo.com 和一个固定的 phone 09077345 但我希望这个值是实际从 serverA 中的表单提交的值 它会更新数据库,但我希望它是通过 curl 编辑的 post 形式的值。 请帮忙。
非常简单地说,您可以使用它来获取发布到您的 serverb 的值:
$email = $_POST['email'];
$phone = $_POST['phone'];
请注意,您的代码未准备好生产,因为它容易受到 SQL 注入攻击,它也不验证传入数据等。在您的实时网站上使用它之前,请务必解决此问题。