Jump to content

Fake Directories and Form Actions


Renzokuken

Recommended Posts

Hello, I have a .htaccess file set up to create directories and files based on my PHP variables.

That's how it looks anyway. It's really just some URL rewriting.

 

I'm looking to submit a form and use the code on the same page to handle the form via isset().

The problem is, however, that $_SERVER['PHP_SELF']; redirects me back to the original base/index.php page, while nothing gets submitted.

I can sort of see why, but is there any way to overcome it? I could probably use the actual file and variable names, but that isn't very practical as I intend on using this code as a basis for a much larger scale. I'm not too fond of using external pages as sources for the form action either for the same reason. My intentions were to have everything handled on a single page.

 

Also, feel free to post constructive criticism on how to improve the code.

I'm rather new to PHP and will need all the help I can get.

 

 

 

.htaccess code

RewriteRule base/([a-zA-Z]+)/$ base/index.php?cat=$1
RewriteRule base/([a-zA-Z]+)/([a-zA-Z0-9]+)\.php$ base/index.php?cat=$1&subcat=$2

 

index.php code

<html>
<head>
<title>Index</title>
</head>
<body>
<?php

$cat=$_GET['cat'];
$subcat=$_GET['subcat'];

if (isset($cat)){
if ($cat=='foo'){
	if (isset($subcat)){
		if($subcat=='bar'){
			if (isset($_POST['submit'])) {
				echo 'Entry Submitted Successfully';
			}
			else{
				?>
				<h1>Add an Entry</h1>
				<div>
					<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
						<div>
							<span>Field:</span>
							<span><input type="text" size="15" /></span>
						</div>

						<div>
							<input name="submit" type="submit" value="Submit" />
						</div>
					</form>

				</div>
				<p>
					<a href="/base/">Return to Base Page</a>
				</p>
				<?php
			}
		}
		else {
			echo 'Error: Not a valid sub-category.';
		}

	}
	else {
		?>
		<h1>Select an Option</h1>

		<ul>
			<li><a href="bar.php">Add Entry</a></li>
		</ul>
		<p>
			<a href="/base/">Return to Base Page</a>
		</p>
	<?php
	}
}

else {
echo 'Error: Not a valid Category.';
}

}
else{
?>
<h1>Base Page</h1>

<h2><a href="foo/">Go to "Select an Option" page</a></h2>
<ul>
	<li><a href="foo/bar.php">Go to "Add an Entry" page</a></li>
</ul>
<?php
}
?>
</div>
</body></html>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.