heres the code to send the info

<html>
<HEAD>
<title> form Handling with PHP </title>
</head>
<body bgcolor="#FFFFFF">
<center>
<form method=post action="submittedinfo.php">
<input type="hidden" name="id" value="NULL">
<table>
	<tr>
	 <td colspan="2"><font SIZE="+0" face="verdana">
	 Lets see if we cant get this form to work!
	 </td>
	</tr>
	<tr>
	 <td>
	 </td>
	</tr>
	<tr>
	 <td align="left"><font SIZE="+0" face="verdana">
	 <b>Your name <br \>Your E-Mail Address</b>
	 </td>
	 <td>
	 <input type="text" name="name" id="name">
	 <br />
	 <input type="text" name="email" id="email">
	 </td>
	</tr>
	<tr>
	 <td colspan="2"><center>
	 <SELECT name="opinion" id="opinion">
	 <option value="is great">I like your site</option>
	 <option value="is OK">Your Site is OK</option>
	 <option value="is horrible">Your Site is horrible</option>
	 </SELECT><p><input type="submit" value="Tell us!">
	 </td>
	</tr>
</table>
</form>
</body>
</html>

and here is the code to show the information entered by the user

<?
$DBhost = "localhost";
$DBuser = "michael";
$DBpass = "koolaide";
$DBName = "phpforms";
$table = "information";
 
 
mysql_connect($DBhost,$DBuser,$DBpass) or die("Unable to connect to database");
@mysql_select_db("$DBName") or die("Unable to select database $DBName");
$sqlquery = "INSERT INTO $table VALUES('$id','$name','$email','$opinion')";
$results = mysql_query($sqlquery);
mysql_close();
echo "
	<html>
	<head>
	 <title> PHP and MySQL </title>
	</head>
	<body>
	 <center>
	 <table border='0' width='500'>
		<tr>";
echo "	 <td>
		 <font face='verdana' size='+0'> 
		 <center>
		 <p>You Just Entered This Information Into the Database</p>
		 </center>";
 
echo "	 <blockquote>
		 <center>
			<p>
			Name :<p> $name E-Mail :</p> $email <p>Opinion :</p> $opinion
			</p>
		 </center>
		 </blockquote>
		 </td>
		</tr>
	 </table> 
		 </center>
	 </body>
	 </html>";
?>

heres the problem, when i run the HTML on the first page and fill out the form, i press send the info, it should bring up another page saying You entered so and so information. but instead i get you entered so and so info but it doesnt list the info, adding to that, im very noob to PHP, this is another tutorial that i found, and im begining to think that alot of tutorials have errors in them or somthing. i even went into my mysql and added the database and lines of info needed (again using his tutorial on how to) any help would be greatly appreciated.


ok, so i was able to fix the form, and ill post how i did it too. :)

$name = "$_POST[name]";
$email = "$_POST[email]";
$opinion = "$_POST[opinion]";

needed to be defined at the top of the page. now when i view my databases via phpmyadmin, i can see that the information has been added to the database, but now i need to write a script that will print out all data in the database to onscreen.

Recommended Answers

All 3 Replies

Glad you were able to help yourself, but remember, don't double post. If you need help with displaying the data, give us a holler.

What i like to do with form submissions...

First off, you never want to put your SQL login info directly in your script instead make a file like db.cnnt.php
Inside, write something like this...

<?PHP
//  No direct call...
if(ereg('db.cnnt.php', $_SERVER['SCRIPT_NAME']))
{
    die("Access Denied!  No Direct Call!");
}
//  Set DB login vars...
$SQL_Host = 'localhost:3306';
$SQL_Usr = 'Your_Username';
$SQL_Pss = 'Your_Password';
$SQL_DB = 'Database_Name';
//  Now connect to the database server...
if(!$SQL_LNK = @mysql_pconnect($SQL_Host, $SQL_Usr, $SQL_Pss))
{
    die("Couldn't Connect to Database Server...");
}
//  Now select the database...
if(!$SQL_SLT = @mysql_select_db($SQL_DB))
{
    die("Couldn't Connect to database");
}
// Or if you use multiple databases/users you can just set the different login Vars here and call connect function in the script.
?>

Now make a functions file to house the functions you use on many different pages...
functions.inc.php

<?PHP
//functions
function ControlContent($string)
{
 //You can set more vars to this one.  for instance if you want to only strip_tags from certain inputs...You could add $HTML to the function vars.  If $HTML == 0 or $HTML == NULL then strip_tags ELSE dont strip_tags.  But in this example im just gonna fix the strings
 
 $string =  strip_tags(trim(stripslashes(urldecode($string))));
 return $string;
} //End of function

function NoGET($METHOD)
{
 if(eregi('get', $METHOD))
 {
  die("Access denied!  Post method only");
 }
}

//Of course there are many more functions you could make but I'll stop there.
?>

Now finally
ForumHandle.php

<?PHP
require_once("db.cnnt.php");
require("functions.inc.php");
  NoGET($_SERVER['REQUEST_METHOD']);
  //  takes takes all vars out of the $_POST array.  Now $_POST[email] becomes $email 
  extract($_POST);
  //  This function to clean the input string...
  ControlContent($email);

  //  Now that the strings are clean you can insert them into your database.

  //  After inserting the data close Mysql connection and exit script.
mysql_close();
exit();
?>

What i like to do with form submissions...

First off, you never want to put your SQL login info directly in your script instead make a file like db.cnnt.php

Yeah I agree. I usually set aside a separate php file where I include global variables and settings. Here I include the passwords. However, I think Killer_Typo is doing this now because it's only an example to show how to get data from forms and do stuff with it.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.