PDA

View Full Version : سوال: درمورد دادن ورودی به صورت انلاین



sharghi
چهارشنبه 25 شهریور 1388, 00:35 صبح
سلام به اساتید.ولله من هر دفعه سوالی مطرح کردم کسی لطف نکرد جوابی بده.به هرحال بازم امتحان میکنم.قسمتی از اسکریپت وبلاک دهی دارم میخوام یک تغییر کوچیک بهش بدم.قسمتی داره که یک فایل rss رو که پسوند xml داره از کامیپوتر کاربر دریافت میکنه و ازش استفاده میکنه.حالا تغییری که میخام بدم اینه که این فایل rss از یک ادرس به صورت online دریافت بشه نه از کامپیوتر طرف.به عنوان مثال کاربر چنین ادرسی http://www.XXX.blogfa.com/rss.aspx رو به اسکریپ بده و اسکریپ از این فایل rss استفاده کنه.این اسکریپت:




<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<div class="mtitle">پشتیبان گیری</div>

<?
function str_between($str,$start,$end) {if (preg_match_all('/' . preg_quote($start) . '(.*?)' . preg_quote($end) . '/',$str,$matches)){return $matches[1];}return false;}

if(@$_POST['d']=='restore' AND @$_FILES['t1']['name']){
//echo $_FILES['t1']['name'];
//if(substr($_FILES['t1']['name'],-4)=='.xml'){

$file_nameb=$_FILES['t1']['tmp_name'];
@$fpb = fopen($file_nameb, 'r'); $bdata = '';
while (!@feof($fpb)) {@$bdata .= fread($fpb, 4096);}

$bdata = str_replace("

","",$bdata);
$bdata = str_replace("
","",$bdata);
$bdata = str_replace("\n","",$bdata);

//$iuser = str_between($bdata,"<title>",".".$qcb['surl']);
//echo $iuser[0];

$item = str_between($bdata,"<item>","item>");

$i=0;while($item[$i]){

$title = str_between($item[$i],"<title>","title>");
$title = substr($title[0],0,-2);
$tex = str_between($item[$i],"<description>","description>");
$tex = substr($tex[0],0,-2);

$dtime = str_between($item[$i],"<pubDate>","pubDate>");
$dtime = explode(" ",substr($dtime[0],0,-2));
$pdate = $dtime[0];
$ptime = $dtime[1];

$texc = explode ('EX'.$qcb['surl'].'EX',$tex);

if($texc[1]){

$tex = $texc[0];
//echo '1<hr>';
$tex = str_replace("&lt;","<", $tex);
$tex = str_replace("&gt;",">", $tex);
$tex = str_replace("&quot;","\"", $tex);

$extex = $texc[1];
//echo '1<hr>';
$extex = str_replace("&lt;","<", $extex);
$extex = str_replace("&gt;",">", $extex);
$extex = str_replace("&quot;","\"", $extex);
}else{

//echo $tex;
//echo '2<hr>';
$tex = str_replace("&lt;","<", $tex);
$tex = str_replace("&gt;",">", $tex);
$tex = str_replace("&quot;","\"", $tex);
$extex='';
}

$qbida=mysql_fetch_array(mysql_query("select max(bid) from posts where weblog='$blogid'"));
if($qbida[0]){$bid=($qbida[0]+1);}else{$bid=1;}

//echo $bid.'<br>'.$userid.'<br>'.$blogid.'<br>'.$title.'<br>'.$tex.'<br>'.$extex.'<br>'.$ptime.'<br>'.$pdate;

mysql_query("insert into posts (bid,usern,weblog,ptitle,ptext,pextext,pcomment,pt ime,pdate,status) VALUES ('$bid','$userid','$blogid','$title','$tex','$exte x','1','$ptime','$pdate','1')");

$i++;}

?>

بازیابی مطالب با موفقیت انجام شد.
<br>
تعداد
<b>
<?=$i?>
</b>
مطلب با موفقیت در وبلاگ ثبت شد.
<br><br>

<?}?>


<a href="http://<?=$qcb['surl']?>/tv.php?id=<?=md5($blogid)?>" target="_blank"><b style="color:red">
»</b><b> دانلود پشتیبان از کل مطالب وبلاگ</b></a>

<br><br>
<center><hr size=1 width=80% color="#e0e0e0"></center>
<br>

<form action="usercpi.php?a=<?=rand(20,99)?>28<?=rand(30,99)?>" method="post" enctype="multipart/form-data">
<input type="hidden" name="d" value="restore">
<b style="color:red">»</b><b> بازگردانی پشتیبان وبلاگ</b><br>
<br>
<input type=file name=t1 size=40>
<br>
<input type=submit value=" تایید " style="margin:6px 250px 0 0;">
</form>



خلاصه هر قسمتی که باید تغییر کنه رو بهم بگین ممنون میشم ازتون.امید وارم ایندفعه دسته خالی بر نگردم.

امیـرحسین
چهارشنبه 25 شهریور 1388, 05:45 صبح
شما یه صفحه کد گذاشتی بعد گله می کنی که چرا کسی جوابت رو نمیده؟ کدهات رو چک کن. اون بخشی که اشکال داره و اینجا بذار.
فکر کنم اگر شرط بعد از AND رو توی IF اول حذف کنی و دو سه خط پایینترش بجای $_FILES['t1']['tmp_name'] آدرس فایل رو قرار بدی کافی باشه.