Alright... here's my situation for those that didn't read my string of
messages yesterday.. (plus a bit more background information as to why
I'm doing this)
I'm writing an engine for a content managing system. Part of the system
is a menu builder. I use 2 tables, (this is a mysql database) menu and
menu_parts. They look like this
Table menu
ID : Integer; (auto increments, key)
Name : Varchar[128];
Type : Integer; (unused now)
Table menu_parts
ID : Integer;
Menu : Integer; (which menu this belongs to)
Order : Tinyint; (all menu items have incremental numbers)
Type : Tinyint;
Data : Text;
My code looks like this
[code]
$query="SELECT type,data FROM menu_parts WHERE menu='1' ORDER BY
m_order";
$result=mysql_query($query);
if($myrow=mysql_fetch_array($result))
{ do {
if($myrow["type"]==1)
eval("echo
\"".$myrow["data"]."\";");
elseif($myrow["type"]==2)
eval($myrow["data"]);
else
echo $myrow["data"];
} while($myrow=mysql_fetch_array($result));
}
[/code]
So depending on the menu_parts type, it will display the data field
differently.
If the type=0, it simple outputs the data field plain text.
If the type=1, it adds echo to both sides and outputs data.
If the type=2, it evaluates the code as is.
The problem I'm having, is with type 1. The main reason for this type
is say I want to send the user to a php script and pass parameters (I'm
going to use []'s so those of you with html email readers don't parse
it)
[a href="myscript.php?username={$userdata["username"]}"]Goto
MyScript.php[/a]
So when the line hits type 1, it evals like this
echo "[a href="myscript.php?username={$userdata["username"]}"]Goto
MyScript.php[/a]";
Of course this yields an error because of the "'s in the anchor tag.
But if I add slashes the evaluated code will be
echo "[a href=\"myscript.php?username={$userdata[\"username\"]}\"]Goto
MyScript.php[/a]";
Which will cause the $userdata["username"] variable to not process
properly. I thought about making type one do echo ''; instead of echo
""; but then if the user has a ' in their menu it won't function
properly.
I wish I could do this with regular expressions, but I'm not fluent with
them (and also doubt I could succeed in my task if I did).
I think I described my problem as thorough as I could have. Any help,
comments, etc would be greatly appreciated.
-Justin
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]