php不发送referer,php – 注意:未定义的索引:HTTP_REFERER

在尝试从包含文件中调用HTTP_REFERER变量时遇到问题。页面显示'所有字段都是必需的'错误,即使所有表单字段都已填写。代码中包含了错误检查和字段非空验证,但问题依然存在。ini_set('display_errors', true); error_reporting(E_ALL); 用于开启错误显示,但未找到解决方案。

注意:未定义的索引:HTTP_REFERER

$http_referer = $_SERVER [‘HTTP_REFERER’]

我使用这个从教程,它看起来不错

代码也从包含文件中调用它

我该怎么改?

我添加了print_r($_ SERVER);现在页面给了我这个

Array ([UNIQUE_ID] => UoSxWa56310AAAwUckIAAAAA

[HTTP_HOST] => movafaghha.com

[HTTP_COOKIE] => __utma=210711305.58608218.1372977010.1372977010.1372977010.1; __utmz=210711305.1372977010.1.1.utmcsr=who.is|utmccn=(referral)|utmcmd=referral|utmcct=/whois/movafaghha.com; PHPSESSID=83eb0e2ae7ebe4b6c2eeb071d9f5de71

[HTTP_X_REAL_IP] => 109.109.41.81

[HTTP_X_FORWARDED_HOST] => movafaghha.com

[HTTP_X_FORWARDED_SERVER] => movafaghha.com

[HTTP_X_FORWARDED_FOR] => 109.109.41.81

[HTTP_CONNECTION] => close

[HTTP_CACHE_CONTROL] => max-age=0

[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.48 Safari/537.36

[HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,fa;q=0.6

[PATH] => /sbin:/usr/sbin:/bin:/usr/bin

[SERVER_SIGNATURE] =>

[SERVER_SOFTWARE] => Apache

[SERVER_NAME] => movafaghha.com

[SERVER_ADDR] => 174.122.223.93

[SERVER_PORT] => 80

[REMOTE_ADDR] => 109.109.41.81

[DOCUMENT_ROOT] => /home/memarest/public_html/movafaghha.com

[SERVER_ADMIN] => webmaster@movafaghha.memarestan.com

[SCRIPT_FILENAME] => /home/memarest/public_html/movafaghha.com/tutorials/login200/register.php

[REMOTE_PORT] => 49737

[GATEWAY_INTERFACE] => CGI/1.1

[SERVER_PROTOCOL] => HTTP/1.0

[REQUEST_METHOD] => GET

[QUERY_STRING] =>

[REQUEST_URI] => /tutorials/login200/register.php

[SCRIPT_NAME] => /tutorials/login200/register.php

[PHP_SELF] => /tutorials/login200/register.php

[REQUEST_TIME_FLOAT] => 1384427865.54

[REQUEST_TIME] => 1384427865

[argv] => Array ( )

[argc] => 0

)

编辑代码,但仍然无法回应所有fiedds是必需的

ini_set("display_errors", true);

error_reporting(E_ALL);

require 'core.inc.php';

if(!loggedIn()) {

//check mikunim ke tamame field ha dar form vojod darand va set shudan

if(isset($_POST['username'])&&isset($_POST['password'])&&isset($_POST['password_again'])&&isset($_POST['firstname'])&&isset($_POST['surename'])) {

$username = $_POST['username'];

$password = $_POST['password'];

$password_again = $_POST['password_again'];

$firtsname = $_POST['firstname'];

$surename = $_POST['surename'];

//HALA CHECK MIKUNIM KHALI HASTAND YA NA

if(!empty($username)&&!empty($password)&&!empty($password_again)&&!empty($firstname)&&!empty($surename)){

echo 'ok' ;

} else {

echo ' All fields are required';

}

}

?>

Username:

Password:

Password again:

Firstname:

Surname:

} elseif (loggedIn()) {

echo 'you \'re already logged in';

}

?>

现在加入

“e”

页面说“所有字段都是必需的”

但即使填写所有字段消息也不要更改

import requests from bs4 import BeautifulSoup import csv import time import re def get_top100_universities(): url = "https://www.shanghairanking.cn/rankings/bcur/2024" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36)", "Accept-Language": "zh-CN,zh;q=0.9", "Referer": "https://www.shanghairanking.cn/", } try: # 添加延迟防止请求过快 time.sleep(2) print(f"正在爬取数据: {url}") response = requests.get(url, headers=headers, timeout=15) response.raise_for_status() response.encoding = 'utf-8' # 显式设置编码 soup = BeautifulSoup(response.text, 'html.parser') table = soup.find('table', class_='rk-table') if not table: print("未找到排名数据表格") return [] ranking_data = [] # 提取表头确定列位置 headers = [th.text.strip() for th in table.find('thead').find_all('th')] try: score_col_index = headers.index("总分") except ValueError: # 如果找到"总分"列,使用默认位置 score_col_index = 4 rows = table.find('tbody').find_all('tr')[:100] # 只获取前100名 for idx, row in enumerate(rows): cols = row.find_all('td') # 检查列数量是否正常 if len(cols) < score_col_index + 1: # 确保有足够的列 print(f"第{idx+1}行数据异常,列数: {len(cols)}") continue try: # 提取排名、名称和位置 rank = cols[0].text.strip() name = cols[1].text.strip() location = cols[2].text.strip() # 直接使用总分列索引获取分数 score_text = cols[score_col_index].text.strip() # 使用正则提取数字(包含小数) score_match = re.search(r'(\d+\.?\d*)', score_text) score = score_match.group(1) if score_match else "N/A" # 数据验证 if not all([rank, name, location, score]): print(f"第{idx+1}行数据完整: {rank}, {name}, {location}, {score}") continue ranking_data.append({ '排名': rank, '学校名称': name, '所在地': location, '总分': score }) except Exception as e: print(f"处理第{idx+1}行时出错: {e}") continue print(f"成功提取{len(ranking_data)}条有效数据") return ranking_data except requests.exceptions.RequestException as e: print(f"请求错误: {e}") return [] except Exception as e: print(f"处理数据时出错: {e}") return [] def save_to_csv(data, filename='top100_universities.csv'): if not data: print("没有数据可保存") return fields = ['排名', '学校名称', '所在地', '总分'] with open(filename, 'w', newline='', encoding='utf-8-sig') as f: # utf-8-sig 解决Excel中文乱码 writer = csv.DictWriter(f, fieldnames=fields) writer.writeheader() writer.writerows(data) print(f"数据已成功保存到 {filename}") def print_table(data, max_rows=10): """格式化打印前N行数据""" if not data: print("无数据可展示") return # 确定列宽 col_widths = { '排名': max(4, max(len(str(d['排名'])) for d in data[:max_rows])), '学校名称': max(8, max(len(d['学校名称']) for d in data[:max_rows])), '所在地': max(4, max(len(d['所在地']) for d in data[:max_rows])), '总分': max(4, max(len(str(d['总分'])) for d in data[:max_rows])) } # 打印表头 header = f"{'排名':^{col_widths['排名']}} | {'学校名称':^{col_widths['学校名称']}} | {'所在地':^{col_widths['所在地']}} | {'总分':^{col_widths['总分']}}" print("-" * len(header)) print(header) print("-" * len(header)) # 打印数据行 for uni in data[:max_rows]: row = f"{uni['排名']:^{col_widths['排名']}} | " \ f"{uni['学校名称']:<{col_widths['学校名称']}} | " \ f"{uni['所在地']:^{col_widths['所在地']}} | " \ f"{uni['总分']:>{col_widths['总分']}}" print(row) print("-" * len(header)) if __name__ == "__main__": print("="*50) print("中国大学排名TOP100数据采集系统") print("="*50) universities = get_top100_universities() if universities: print("\n前10名大学排名:") print_table(universities, max_rows=10) save_to_csv(universities) else: print("未能获取到大学排名数据") 第46行 if len(cols) < score_col_index + 1: 中的it未定义
09-04
import requests import xlwt from bs4 import BeautifulSoup data_list = [] headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0', 'referer': 'https://top.zol.com.cn/compositor/cell_phone.html' } pp = { 1795: 'vivo', 1673: 'oppo', 613: '华为', 50840: '荣耀', 544: '苹果', 55731: '红米', 55075:'IQOO', 34645:'小米', 35579:'一加', 98:'三星' } def get_info(url, city): res = requests.get(url, headers=headers) parse(res.content.decode('utf-8'), city) def parse(htmlData, pp): soup = BeautifulSoup(htmlData, 'html.parser') jiage= soup.select('body > div.wrapper.clearfix > div.main > div > div.rank-list > div > div.rank-list__cell.cell-4 > div') redu= soup.select('body > div.wrapper.clearfix > div.main > div > div.rank-list > div > div.rank-list__cell.cell-5 > div > span') pf = soup.select('body > div.wrapper.clearfix > div.main > div > div.rank-list > div:nth-child(8) > div.rank-list__cell.cell-6 > div > span') for i in zip(jiage,redu,pf): data = [ pp, i[0].get_text(), i[1].get_text(), i[2].get_text() ] data_list.append(data) def write_to_file(): book = xlwt.Workbook() sheet = book.add_sheet('sheet1') headers = ['品牌', '价格', '热度', '评分'] for h in range(len(headers)): sheet.write(0, h, headers[h]) for i in range(len(data_list)): for j in range(len(data_list[i])): sheet.write(i + 1, j, data_list[i][j]) book.save('近8 - 15天同城市气温1.xls') if __name__ == '__main__': L = [1795,1673,613,50840,544,55731,55075,34645,35579,98] urls = ['https://top.zol.com.cn/compositor/{}/manu_1795.html'.format(str(i)) for i in L] for u, code in zip(urls, L): city = city_dict[code] get_info(u, city) write_to_file() 找出代码中的错误
11-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值