Page 2 of 2 FirstFirst 12
Results 11 to 14 of 14

Thread: can't redirect back to my requested page

  1. #11
    Join Date
    Sep 2008
    Posts
    36
    Thanks
    15
    Thanked 0 Times in 0 Posts

    Default

    you are awesome BabblingItjit

    here is my confing.php:
    PHP Code:
    <?php
    $dbhost 
    'myserverIP';
    $dbuser 'myusername';
    $dbpass 'mypassord';
    $dbname 'mydatabasename';
    ?>
    and here is my opendb.php:
    PHP Code:
    <?php
    $conn 
    mysql_connect($dbhost$dbuser$dbpass) or die 
                  (
    'Error connecting to mysql');
    mysql_select_db($dbname);
    ?>
    and here is my guestbook.php:
    PHP Code:
    <?php 
    include 'config.php';
    include 
    'opendb.php';

    if(isset(
    $_POST['btnSign']))
    {

       
    $name    trim($_POST['txtName']);
       
    $email   trim($_POST['txtEmail']);
       
    $url     trim($_POST['txtUrl']);
       
    $message trim($_POST['mtxMessage']);

       if(!
    get_magic_quotes_gpc())
       {
          
    $message addslashes($message);
       }


       
    // if the visitor do not enter the url
       // set $url to an empty string
       
    if ($url == 'http://')
       {
          
    $url '';
       }

       
    $query "INSERT INTO guestbook (name, 
                                        email, 
                                        url, 
                                        message, 
                                        entry_date) 
                 VALUES ('
    $name', 
                         '
    $email', 
                         '
    $url', 
                         '
    $message', 
                         current_date)"
    ;

       
    mysql_query($query) or die('Error, query failed');

       
    header('Location: ' $_SERVER['REQUEST_URI']);
       exit;
    }

    ?>
    please note that all these files are located in a directory named "Library"

    and then in my root directory i have my HTML file which is below:
    HTML Code:
    <html>
    <head>
    <title>Guestbook</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript">
    /*
    	This function is called when
    	the 'Sign Guestbook' button is pressed
    	Output : true if all input are correct, false otherwise
    */
    function checkForm()
    {
    	// the variables below are assigned to each
    	// form input 
    	var gname, gemail, gurl, gmessage;
    	with(window.document.guestform)
    	{
    		gname    = txtName;
    		gemail   = txtEmail;
    		gurl     = txtUrl;
    		gmessage = mtxMessage;
    	}
    	
    	// if name is empty alert the visitor
    	if(trim(gname.value) == '')
    	{
    		alert('Please enter your name');
    		gname.focus();
    		return false;
    	}
    	// alert the visitor if email format is not correct 
    	else if(trim(gemail.value) != '' && !isEmail(trim(gemail.value)))
    	{
    		alert('Please enter a valid email address or leave it blank');
    		gemail.focus();
    		return false;
    	}
    	// alert the visitor if message is empty
    	else if(trim(gmessage.value) == '')
    	{
    		alert('Please enter your message');
    		gmessage.focus();
    		return false;
    	}
    	else
    	{
    		// when all input are correct 
    		// return true so the form will submit		
    		return true;
    	}
    }
    
    /*
    Strip whitespace from the beginning and end of a string
    Input  : a string
    Output : the trimmed string
    */
    function trim(str)
    {
    	return str.replace(/^\s+|\s+$/g,'');
    }
    
    /*
    Check if a string is in valid email format. 
    Input  : the string to check
    Output : true if the string is a valid email address, false otherwise.
    */
    function isEmail(str)
    {
    	var regex = /^[-_.a-z0-9]+@(([-a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
    	return regex.test(str);
    }
    </script>
    </head>
    <body>
    <form method="post" name="guestform" action="Library/guestbook.php">
    	 <table width="550" border="0" cellpadding="2" cellspacing="1">
    		<tr> 
    			<td width="100">Name *</td> 
    			<td><input name="txtName" type="text" id="txtName" size="30" maxlength="30"></td>
    	  	</tr>
    		<tr> 
    			<td width="100">Email</td>
    			<td><input name="txtEmail" type="text" id="txtEmail" size="30" maxlength="50"></td>
    		</tr>
    		<tr> 
    			<td width="100">Website URL</td>
    			<td><input name="txtUrl" type="text" id="txtUrl" value="http://" size="30" maxlength="50"></td>
    		</tr>
    		<tr> 
    			<td width="100">Message *</td> 
    			<td><textarea name="mtxMessage" cols="80" rows="5" id="mtxMessage"></textarea></td>
    		</tr>
    		<tr> 
    			<td width="100">&nbsp;</td>
    			<td><input name="btnSign" type="submit" id="btnSign" value="Sign Guestbook" onClick="return checkForm();"></td>
      		</tr>
    	</table>
    </form>
    <br>
    <br>
    </body>
    </html>
    and to be honest i'm still confused why when i press the submmission button it's redirected to my php file, i mean the page on which the error is shown has an address as such http://www.mywebsite.com/Library/guestbook.php shouldn't it be my same htm page that I have my form in?

    i hope i'm not being so much pain. I appreciate all your support and effort

    Adler

  2. #12
    Join Date
    Oct 2008
    Posts
    42
    Thanks
    0
    Thanked 9 Times in 9 Posts

    Default

    OK, I don't see anything in your code that would be outputting anything to the browser. So that brings us back to whitespace being outside the opening/closing php tags. Unfortunately, I can't see that from a forum post.

    I can't stress this enough: there can be no whitespace of any kind outside of the opening / closing php tags. That means no spaces, no tabs, no newlines, no non-printing characters of any kind.

    Since you are not actively outputting anything to the browser before the header(...) and not using Sessions, I know of no other cause of this error.

    If you can't find it, the only other solution I can think of would be to make use of Output Buffering. IMO, this is not an ideal solution since finding the cause of the error would be preferable, and I, personally, don't use output buffering but there are programmers who do use it.

    Quote Originally Posted by Adler80 View Post
    and to be honest i'm still confused why when i press the submmission button it's redirected to my php file, i mean the page on which the error is shown has an address as such http://www.mywebsite.com/Library/guestbook.php shouldn't it be my same htm page that I have my form in?
    It's being redirected to the .php page since that is what is shown in the <form action= tag in your form. This would be necessary for .php to process the submission.

    HTH

  3. #13
    Join Date
    Sep 2008
    Posts
    36
    Thanks
    15
    Thanked 0 Times in 0 Posts

    Default

    hey back,

    something came to my mind and thought it may help the problem to solve. what happens if i combine all my phps together and put a single php within the HTML page on the very top of the page? but i didnt know what i'm supposed to put in "action" part of my form as there are literally no php files to point the form to.

    thanks

  4. #14
    Join Date
    Oct 2008
    Posts
    42
    Thanks
    0
    Thanked 9 Times in 9 Posts

    Default

    If done properly, that should solve the immediate problem. You'll likely have to change the page's filename to have a .php extension. Depending on what the php code is doing, you may well have to include a conditional statement ( ie: if()) to test whether the form has been submitted or this is the first visit to the page, and only execute the php if appropriate.

    However, this may or may not be the best approach. The idea of including files, is that you can re-use code - write it once, use it many times. By combining the included files into your main page file, if you need to edit the included code, you'll have to edit it in all files rather than just one included file.

    If you take this approach, the form action should be the same filename as the file containing the form.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •