Jump to content

Having some trouble, would like an opinion


Mattio2187

Recommended Posts

Bare with me, this is a bit tricky

 

So basically I already have a form with 3 radio buttons that checks for a cookie with assigned IP. This is to prevent the chances that someone has deleted their cookies, or changed their ip, or neither can be found. There are multiple result/returns based upon what the situation happens to be, but i'm really only worried about two: The form has been submitted, or You have already voted.

 

I would like to have the form submit, values placed in the database, but without the page reloading. Instead i would like to return a message to the user, whether in an alert or revealed on the page, stating that the form was submitted or one of the other messages included as a part of the ip/cookie check. I've tried incorporating a few other methods from some other tutorials involving jquery/ajax but can't seem to figure this one out.

 

Any feedback would be greatly appreciated.

 

 

 

 

HTML code:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

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

<title>Untitled Document</title>

</head>

 

<style type="text/css">

 

.selectbox {

  width:  100px;

  height:  100px;

  border:  1px solid red;

  float:  left;

  margin:  20px;

  }

 

</style>

 

 

<body>

 

<form action="vote.php" method="post">

<div class="selectbox">Choice 1: <input type="radio" name="picked" value="one"/></div>

<div class="selectbox">Choice 2: <input type="radio" name="picked" value="two"/></div>

<div class="selectbox">Choice 3: <input type="radio" name="picked" value="three"/></div>

<input type="submit" />

</form>

 

</body>

</html>

 

 

 

 

 

 

 

 

 

 

 

PHP Code:

 

 

<?php

 

 

$con = mysql_connect("localhost","mattsol1_user","user");

 

if (!$con)

  {

  die('Could not connect: ' . mysql_error());

  }

 

mysql_select_db("mattsol1_pollthree", $con);

 

$theVote = $_POST[picked];

 

if(isset($_COOKIE['ip']) && !empty($_COOKIE['ip'])) {

    if(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) {

          if($_COOKIE['ip'] == $_SERVER['REMOTE_ADDR']) {

              $ipAddr = $_COOKIE['ip'];

          } else {

              setcookie("ip", FALSE);

              setcookie("ip", $_SERVER['REMOTE_ADDR']);

              $ipAddr = $_SERVER['REMOTE_ADDR'];

              die("It appears your IP has changed since you last voted or you played around with your cookies. Either way, you're getting a new cookie. If you don't know why this is happening, do not worry - you did nothing wrong. <a href='path/to/your/poll/mainpage/'>Return home</a>");

          }

    } else {

          die("It appears I cannot grab your IP address and thus cannot tell if you voted already.");

    }

} else {

    $ipAddr = (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']);

    setcookie("ip", $ipAddr);

}

 

$ipCheck = mysql_query("SELECT * FROM `vote` WHERE `ip` = '" . mysql_real_escape_string($ipAddr) . "'");

if(mysql_num_rows($ipCheck) > 0) {

    die("You have already voted in this poll. Good day!");

} else {

    $sql= "INSERT INTO `vote` (`ip`, `picked`) VALUES ('$ipAddr', '$theVote')";

}

 

if (!mysql_query($sql,$con))

  {

  die('Error: ' . mysql_error());

  }

echo "Thank You";

 

mysql_close($con);

 

?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.