2011-07-27 5 views
1

사용자를 인증하기 위해 하나의 PHP 파일에서 다른 PHP 파일로 데이터를 보내려고합니다. 그들 중 누구도 html 파일이 될 수 없습니다. URL에 표시되는대로 머리글로 보낼 수 없습니다. Plz 제안 좀 해줘.하나의 PHP 파일에서 다른 PHP 파일로 데이터 보내기

+1

질문을 좀 더 확대해야한다고 생각합니다. 이 파일들이 같은 서버에 있습니까? 파일에 뭐가 들어 있니? –

+0

@Matt 동일한 서버, 동일한 디렉토리에있는 파일. 하나의 파일에는 인증 정보 (사용자 이름, 암호 등)가 있으며 다른 파일은 정보를 확인합니다. 두 파일을 포함 할 수 없습니다. – Nitish

+0

인증 정보 (사용자 이름, 비밀번호)가 배열로 저장되어 있습니까? –

답변

4

당신은 수신기 스크립트가 다른 서버에있는 경우 안전한 POST 요청, 을 보내,이에 대한 CURL를 사용할 수 있습니다. 그러면 URL에 아무 것도 노출되지 않지만 방화범 요청을 볼 수 있습니다. 이 문제를 해결하려면 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 요청은 매우 안전하지만 당신이 처리하는 경우 중요한 정보는 항상 인증 키와 암호를 해싱 할 수 있습니다. 희망이 도움이됩니다.

<?php 
require_once('authentication_infomation.php'); 
doTheAuthentication($authentication_information); 
?> 

참조 : 자세한 내용은

http://se.php.net/manual/en/function.require-once.php

0

인증 데이터를 암호화하거나 해시하고 POST 본문 또는 URL의 일부로 보냅니다. 수신 측에서는 $_POST 또는 $_GET을 확인하십시오.

+1

$ _GET은 OP가 선호하는 해결책에 어긋납니다. – Jeff

0

당신은 thusly 히 다른 파일에 인증 정보를 포함해야합니다.

+0

'나는 두 파일을 포함시킬 수 없다. '- 그의 OP에 OP의 코멘트. :) – Jeff

+0

@ 제프 나는 그 의견을 오해했을지도 모른다. 나는 그 일을하는 법을 모르고 있기 때문에 OP가 그 파일들을 묻을 수 없다고 생각했다. –

+0

어쩌면 나는 그것을 오해 한 것일까? :피 – Jeff

관련 문제