Changeset - 9897baead6b3
[Not reviewed]
default
0 3 0
Nathan Brink (binki) - 14 years ago 2011-04-05 23:34:59
ohnobinki@ohnopublishing.net
Record the referrer URL and the list of saved_schedules temporarily associated with a user upon feedback submission. Fix some session handling with securimage (captchas).
3 files changed with 49 insertions and 4 deletions:
0 comments (0 inline, 0 general)
captcha_img.php
Show inline comments
 
@@ -14,15 +14,18 @@
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 * GNU Affero General Public License for more details.
 
 *
 
 * You should have received a copy of the GNU Affero General Public License
 
 * along with SlatePermutate.  If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
require_once('inc/class.page.php');
 

	
 
if (!$use_captcha)
 
  page::show_404('Captchas are disabled.');
 

	
 
require('securimage/securimage.php');
 
/* Make sure that securimage works without our own sessions */
 
page::session_start();
 

	
 
require_once 'securimage/securimage.php';
 
$securimage = new Securimage();
 
echo $securimage->show();
feedback-submit.php
Show inline comments
 
@@ -11,49 +11,58 @@
 
 *
 
 * SlatePermutate is distributed in the hope that it will be useful,
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 * GNU Affero General Public License for more details.
 
 *
 
 * You should have received a copy of the GNU Affero General Public License
 
 * along with SlatePermutate.  If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
  include_once 'inc/class.page.php';
 

	
 
/* Make sure we start our own named session and to not let securimage create its own :-p */
 
page::session_start();
 

	
 
if ($use_captcha)
 
  {
 
    require_once('securimage/securimage.php');
 
    require_once 'securimage/securimage.php';
 
    $securimage = new Securimage();
 
  }
 

	
 
$feedbackpage = page::page_create('Feedback');
 
$feedbackpage->head();
 
$subject = '[SlatePermutate] - Feedback';
 
?>
 

	
 
<h3>Thanks!</h3>
 

	
 
<?php
 
Page::session_start();
 

	
 
$ip = $_POST['ip'];
 
$httpagent = $_POST['httpagent'];
 
$fromdom = $_POST['fromdom'];
 
$nameis = $_POST['nameis'];
 
$visitormail = $_POST['visitormail'];
 
$school = $_POST['school'];
 
$school_id = isset($_SESSION['school']) ? $_SESSION['school'] : '';
 
$feedback = $_POST['feedback'];
 
$rating = $_POST['rating'];
 
$referrer = $_POST['referrer'];
 

	
 
$saved_schedules = array();
 
if (!empty($_SESSION['saved']))
 
  foreach ($_SESSION['saved'] as $key => $val)
 
    $saved_schedules[] = $key;
 
$saved_schedules = implode(', ', $saved_schedules);
 

	
 
$reject = FALSE;
 

	
 
if (eregi('http:', $feedback)) { 
 
  echo '<p>Please do not include URLs in your submission! Please click "back" and try again.</p>';
 
  $reject = TRUE;
 
}
 
if (empty($visitormail) || !preg_match('/^[^@]+@[^@]+\.[^@]+$/', $visitormail)) {
 
  echo '<p>Please click "back" and enter valid e-mail address.</p>';
 
  $reject = TRUE;
 
}
 
if(empty($nameis) || empty($feedback) || empty($visitormail)) {
 
@@ -75,24 +84,26 @@ if (!$reject)
 
  {
 
    $feedback = stripcslashes($feedback);
 

	
 
    $message = date('l, F j, Y, g:i a') ."
 
From: $nameis ($visitormail)
 
School: $school ($school_id)\n
 
Rating: $rating 
 
Feedback: $feedback 
 
\n
 
IP = $ip 
 
Browser = $httpagent 
 
Deployment = $fromdom
 
Referrer = $referrer
 
saved_schedules = $saved_schedules
 
";
 

	
 
    $from = "From: $visitormail\r\n";
 

	
 
    /* $feedback_emails has its default set in inc/class.page.inc, can be set in config.inc */
 
    foreach($feedback_emails as $toaddr)
 
      {
 
	mail($toaddr, $subject, $message, $from);
 
      }
 

	
 
    if($feedback_disk_log) {
 
      $file = fopen($feedback_disk_log_file,'a') or die("Can't open file.");
feedback.php
Show inline comments
 
@@ -10,65 +10,96 @@
 
 * (at your option) any later version.
 
 *
 
 * SlatePermutate is distributed in the hope that it will be useful,
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 * GNU Affero General Public License for more details.
 
 *
 
 * You should have received a copy of the GNU Affero General Public License
 
 * along with SlatePermutate.  If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
include_once 'inc/class.page.php'; 
 
require_once 'inc/class.schedule.php';
 

	
 
$feedbackpage = page::page_create('Feedback');
 
$feedbackpage->head();
 
$ipi = $_SERVER['REMOTE_ADDR'];
 
$fromdom = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
 
$httpagenti = $_SERVER['HTTP_USER_AGENT'];
 

	
 
$referrer = '';
 
if (!empty($_SERVER['HTTP_REFERER']))
 
  $referrer = $_SERVER['HTTP_REFERER'];
 
if (!empty($_POST['referrer']))
 
  $referrer = $_POST['referrer'];
 

	
 
$saved_schedules = array();
 
if (!empty($_SESSION['saved']))
 
  foreach ($_SESSION['saved'] as $key => $val)
 
    $saved_schedules[] = '<a href="' . htmlentities(Schedule::url($key)) . '">' . htmlentities($key) . '</a>';
 
$saved_schedules = implode(', ', $saved_schedules);
 

	
 
/* some prefill support */
 
$school = $feedbackpage->get_school();
 
$feedback_text = '';
 
if (isset($_GET['feedback']))
 
  $feedback_text = $_GET['feedback'];
 

	
 
$n = "\n";
 

	
 
?>
 

	
 
<form action="feedback-submit.php" method="post">
 
<input type="hidden" name="ip" value="<?php echo $ipi ?>" />
 
<input type="hidden" name="fromdom" value="<?php echo $fromdom ?>" />
 
<input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />
 

	
 
<table>
 
<tr><td><label for="nameis">Name: </label></td><td><input type="text" name="nameis" size="20" /></td></tr>
 
<tr><td><label for="visitormail">Email:</label></td><td><input type="text" name="visitormail" size="20" /> <span class="graytext">(if you want us to get back to you)</span></td></tr>
 
<tr><td><label for="visitormail">Email:</label></td><td><input type="text" name="visitormail" size="20" /></td></tr>
 
<tr><td><label for="school">School: </label></td><td><input type="text" name="school" value="<?php echo htmlentities($school['id']); ?>" size="20" /> <span class="graytext">(if relevant to your feedback)</span></td></tr>
 
  <tr><td><label for="referrer">Relevant Page:</label></td><td><input type="text" name="referrer" value="<?php echo htmlentities($referrer); ?>" size="20" /> <span class="graytext">(if relevant to your feedback)</span></td></tr>
 
</table>
 
<br/> Overall Rating:<br/> <input checked="checked" name="rating" type="radio" value="Great" />Great <input name="rating" type="radio" value="Usable" />Usable  <input name="rating" type="radio" value="Buggy/Hard to Use" />Buggy/Hard to Use <input name="rating" type="radio" value="Don't know" />Don't Know <!-- ' -->
 

	
 
<br /><br />
 
<h3>General Comments</h3>
 
<p>
 
  <textarea name="feedback" rows="6" cols="40"><?php echo htmlentities($feedback_text); ?></textarea>
 
</p>
 

	
 
<?php
 
    if ($use_captcha)
 
    {
 
      echo '' . $n
 
      . '  <h3>Captcha</h3>' . $n
 
      . '<p>' . $n
 
      . '  <img id="captcha_img" src="captcha_img.php" alt="captcha image" /><br />' . $n
 
      . '  <label for="captcha_code">Enter the obfuscated text from the above image:</label><br />' . $n
 
      . '  <input name="captcha_code" type="textbox" />' . $n
 
      . '</p>' . $n;
 
    }
 
?>
 

	
 
<input class="gray" type="submit" value="Send Feedback" />
 

	
 
<?php if (!empty($saved_schedules)): ?>
 
<p class="graytext" style="margin-top: 20pt;">
 
  The following information will also be submitted when you send feedback:
 
</p>
 
<table class="graytext">
 
  <tr>
 
    <th>Type</th>
 
    <th>Value</th>
 
  </tr>
 
  <tr>
 
  <td>Saved Schedules:</td>
 
    <td><?php echo $saved_schedules; ?></td>
 
  </tr>
 
</table>
 
<?php endif; ?>
 

	
 
</form>
 

	
 
<?php
 
$feedbackpage->foot();
0 comments (0 inline, 0 general)