这是一个接口转发的程序,需要实现两个功能:
1、现在需要做一个记录日志,将用户的提交IP或者域名、提交日期、uid等参数记录在日志文件里面,日志以当天日期命名,即一天一个日志文件。
2、当用户ip为某个指定IP时侧拒绝转发。
请帮助完善代码。
<?php
// 接收原始请求参数
$uid = $_REQUEST['uid']; // 企业ID
$pwd = $_REQUEST['pwd']; // 密码
$mobile = $_REQUEST['mobile']; // 号码
$content = $_REQUEST['content']; // 内容
// 构造新接口的请求参数
$post_data = array(
'userid' => $uid,
'account' => $uid,
'pwd' => $pwd,
'mobile' => $mobile,
'content' => $content,
'action' => 'send',
'rt' => 'json'
);
// 构造请求字符串
$post_items = [];
foreach ($post_data as $key => $value) {
$post_items[] = $key . '=' . urlencode($value);
}
$post_string = implode('&', $post_items);
// 初始化cURL
$url = 'http://www.alisms.cn/smsGBK.aspx';
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 发送请求并获取结果
$result = curl_exec($ch);
curl_close($ch);
// 输出结果
echo $result;
?>
怎么记录用户信息到日志里面?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- GISer Liu 2024-01-13 13:04关注
该回答引用自GPT-4,由博主GIS_Liu编写:
这是一个完善后的PHP代码,它实现了您所需的两个功能:
记录日志:这部分代码获取用户的IP地址和当前日期,并将这些信息连同UID一起记录到以当天日期命名的日志文件中。
拒绝指定IP的请求转发:代码中设置了一个
$blocked_ip
变量,您可以在这里指定要拒绝的IP地址。当用户的IP地址与这个指定的IP地址匹配时,程序将输出“Access denied for IP: [用户IP]”并停止执行。
以下是完整的PHP代码:
<?php // 接收原始请求参数 $uid = $_REQUEST['uid']; // 企业ID $pwd = $_REQUEST['pwd']; // 密码 $mobile = $_REQUEST['mobile']; // 号码 $content = $_REQUEST['content']; // 内容 // 获取用户IP地址 $user_ip = $_SERVER['REMOTE_ADDR']; // 获取当前日期 $current_date = date('Y-m-d'); // 指定日志文件名称(以当前日期命名) $log_file_name = $current_date . '.log'; // 构造日志内容 $log_content = "IP: " . $user_ip . " | Date: " . $current_date . " | UID: " . $uid . "\\n"; // 将日志内容写入日志文件 file_put_contents($log_file_name, $log_content, FILE_APPEND); // 检查用户IP是否为指定IP,若是,则拒绝转发 $blocked_ip = '192.168.1.1'; // 这里设置指定的IP地址 if ($user_ip == $blocked_ip) { echo 'Access denied for IP: ' . $user_ip; exit; } // 构造新接口的请求参数 $post_data = array( 'userid' => $uid, 'account' => $uid, 'pwd' => $pwd, 'mobile' => $mobile, 'content' => $content, 'action' => 'send', 'rt' => 'json' ); // 构造请求字符串 $post_items = []; foreach ($post_data as $key => $value) { $post_items[] = $key . '=' . urlencode($value); } $post_string = implode('&', $post_items); // 初始化cURL $url = 'http://www.alisms.cn/smsGBK.aspx'; $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 发送请求并获取结果 $result = curl_exec($ch); curl_close($ch); // 输出结果 echo $result; ?>
这段代码应该满足您的需求。如果您有任何其他特定的要求或问题,请随时告诉我。
如果该回答解决了您的问题,请采纳!如果没有,请详述问题所在!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 matlab(相关搜索:紧聚焦)
- ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
- ¥15 路易威登官网 里边的参数逆向
- ¥15 Arduino无法同时连接多个hx711模块,如何解决?
- ¥50 需求一个up主付费课程
- ¥20 模型在y分布之外的数据上预测能力不好如何解决
- ¥15 processing提取音乐节奏
- ¥15 gg加速器加速游戏时,提示不是x86架构
- ¥15 python按要求编写程序
- ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入