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>