1*f82bbc90SS.Chekanov<?php 2*f82bbc90SS.Chekanov 3*f82bbc90SS.Chekanov/* Process submit request. 4*f82bbc90SS.Chekanov * S.Chekanov 5*f82bbc90SS.Chekanov**/ 6*f82bbc90SS.Chekanov 7*f82bbc90SS.Chekanov 8*f82bbc90SS.Chekanovif(isset($_POST["submit"]) == false && isset($_POST["download"]) == false ) die("Nothing to post"); 9*f82bbc90SS.Chekanovif(isset($_POST["zwifile"]) == false) die("No ZWI name"); 10*f82bbc90SS.Chekanovif(isset($_POST["posturl"]) == false) die("No post URL name"); 11*f82bbc90SS.Chekanovif(isset($_POST["postkey"]) == false) die("No key for URL"); 12*f82bbc90SS.Chekanovif(isset($_POST["zwititle"]) == false) die("No title"); 13*f82bbc90SS.Chekanovif(isset($_POST["backlink"]) == false) die("No backlink"); 14*f82bbc90SS.Chekanovif(isset($_POST["extpath"]) == false) die("No extension path"); 15*f82bbc90SS.Chekanovif(isset($_POST["permission"]) == false) die("No permission is given"); 16*f82bbc90SS.Chekanov 17*f82bbc90SS.Chekanov 18*f82bbc90SS.Chekanov//print("OK"); 19*f82bbc90SS.Chekanov// 0 means nothing to be done 20*f82bbc90SS.Chekanov$Xsubmit=0; 21*f82bbc90SS.Chekanovif(isset($_POST["submit"]) == true) $Xsubmit=1; // send to network 22*f82bbc90SS.Chekanovif(isset($_POST["download"]) == true) $Xsubmit=2; // download 23*f82bbc90SS.Chekanovif ($Xsubmit == 0) die("No action"); 24*f82bbc90SS.Chekanov 25*f82bbc90SS.Chekanov 26*f82bbc90SS.Chekanov $zwifile=$_POST['zwifile']; 27*f82bbc90SS.Chekanov if (file_exists($zwifile)==false) die("ZWI file is missing: $zwifile"); 28*f82bbc90SS.Chekanov $filePath=$_POST['zwifile']; 29*f82bbc90SS.Chekanov $target_url= $_POST['posturl'] . 'put.php'; 30*f82bbc90SS.Chekanov $postkey=$_POST["postkey"]; 31*f82bbc90SS.Chekanov $title=$_POST["zwititle"]; 32*f82bbc90SS.Chekanov $backlink=$_POST["backlink"]; 33*f82bbc90SS.Chekanov $extpath=$_POST["extpath"]; 34*f82bbc90SS.Chekanov $permission=$_POST["permission"]; 35*f82bbc90SS.Chekanov 36*f82bbc90SS.Chekanov 37*f82bbc90SS.Chekanov// download first 38*f82bbc90SS.Chekanovif ($Xsubmit == 2){ 39*f82bbc90SS.Chekanov header('Content-Description: File Transfer'); 40*f82bbc90SS.Chekanov if (headers_sent()){ 41*f82bbc90SS.Chekanov echo ('Some data has already been output to browser, can\'t send ZWI file'); 42*f82bbc90SS.Chekanov exit(); 43*f82bbc90SS.Chekanov } 44*f82bbc90SS.Chekanov 45*f82bbc90SS.Chekanov 46*f82bbc90SS.Chekanov header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 47*f82bbc90SS.Chekanov header('Content-Type: application/force-download'); 48*f82bbc90SS.Chekanov //header("Content-Transfer-Encoding: Binary"); 49*f82bbc90SS.Chekanov header("Content-type: application/zip"); 50*f82bbc90SS.Chekanov header("Content-disposition: attachment; filename=\"" . basename($zwifile) . "\""); 51*f82bbc90SS.Chekanov readfile($zwifile); 52*f82bbc90SS.Chekanov //unlink($zwifile); // delete file 53*f82bbc90SS.Chekanov //die(); 54*f82bbc90SS.Chekanov //echo "<script type='text/javascript'>window.location.replace('" . $newlink . "');</script>"; 55*f82bbc90SS.Chekanov 56*f82bbc90SS.Chekanov} 57*f82bbc90SS.Chekanov 58*f82bbc90SS.Chekanov 59*f82bbc90SS.Chekanov 60*f82bbc90SS.Chekanov// submit 61*f82bbc90SS.Chekanovif ($Xsubmit == 1){ 62*f82bbc90SS.Chekanov 63*f82bbc90SS.Chekanov $ch = curl_init(); 64*f82bbc90SS.Chekanov curl_setopt($ch, CURLOPT_URL,$target_url); 65*f82bbc90SS.Chekanov curl_setopt($ch, CURLOPT_POST,true); 66*f82bbc90SS.Chekanov curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 67*f82bbc90SS.Chekanov //If the function curl_file_create exists 68*f82bbc90SS.Chekanov if(function_exists('curl_file_create')){ 69*f82bbc90SS.Chekanov //Use the recommended way, creating a CURLFile object. 70*f82bbc90SS.Chekanov $filePath = curl_file_create($filePath); 71*f82bbc90SS.Chekanov } else{ 72*f82bbc90SS.Chekanov //Otherwise, do it the old way. 73*f82bbc90SS.Chekanov //Get the canonicalized pathname of our file and prepend 74*f82bbc90SS.Chekanov //the @ character. 75*f82bbc90SS.Chekanov $filePath = '@' . realpath($filePath); 76*f82bbc90SS.Chekanov //Turn off SAFE UPLOAD so that it accepts files 77*f82bbc90SS.Chekanov //starting with an @ 78*f82bbc90SS.Chekanov curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); 79*f82bbc90SS.Chekanov } 80*f82bbc90SS.Chekanov 81*f82bbc90SS.Chekanov //Setup our POST fields 82*f82bbc90SS.Chekanov $postFields = array( 83*f82bbc90SS.Chekanov 'zwi' => $filePath, 84*f82bbc90SS.Chekanov 'pass' => $postkey 85*f82bbc90SS.Chekanov ); 86*f82bbc90SS.Chekanov curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); 87*f82bbc90SS.Chekanov $txt=curl_exec($ch); 88*f82bbc90SS.Chekanov curl_close($ch); 89*f82bbc90SS.Chekanov $pos1 = strpos($txt, "successfully"); 90*f82bbc90SS.Chekanov $pos2 = strpos($txt, "updated"); 91*f82bbc90SS.Chekanov 92*f82bbc90SS.Chekanov if ($txt == false) 93*f82bbc90SS.Chekanov die("Failed to send the ZWI file. No server response?"); 94*f82bbc90SS.Chekanov //$isOK=false; 95*f82bbc90SS.Chekanov //if ($pos1 !== false ) $isOK=true; 96*f82bbc90SS.Chekanov //if ($pos2 !== false ) $isOK=true; 97*f82bbc90SS.Chekanov 98*f82bbc90SS.Chekanov //if ($isOK == false) 99*f82bbc90SS.Chekanov // die("Failed to send the ZWI file. No server response? File: ". $filePath. "mess:" . $txt); 100*f82bbc90SS.Chekanov 101*f82bbc90SS.Chekanov $txt=nl2br($txt); 102*f82bbc90SS.Chekanov print($txt); 103*f82bbc90SS.Chekanov 104*f82bbc90SS.Chekanov 105*f82bbc90SS.Chekanov$str = <<<EOD 106*f82bbc90SS.Chekanov<!DOCTYPE html> 107*f82bbc90SS.Chekanov<html class="client-nojs" lang="en" dir="ltr"> 108*f82bbc90SS.Chekanov<head> 109*f82bbc90SS.Chekanov<meta charset="UTF-8"/> 110*f82bbc90SS.Chekanov<title>ZWI confirm</title> 111*f82bbc90SS.Chekanov<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.25, maximum-scale=5.0"/> 112*f82bbc90SS.Chekanov<link rel="stylesheet" type="text/css" href="$extpath/css/zwimaker.css" /> 113*f82bbc90SS.Chekanov</head> 114*f82bbc90SS.Chekanov<body> 115*f82bbc90SS.Chekanov<p> 116*f82bbc90SS.Chekanov</p> 117*f82bbc90SS.Chekanov<center> 118*f82bbc90SS.Chekanov<h3>'$title' submitted!</h3> 119*f82bbc90SS.Chekanov<p> 120*f82bbc90SS.Chekanov</p> 121*f82bbc90SS.ChekanovRead this article in the Encyclosphere Network in 10 minutes using 122*f82bbc90SS.Chekanov<a href="https://encycloreader.org/">EncycloReader</a> created by the <a href='https://encyclosphere.org/about/'><img src='$extpath/img/Encyclosphere_logo24px.png' alt="Encyclosphere" style='vertical-align:middle;margin:0;'/>KSF</a> 123*f82bbc90SS.Chekanov<p> 124*f82bbc90SS.Chekanov</p> 125*f82bbc90SS.Chekanov<form> 126*f82bbc90SS.Chekanov<input type="reset" name="reset" value="Back" onClick="window.location='$backlink';" /> 127*f82bbc90SS.Chekanov</form> 128*f82bbc90SS.Chekanov<center> 129*f82bbc90SS.Chekanov</body> 130*f82bbc90SS.Chekanov</html> 131*f82bbc90SS.ChekanovEOD; 132*f82bbc90SS.Chekanov print($str); 133*f82bbc90SS.Chekanov //unlink($zwifile); // delete file 134*f82bbc90SS.Chekanov 135*f82bbc90SS.Chekanov} // end submit 136*f82bbc90SS.Chekanov 137*f82bbc90SS.Chekanov 138*f82bbc90SS.Chekanov 139*f82bbc90SS.Chekanov 140*f82bbc90SS.Chekanov 141*f82bbc90SS.Chekanov 142*f82bbc90SS.Chekanov 143*f82bbc90SS.Chekanov?> 144