我想将数据从一个php文件发送到其他php文件以验证用户身份。它们都不是html文件。而且我无法将其作为标题发送到网址中。 Plz给我一些建议。
答案 0 :(得分:4)
如果接收者脚本位于其他服务器上,您可以使用CURL来发送安全POST
请求,甚至。这不会暴露网址中的任何内容,然而 Firebug可能会看到该请求。要解决此问题,只需确保您的auth key
和正在发送的密码为hashed。
像这样(未经测试)
这是发件人脚本
<?php
///// Sender.php ///////
//Set up some vars
$url = 'http://domain.com/Receiver.php';
$user = 'someusername';
$pw = 'somepassword';
$auth_key = 'YourSecretAuthKey';
$fields = array(
'auth'=>urlencode($auth_key),
'user'=>urlencode($user),
'pw'=>urlencode($pw)
);
// Init. string
$fields_string = '';
// URL-ify stuff
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
?>
接收器脚本:
<?php
////// Receiver.php //////
if(!isset($_POST['authkey']))die('Error: No Auth Key');
if(!isset($_POST['user']))die('Error: No Username!');
if(!isset($_POST['pw']))die('Error: No password!');
$auth_key = $_POST['auth'];
$correct_authkey = 'YourSecretKey';
if($auth_key!=$correct_authkey)die('WRONG AUTH KEY!!!!');
$user = $_POST['user'];
$pw = $_POST['pw'];
//// Here you can process your username and password
?>
POST
请求非常安全,但如果您正在处理重要信息,则可以始终对auth密钥和密码进行哈希处理。希望这会有所帮助。
答案 1 :(得分:0)
加密或散列身份验证数据,并作为POST
正文或URL中的一部分发送。在接收端,请查看$_POST
或$_GET
。
答案 2 :(得分:0)
您需要将身份验证信息包含在另一个文件中:
<?php
require_once('authentication_infomation.php');
doTheAuthentication($authentication_information);
?>
请参阅:
http://se.php.net/manual/en/function.require-once.php
了解更多信息。