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
https://forums.phpfreaks.com/topic/211401-fake-directories-and-form-actions/
Share on other sites

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.