TrieID wrote:I am calling search.php first which "posts" and calls srch.php. Does it not pass the $search???
No, it doesn't. At least, it shouldn't, because register_globals should be disabled.
What you need to do is reference this variable using the $_POST array (since you're POSTing data). Again, information on this array (and its friends) can be found on this manual page: [man]variables.predefined[/man].
TrieID wrote:as for your #3 it is being populated by the mySQL database with the authors in the table and not by user-supplied data.
While this is technically true, you need to think of "user-supplied data" as "data that the user or the user's browser has had the opportunity of seeing before reaching the script." If someone wanted, they could easily POST whatever information they wanted to your script. Sure, you think that the POST'ed variable contains information from your DB, but a malicious user still has the opportunity of altering this field and sending any sort of data he/she wishes. That's why sanitizing all data provided by outside sources - no matter what - is important.