закрытие сокетов на сервере хостинга с использованием php - PullRequest
0 голосов
/ 02 августа 2020

У меня есть файл php на хостинг-сервере, который получает данные JSON с веб-сайта (я не контролирую этот веб-сайт). Мой файл php обрабатывает данные, сохраняет их в базе данных и уведомляет кого-то по электронной почте.

Ответственный за веб-сайт парень встроил некоторую обработку ошибок для повторной отправки данных всякий раз, когда мой php вывод файлов "терпит неудачу "или вообще ничего. Это привело к тому, что веб-сайт повторно отправил данные с такой скоростью, что сервер хостинга не успел. Я поговорил с техподдержкой, где расположен мой сервер, и они предложили мне ограничить подключения к сокетам и закрыть их после обработки данных. Они не могли сказать мне, как это сделать, а я никогда раньше этого не делал. Если честно, я даже не знаю, что искать.

Имеет ли это какое-либо отношение к «fsockopen» и «fclose»?

Мой код сейчас выглядит примерно так:

$output = "failed";

//connect to local database
$db_server  = "remote_server";
$db_usr_name    = "server_username";
$db_pwd     = "server_password";
$db_base    = "server_database";
    
$con = mysqli_connect($db_server,$db_usr_name,$db_pwd);
if (!$con){
  die('Could not connect: ' . mysqli_error());
}
mysqli_select_db($con, $db_base);

$data = json_decode(file_get_contents('php://input'), true);
    
//get data
$name = mysqli_real_escape_string($con,$data["name"]);
$surname = mysqli_real_escape_string($con,$data["surname"]);
$email = mysqli_real_escape_string($con,$data["email"]);
    
$add_lead = mysqli_query($con,"INSERT INTO leads (Name, Surname, Email) VALUES ('$name','$surname','$email')");
if(!($add_lead)){
    $status = "New Lead Info could not be added.";
}else{
    $status = "New Lead was added.";                            
    $output = "success";
}

//build and send simple notification email
$to = "someone@somewhere.com";
$subject = "Lead Entry";
$message = "
<html>
<head>
<title>Lead Entry</title>
</head>
<body>
<p>New Lead Entry</p>
<table>
<tr>
<td>Firstname: </td>
<td>".$name."</td>
</tr>
<tr>
<td>Surname: </td>
<td>".$surname."</td>
</tr>
<tr>
<td>Email: </td>
<td>".$email."</td>
</tr>
<tr>
<td>Status: </td>
<td>".$status."</td>
</tr>
</table>
</body>
</html>
";
        
//send a simple mail notification
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: <noreply@nowhere.com>' . "\r\n";

mail($to,$subject,$message,$headers);

echo $output;

Приветствуется любая помощь относительно того, где и как я go об открытых (?), Ограничивающих соединениях сокетов и закрытых соединениях сокетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...