Solved

How do I clear $_GET from my url?

Posted on 2010-09-05
7
201 Views
Last Modified: 2012-05-10
Hi,

Bit tricky to explain... I have a script which when submited, will return to the same page with the $_GET variables. If I submit the page again, I need it to forget the original variables and replace the url with the new variables.

So the url might look like http://www.mysite.com?id=123&price=1099

When i resubmit the form with different variables, e.g. ID = 567 & Price = 2083 i want the url to look like: http://www.mysite.com?id=567&price=2083

However what actually comes up is http://www.mysite.com?id=567&price=2083&id=123&price=1099.

Can anyone help?

Thanks!
0
Comment
Question by:bookedy
7 Comments
 
LVL 43

Expert Comment

by:Chris Stanyon
ID: 33606780
I can only guess that the ACTION of the form is being dynamically created, maybe using something like $_SERVER['PHP_SELF']. Each time the form is submitted to itself, the ACTION contains the current GET variables and the new GET variables get added to it.

Check on how you're setting the form action, and you mind find your problem.

Without seeing code, it's difficult to be precise.


0
 
LVL 15

Expert Comment

by:gplana
ID: 33606803
Also, could I suggest you to use POST method instead of GET ?

POST method has some advantages, such as hidding the variable values from the URL, which is more secure.
0
 
LVL 3

Expert Comment

by:grantunwin
ID: 33606809
Just completely remove the       action=""          section of your form tag.

The form wil then submit to the root file address without the query string.
0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 

Author Comment

by:bookedy
ID: 33606821
@chrisstanyon - you are write in the dynamic form. the code i have is below.


<?php
mysql_select_db($database_bookedy, $bookedy);
$query_emergency = "SELECT * FROM emergency";
$emergency = mysql_query($query_emergency, $bookedy) or die(mysql_error());
$row_emergency = mysql_fetch_assoc($emergency);
$totalRows_emergency = mysql_num_rows($emergency);

$colname_booking = "-1";
if (isset($_GET['id'])) {
  $colname_booking = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($database_bookedy, $bookedy);
$query_booking = sprintf("SELECT * FROM booking WHERE bookingid = %s", $colname_booking);
$booking = mysql_query($query_booking, $bookedy) or die(mysql_error());
$row_booking = mysql_fetch_assoc($booking);
$totalRows_booking = mysql_num_rows($booking);
?>
<?php $bookingid = $row_booking['bookingid']; ?>
<?php
$paxno = $_GET['pax']+1;
$paxget = $_GET['pax'];
unset($_GET);
if ($row_booking['pax']==$paxget) {
$nexturl = "https://www.bookedy.com/booking/step3.php?id=$bookingid";
$button = "2";
}
else
{
$nexturl = "https://www.bookedy.com/booking/step2b.php?id=$bookingid&pax=$paxno";
$button = "1";
}
?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
  $insertSQL = sprintf("INSERT INTO additionalpax (bookingid, title, firstname, lastname, dobday, dobmonth, dobyear, sex) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['bookingid'], "int"),
                       GetSQLValueString($_POST['title'], "int"),
                       GetSQLValueString($_POST['firstname'], "text"),
                       GetSQLValueString($_POST['lastname'], "text"),
                       GetSQLValueString($_POST['dobday'], "int"),
                       GetSQLValueString($_POST['dobmonth'], "int"),
                       GetSQLValueString($_POST['dobyear'], "int"),
                       GetSQLValueString($_POST['gender'], "text"));

  mysql_select_db($database_bookedy, $bookedy);
  $Result1 = mysql_query($insertSQL, $bookedy) or die(mysql_error());

  $insertGoTo = $nexturl;
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>

 <form id="form2" name="form2" method="POST" action="<?php echo $editFormAction; ?>">
                      <table width="90%">
                        <tr>
                          <td><div align="right"><strong>Title</strong></div></td>
                          <td><label>
                              <div align="left">
                                <select name="title" class="titleformbox" id="title">
                                  <option selected="selected">Title</option>
                                  <option value="Mr">Mr</option>
                                  <option value="Miss">Miss</option>
                                  <option value="Ms">Ms</option>
                                  <option value="Mrs">Mrs</option>
                                </select>
                              </div>
                            </label></td>
                        </tr>
                        <tr>
                          <td><div align="right"><strong>First Name</strong></div></td>
                          <td><label>
                              <div align="left">
                                <input name="firstname" type="text" class="formbox" id="firstname" />
                              </div>
                            </label></td>
                        </tr>
                        <tr>
                          <td><div align="right"><strong>Last Name</strong></div></td>
                          <td><div align="left">
                              <input name="lastname" type="text" class="formbox" id="lastname" />
                          </div></td>
                        </tr>
                        <tr>
                          <td><div align="right"></div></td>
                          <td><div align="left"></div></td>
                        </tr>
                        <tr>
                          <td><div align="right"><strong>Gender</strong></div></td>
                          <td><div align="left">
                              <select name="gender" class="genderformbox" id="gender">
                                <option selected="selected">Select</option>
                                <option value="Male">Male</option>
                                <option value="Female">Female</option>
                              </select>
                          </div></td>
                        </tr>
                        <tr>
                          <td><div align="right"><strong>Date of Birth </strong></div></td>
                          <td><div align="left">
                              <select name="dobday" class="genderformbox" id="dobday">
                                <option selected="selected">DD</option>
                                <option value="1">1</option>
                                <option value="2">2</option>
                                <option value="3">3</option>
                                <option value="4">4</option>
                                <option value="5">5</option>
                                <option value="6">6</option>
                                <option value="7">7</option>
                                <option value="8">8</option>
                                <option value="9">9</option>
                                <option value="10">10</option>
                                <option value="11">11</option>
                                <option value="12">12</option>
                                <option value="13">13</option>
                                <option value="14">14</option>
                                <option value="15">15</option>
                                <option value="16">16</option>
                                <option value="17">17</option>
                                <option value="18">18</option>
                                <option value="19">19</option>
                                <option value="20">20</option>
                                <option value="21">21</option>
                                <option value="22">22</option>
                                <option value="23">23</option>
                                <option value="24">24</option>
                                <option value="25">25</option>
                                <option value="26">26</option>
                                <option value="27">27</option>
                                <option value="28">28</option>
                                <option value="29">29</option>
                                <option value="30">30</option>
                                <option value="31">31</option>
                              </select>
                              <select name="dobmonth" class="genderformbox" id="dobmonth">
                                <option selected="selected">Month</option>
                                <option value="01">Jan</option>
                                <option value="02">Feb</option>
                                <option value="03">Mar</option>
                                <option value="04">Apr</option>
                                <option value="05">May</option>
                                <option value="06">Jun</option>
                                <option value="07">Jul</option>
                                <option value="08">Aug</option>
                                <option value="09">Sep</option>
                                <option value="10">Oct</option>
                                <option value="11">Nov</option>
                                <option value="12">Dec</option>
                              </select>
                              <select name="dobyear" class="genderformbox" id="select2">
                                <option selected="selected">Year</option>
                                <option value="2007">2007</option>
                                <option value="2006">2006</option>
                                <option value="2005">2005</option>
                                <option value="2004">2004</option>
                                <option value="2003">2003</option>
                                <option value="2002">2002</option>
                                <option value="2001">2001</option>
                                <option value="2000">2000</option>
                                <option value="1999">1999</option>
                                <option value="1998">1998</option>
                                <option value="1997">1997</option>
                                <option value="1996">1996</option>
                                <option value="1995">1995</option>
                                <option value="1994">1994</option>
                                <option value="1993">1993</option>
                                <option value="1992">1992</option>
                                <option value="1991">1991</option>
                                <option value="1990">1990</option>
                                <option value="1989">1989</option>
                                <option value="1988">1988</option>
                                <option value="1987">1987</option>
                                <option value="1986">1986</option>
                                <option value="1985">1985</option>
                                <option value="1984">1984</option>
                                <option value="1983">1983</option>
                                <option value="1982">1982</option>
                                <option value="1981">1981</option>
                                <option value="1980">1980</option>
                                <option value="1979">1979</option>
                                <option value="1978">1978</option>
                                <option value="1977">1977</option>
                                <option value="1976">1976</option>
                                <option value="1975">1975</option>
                                <option value="1974">1974</option>
                                <option value="1973">1973</option>
                                <option value="1972">1972</option>
                                <option value="1971">1971</option>
                                <option value="1970">1970</option>
                                <option value="1969">1969</option>
                                <option value="1968">1968</option>
                                <option value="1967">1967</option>
                                <option value="1966">1966</option>
                                <option value="1965">1965</option>
                                <option value="1964">1964</option>
                                <option value="1963">1963</option>
                                <option value="1962">1962</option>
                                <option value="1961">1961</option>
                                <option value="1960">1960</option>
                                <option value="1959">1959</option>
                                <option value="1958">1958</option>
                                <option value="1957">1957</option>
                                <option value="1956">1956</option>
                                <option value="1955">1955</option>
                                <option value="1954">1954</option>
                                <option value="1953">1953</option>
                                <option value="1952">1952</option>
                                <option value="1951">1951</option>
                                <option value="1950">1950</option>
                                <option value="1949">1949</option>
                                <option value="1948">1948</option>
                                <option value="1947">1947</option>
                                <option value="1946">1946</option>
                                <option value="1945">1945</option>
                                <option value="1944">1944</option>
                                <option value="1943">1943</option>
                                <option value="1942">1942</option>
                                <option value="1941">1941</option>
                                <option value="1940">1940</option>
                                <option value="1939">1939</option>
                                <option value="1938">1938</option>
                                <option value="1937">1937</option>
                                <option value="1936">1936</option>
                                <option value="1935">1935</option>
                                <option value="1934">1934</option>
                                <option value="1933">1933</option>
                                <option value="1932">1932</option>
                                <option value="1931">1931</option>
                                <option value="1930">1930</option>
                                <option value="1929">1929</option>
                                <option value="1928">1928</option>
                                <option value="1927">1927</option>
                                <option value="1926">1926</option>
                                <option value="1925">1925</option>
                                <option value="1924">1924</option>
                                <option value="1923">1923</option>
                                <option value="1922">1922</option>
                                <option value="1921">1921</option>
                                <option value="1920">1920</option>
                                <option value="1919">1919</option>
                                <option value="1918">1918</option>
                                <option value="1917">1917</option>
                                <option value="1916">1916</option>
                                <option value="1915">1915</option>
                                <option value="1914">1914</option>
                                <option value="1913">1913</option>
                                <option value="1912">1912</option>
                                <option value="1911">1911</option>
                                <option value="1910">1910</option>
                                <option value="1909">1909</option>
                                <option value="1908">1908</option>
                                <option value="1907">1907</option>
                                <option value="1906">1906</option>
                                <option value="1905">1905</option>
                                <option value="1904">1904</option>
                                <option value="1903">1903</option>
                                <option value="1902">1902</option>
                                <option value="1901">1901</option>
                                <option value="1900">1900</option>
                              </select>
                              </select>
                          </div></td>
                        </tr>
                        <tr>
                          <td><div align="right"></div></td>
                          <td><div align="left"></div></td>
                        </tr>
                        <tr>
                          <td>&nbsp;</td>
                          <td>&nbsp;</td>
                        </tr>
                        <tr>
                          <td>&nbsp;</td>
                          <td><input name="bookingid" type="hidden" id="bookingid" value="<?php echo $row_booking['bookingid']; ?>" />
                              <?php
							if ($button == "2")
							echo"<INPUT TYPE='image' SRC='../pictures/Checkoverview.JPG' HEIGHT='29' WIDTH='208' BORDER='0' ALT='Submit Form'>";
							elseif ($button =="1")
							echo"<INPUT TYPE='image' SRC='../pictures/addadditional.JPG' HEIGHT='37' WIDTH='236' BORDER='0' ALT='Submit Form'>";
							else
							echo "ERROR";
							?></td>
                        </tr>
                      </table>
                      <input type="hidden" name="MM_insert" value="form2">
                    </form>

Open in new window

0
 

Author Comment

by:bookedy
ID: 33606826
Sorry - i mean to stay you were right in the fact that i use a dynamic form but still not sure how to solve it.

Any ideas?

Thanks!
0
 
LVL 43

Accepted Solution

by:
Chris Stanyon earned 500 total points
ID: 33606852
@bookedy

Looking through your code, your form is being sent using POST, although there also appears to be some GET data passed through as well.

In your code, line 59-61 sets the form action to include the Query string (the GET variables).

Remove lines 60 - 62 and see how you get on. If you need these values passing to the next page, then add them into your form as Hidden Inputs.

Not really sure I follow your program logic completely, so removing those lines may break something else.


0
 

Author Comment

by:bookedy
ID: 33606870
I actually worked out a completly different method by taking the total number of columns found and it's worked but thanks for your help!
0

Featured Post

Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
html5 auto send email 7 26
Could you point what are the icon(s) available when using  jquery.validate.min.js  ? 8 27
Objects on Same Line 2 28
Delete HTML table rows 12 27
Someone recently asked me about how to display a progress indicator on a page while an iframe is loading. And I remember when I first came across this myself. It was a bit tricky to get my head around, but really, it's very simple. The most impor…
This article discusses four methods for overlaying images in a container on a web page
In this tutorial viewers will learn how to code links for mobile sites that, once clicked, send a call or text to a specified number. For a telephone link (once clicked, calls a number), begin with a normal "<a href=" link tag. For the href, specify…
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

815 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now