1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
5 File : $Source: /cvsroot/ijbswa/current/doc/webserver/actions/step2.php,v $
7 Purpose : Submit form for actions file feedback (step 2)
9 ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
11 $Id: step2.php,v 1.6 2002/04/02 07:22:19 oes Exp $
14 Revision 1.6 2002/04/02 07:22:19 oes
15 Elimnating duplicate images; using relative link for step3
17 Revision 1.4 2002/04/01 19:13:47 oes
18 Extended, fixed bugs, beefed up design, made IE-safe
20 Revision 1.1 2002/03/30 03:20:30 oes
21 Added Feedback mechanism for actions file
24 Written by and Copyright (C) 2002 the SourceForge
25 Privoxy team. http://www.privoxy.org/
27 This program is free software; you can redistribute it
28 and/or modify it under the terms of the GNU General
29 Public License as published by the Free Software
30 Foundation; either version 2 of the License, or (at
31 your option) any later version.
33 This program is distributed in the hope that it will
34 be useful, but WITHOUT ANY WARRANTY; without even the
35 implied warranty of MERCHANTABILITY or FITNESS FOR A
36 PARTICULAR PURPOSE. See the GNU General Public
37 License for more details.
39 The GNU General Public License should be included with
40 this file. If not, you can view it at
41 http://www.gnu.org/copyleft/gpl.html
42 or write to the Free Software Foundation, Inc., 59
43 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
48 <meta http-equiv="Content-Style-Type" content="text/css">
49 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
50 <style type="text/css">
51 body,td,th { font-family:helvetica,helv,arial,sans-serif; font-size:10px }
52 body { background-color: #ffffff; color: #000000 }
53 h1 { font-size: 140%; marign: 0px; }
54 h2 { font-size: 120%; marign: 0px; }
55 div.title { background-color:#dddddd; border:solid black 1px; margin:20px; padding:20px; }
56 div.box { background-color:#eeeeee; border:solid black 1px; margin:20px; padding:20px; }
57 div.infobox { background-color:#ccccff; border:solid black 1px; margin:20px; padding:20px; width: 60%; }
58 div.errorbox { background-color:#ffdddd; border:solid black 1px; margin:20px; padding:20px; width: 60%; }
61 <script language="javascript" type="text/javascript">
64 // Could be as easy as style="max-wdith: 300px; max-height..." inside the
65 // <img> tag, but IE doesn't do that. Setting the values directly also
66 // screws IE for some weird reason. All praise MS.
69 function prettyscale(image)
74 if (image.width > 300)
79 if (image.height > 50)
89 if (image.height < 20)
96 image.width = newwidth
101 image.height = newheight
114 //error_reporting(E_ALL);
115 error_reporting(E_NONE);
119 * Cannot start with step 2:
121 if (!isset($referrer_url))
123 echo (" <title>Invalid Feedback Submission</title>
126 <div class=\"title\"><h1>Invalid Feedback Submission</h1></div>
128 <div class=\"errorbox\">When submitting your feedback please start with
129 <a href=\"index.php\">step 1</a>.
132 <p>Valid <a href=\"http://validator.w3.org/\">HTML 4.01 Transitional</a></p>
140 * Cannot work on unknown problem:
142 if (!isset($problem) || $problem == "INVALID")
144 echo (" <title>Invalid Feedback Submission</title>
147 <div class=\"title\"><h1>Invalid Feedback Submission</h1></div>
149 <div class=\"errorbox\">You need to select the nature of the problem in
150 <a href=\"javascript:history.back();\">step 1</a>.
153 <p>Valid <a href=\"http://validator.w3.org/\">HTML 4.01 Transitional</a></p>
161 * Check if URL really exists and buffer its contents:
163 * FIXME: Curl is not installed on SF; Filed as Alexandria
164 * Feature Request #537014.
165 * PHP's fopen() supports URLs, but it seems that
166 * curls options for Timeouts and HTTP error handling
167 * are not supported by fopen().
169 $ch = curl_init ($referrer_url);
171 curl_setopt ($ch, CURLOPT_HEADER, 0);
172 curl_setopt ($ch, CURLOPT_FAILONERROR, 1);
173 curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
174 curl_setopt ($ch, CURLOPT_TIMEOUT, 20);
177 $success = curl_exec ($ch);
178 $page = ob_get_contents();
185 echo (" <title>Invalid Feedback Submission</title>
188 <div class=\"title\"><h1>Invalid Feedback Submission</h1></div>
190 <div class=\"errorbox\">
191 <p>The URL that you entered (<a href=\"$referrer_url\">$referrer_url</a>)
192 <br>could not be retrieved.
194 <p>Make sure the URL is correct and publicly accessible.</p>
195 <p><a href=\"javascript:history.back();\">Back to step 1</a></p>
198 <p>Valid <a href=\"http://validator.w3.org/\">HTML 4.01 Transitional</a></p>
206 * Create description from problem code:
210 case "P1": $problem_description="an advertisment was not blocked"; break;
211 case "P2": $problem_description="an innocent image was blocked"; break;
212 case "P3": $problem_description="the whole page was erraneously blocked"; break;
213 case "P4": $problem_description="the page needs popups but they don't work"; break;
214 case "P5": $problem_description="a problem occured"; break;
215 default: $problem_description="AN UNPROCESSABLE PROBLEM OCCURED";
220 <title>Privoxy Action List Feedback - Step 2 of 2</title>
226 <a href="http://www.privoxy.org" target="_blank">Privoxy</a> Action List Feedback - Step 2 of 2
231 <b>You are about to report that <?php echo ($problem_description) ?> on
232 <a href="<?php echo ($referrer_url) ?>"><?php echo ($referrer_url) ?></a>.</b>
236 <form action="step3.php" method="post">
238 <input type="hidden" name="problem" value="<?php echo ($problem) ?>">
239 <input type="hidden" name="referrer_url" value="<?php echo ($referrer_url) ?>">
247 * Create / suppress for elements depending on type of
250 if ($problem != "P1")
257 * Extract all image links from page, make them
258 * absolute, and present them (scaled to reasonable size)
259 * in a table for the user to select
261 preg_match_all('|<img\s+[^>]*?src=[\'"]?(.*?)[\'" >]|i', $page, $matches);
262 $image_urls = array_values(array_unique($matches[1]));
263 $count = count($image_urls);
268 * Base URL ends in slash: don't touch.
270 if (strpos(strrev($referrer_url), '/') == 0)
272 $referrer_base = $referrer_url;
275 * Else grab URL up to last slash as base.
279 $referrer_base = substr($referrer_url, 0, -strpos(strrev($referrer_url), '/'));
283 * Get the protocol + host info for relative links
284 * that start with slash. FIXME: Cut trailing slash off!
286 $referrer_host = "http://".strrev(strrchr(strrev(substr($referrer_url, 7)), "/"));
289 * Open section in <dl>; Open table:
291 echo (" <dt><b>Choose the images you want blocked from the following list:</b></dt>
294 <input type=\"hidden\" name=\"num_images\" value=\"$count\">
295 <table border=\"0\" cellpadding=\"0\" cellspacing=\"4\">\n");
297 * Print one table row for each image found:
299 for ($i=0; $i< $count; $i++)
301 $image_url = $image_urls[$i];
304 * Make image URLs absolute:
306 if (strncmp("http://", $image_url, 7))
308 if ($image_url{0} == "/")
310 $image_url = $referrer_host.$image_url;
314 $image_url = $referrer_base.$image_url;
323 <input type=\"checkbox\" name=\"block_image[$i]\" value=\"off\">
326 <a href=\"$image_url\">$image_url</a>:
329 <input type=\"hidden\" name=\"image_url[$i]\" value=\"$image_url\">
334 <img onload=\"prettyscale(this);\" src=\"$image_url\" alt=\"banner or not?\">
342 <b>If the banner that you saw is not listed above, enter the URL here</b>\n");
347 <b>URL of the advertisment image:</b>\n");
353 <br><i>Hint: right-click the image, select "Copy image location" and paste the URL here.</i>
357 <input name="manual_image_url" type="text" size="45" maxlength="255">
361 <?php if($problem != "P1") echo ("-->") ?>
363 <?php if($problem != "P2") echo ("<!--") ?>
366 <p><b>URL of the innocent image:</b>
367 <br><i>Hint: right-click the image, select "Copy image location" and paste the URL here.
368 <br>This may not work if the image was blocked by size or if +image-blocker is set to redirect.</i>
373 <input name="image_url" value="unknown" type="text" size="45" maxlength="255">
377 <?php if($problem != "P2") echo ("-->") ?>
379 <dt><b>Severity:</b></dt>
382 <select name="severity">
383 <option value="3">drives me crazy</option>
384 <option selected value="2">normal</option>
385 <option value="1">cosmetic</option>
391 <b>Remarks:</b> <i>(optional)</i>
395 <textarea wrap="hard" style="font-size: 10px" name="remarks" cols="35" rows="3">None.</textarea>
400 <b>Your Name:</b> <i>(optional)</i>
404 <input name="name" size="45">
410 <input type="submit" value="Submit">
417 <p>Valid <a href="http://validator.w3.org/">HTML 4.01 Transitional</a></p>