xref: /plugin/zwidoku/zwipush.php (revision f82bbc904bd835fc66a3f52ffaef251433904ec2)
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