0

another problem is here. i'm created insert data into database. Then, i got the error Notice: Undefined index: name on the line 252.. here is my code..below is form code..

<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
    <input type="submit" name="submit" id="submit" value="Submit" />
    <input name="reset" type="reset" id="reset" value="Reset" />

    <?php
        if(!isset($_POST['submit']))
        {
            //form not submitted
        }
        else
        {
            //get from input
            //escape input values for greater safety
            $name=(trim($_POST['name'])=='')? die ('ERROR : Enter name') : mysql_escape_string($_POST['name']); // line 252
            $address=(trim($_POSTname['address'])=='')? die ('ERROR : Enter Address') : mysql_escape_string($_POST['address']);
            $phone=(trim($_POST['phone'])=='')? die ('ERROR : Enter Phone') : mysql_escape_string($_POST['phone']);
            $email=(trim($_POST['email'])=='')? die ('ERROR : Enter Email') : mysql_escape_string($_POST['contact']);
            $item1=(trim($_POST['item1'])=='')? die ('ERROR : Enter Donut') : mysql_escape_string($_POST['item1']);
            $item2=(trim($_POST['item2'])=='')? die ('ERROR : Enter Donut') : mysql_escape_string($_POST['item2']);
            $item3=(trim($_POST['item3'])=='')? die ('ERROR : Enter Donut') : mysql_escape_string($_POST['item3']);
            $item4=(trim($_POST['item4'])=='')? die ('ERROR : Enter Donut') : mysql_escape_string($_POST['item4']);
            $item5=(trim($_POST['item5'])=='')? die ('ERROR : Enter Donut') : mysql_escape_string($_POST['item5']);

            //open connection
            $connection=mysql_connect('localhost', 'root', '') or die ('Unable to connect');

            //select database
            mysql_select_db('donut') or die ('Unable to select database');

            //create query
            $query= "INSERT INTO ordering (name,address,phone,email,item1,item2,item3,item4,item5) VALUES ('$name','$address','$phone','$email', '$item1','$item2','$item3','$item4','$item5')";

            //execute query
            $result=mysql_query($query) or die ("Error in query: $query.".mysql_error());

            //print ID of inserted record
            echo 'New record has been successfully inserted';

            //close connection
            mysql_close($connection);
        }
    ?>
</form>

Well, this my form code.. can you see any error?

<td width="24%" class="n"><label for="name">Name:</label></td>
    <td width="26%"><input type="text" name="name" id="name" /></td>
    <td width="50%">&nbsp;</td>
  </tr>
  <tr>
    <td class="n"><label for="address">Address:</label></td>
    <td><textarea name="address" id="address"></textarea></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td class="n"><label for="phone">Phone Number :</label></td>
    <td><input type="text" name="phone" id="phone" /></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td class="n"><label for="email">Email :</label></td>
    <td><input type="text" name="email" id="email" /></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td class="n"><label for="donut"> Choose Donut :</label></td>
    <td><p>
      <span class="k">
      <select name="item1" id="item1">
        <option>Colorful Choc </option>
        <option>Black Forest</option>
        <option>chezzy Gum</option>
        <option>Orange</option>
        <option>Coconut Bead</option>
        <option>Cheese Gaeden</option>
        <option>Creamy Straw</option>
        <option>Stripe Donut</option>
        <option>Choc Sugar</option>
        <option>Chocolate Chip</option>
        <option>Pillow Choc</option>
        <option>Star Wars</option>
        <option>Regular</option>
        <option>Diamond Bead</option>
        <option>Strawberry</option>
        <option>Munchys</option>
        <option>Popcorn</option>
        <option>Berry Cheese</option>
        <option>Sugar Bread</option>
        <option>Choc Chopstick</option>
        <option>Regular Planta</option>
        <option>Round Round</option>
        <option>Sprinkle Nuts</option>
        <option>Sprinkle Color</option>
      </select>
      </span></p>
      <p>
        <span class="k">
        <select name="item2" id="item2">
          <option>Colorful Choc </option>
          <option>Black Forest</option>
          <option>chezzy Gum</option>
          <option>Orange</option>
          <option>Coconut Bead</option>
          <option>Cheese Gaeden</option>
          <option>Creamy Straw</option>
          <option>Stripe Donut</option>
          <option>Choc Sugar</option>
          <option>Chocolate Chip</option>
          <option>Pillow Choc</option>
          <option>Star Wars</option>
          <option>Regular</option>
          <option>Diamond Bead</option>
          <option>Strawberry</option>
          <option>Munchys</option>
          <option>Popcorn</option>
          <option>Berry Cheese</option>
          <option>Sugar Bread</option>
          <option>Choc Chopstick</option>
          <option>Regular Planta</option>
          <option>Round Round</option>
          <option>Sprinkle Nuts</option>
          <option>Sprinkle Color</option>
        </select>
      </span></p>
      <p>
        <span class="k">
        <select name="item3" id="item3">
          <option>Colorful Choc </option>
          <option>Black Forest</option>
          <option>chezzy Gum</option>
          <option>Orange</option>
          <option>Coconut Bead</option>
          <option>Cheese Gaeden</option>
          <option>Creamy Straw</option>
          <option>Stripe Donut</option>
          <option>Choc Sugar</option>
          <option>Chocolate Chip</option>
          <option>Pillow Choc</option>
          <option>Star Wars</option>
          <option>Regular</option>
          <option>Diamond Bead</option>
          <option>Strawberry</option>
          <option>Munchys</option>
          <option>Popcorn</option>
          <option>Berry Cheese</option>
          <option>Sugar Bread</option>
          <option>Choc Chopstick</option>
          <option>Regular Planta</option>
          <option>Round Round</option>
          <option>Sprinkle Nuts</option>
          <option>Sprinkle Color</option>
        </select>
      </span></p>
      <p>
        <span class="k">
        <select name="item4" id="item4">
          <option>Colorful Choc </option>
          <option>Black Forest</option>
          <option>chezzy Gum</option>
          <option>Orange</option>
          <option>Coconut Bead</option>
          <option>Cheese Gaeden</option>
          <option>Creamy Straw</option>
          <option>Stripe Donut</option>
          <option>Choc Sugar</option>
          <option>Chocolate Chip</option>
          <option>Pillow Choc</option>
          <option>Star Wars</option>
          <option>Regular</option>
          <option>Diamond Bead</option>
          <option>Strawberry</option>
          <option>Munchys</option>
          <option>Popcorn</option>
          <option>Berry Cheese</option>
          <option>Sugar Bread</option>
          <option>Choc Chopstick</option>
          <option>Regular Planta</option>
          <option>Round Round</option>
          <option>Sprinkle Nuts</option>
          <option>Sprinkle Color</option>
        </select>
      </span></p>
      <p>
        <span class="k">
        <select name="item5" id="item5">
          <option>Colorful Choc </option>
          <option>Black Forest</option>
          <option>chezzy Gum</option>
          <option>Orange</option>
          <option>Coconut Bead</option>
          <option>Cheese Gaeden</option>
          <option>Creamy Straw</option>
          <option>Stripe Donut</option>
          <option>Choc Sugar</option>
          <option>Chocolate Chip</option>
          <option>Pillow Choc</option>
          <option>Star Wars</option>
          <option>Regular</option>
          <option>Diamond Bead</option>
          <option>Strawberry</option>
          <option>Munchys</option>
          <option>Popcorn</option>
          <option>Berry Cheese</option>
          <option>Sugar Bread</option>
          <option>Choc Chopstick</option>
          <option>Regular Planta</option>
          <option>Round Round</option>
          <option>Sprinkle Nuts</option>
          <option>Sprinkle Color</option>
        </select>
      </span></p></td>
    <td><p class="k">T</p></td>
  </tr>
  <tr>
    <td class="n">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
  • Please don't use `mysql_*` functions anymore, they are deprecated. See [Why shouldn't I use mysql_* functions in PHP?](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) for details. Instead you should learn about [prepared statements](http://bobby-tables.com/php.html) and use either [PDO](http://php.net/pdo) or [MySQLi](http://php.net/mysqli). If you can't decide which, [this article](http://php.net/manual/en/mysqlinfo.api.choosing.php) will help you. If you pick PDO, [here is a good tutorial](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). – Marcel Korpel Nov 06 '13 at 17:26
  • BTW, if you *really* want to keep using `mysql_*` functions, you should use `mysql_real_escape_string`, `mysql_escape_string` is not safe enough. – Marcel Korpel Nov 06 '13 at 17:27
  • If you show where is line 252, that would be great – Wagner Leonardi Nov 06 '13 at 17:34
  • @Wagner i already show it, please check it.. :) – Mohamad Noor Qusyairi Manlan Nov 06 '13 at 17:35
  • Sorry, my bad. "Undefined index" generally is about item not received from your $_POST, you could print all $_POST variables to see if you are getting all of them correctly – Wagner Leonardi Nov 06 '13 at 17:38
  • Like @Wagner said, do a `print_r($_POST)`. – Marcel Korpel Nov 06 '13 at 17:50

3 Answers3

2

ONE possible (and most likely) error is this line:

$address=(trim($_POSTname['address'])

which should read as:

$address=(trim($_POST['address'])

EDIT example

Here is what I tried on my own server with success:

<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="text" name="name" id="name" />
<br>
<input type="submit" name="submit" id="submit" value="Submit" />
<input name="reset" type="reset" id="reset" value="Reset" />
</form>

<?php
    if(!isset($_POST['submit']))
    {
    //form not submitted
    }
    else
    {
    //get from input
    //escape input values for greater safety
    $name=(trim($_POST['name'])=='')? die ('ERROR : Enter name') : mysql_escape_string($_POST['name']); // line 252
    
    echo $name;
}
?>

You can also try the reverse:

<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="text" name="name" id="name" />
<br>
<input type="submit" name="submit" id="submit" value="Submit" />
<input name="reset" type="reset" id="reset" value="Reset" />
</form>

<?php
    if(isset($_POST['submit']))
    {
    //get from input
    //escape input values for greater safety
    $name=(trim($_POST['name'])=='')? die ('ERROR : Enter name') : mysql_escape_string($_POST['name']); // line 252
    }
    else
    {
die("You cannot do that from here.");
}

echo $name;

?>
Community
  • 1
  • 1
Funk Forty Niner
  • 74,450
  • 15
  • 68
  • 141
1

Your <form> does not have an input field named "name" which you have used it here

trim($_POST['name'])=='')

Fix :

Add an input field on your form like this..

<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
      <input type="text" name="name" /><!-- Added here -->
      <input type="submit" name="submit" id="submit" value="Submit" />
      <input name="reset" type="reset" id="reset" value="Reset" />

You are also missing other fields like phone , contact , email , etc....

Shankar Narayana Damodaran
  • 68,075
  • 43
  • 96
  • 126
0

It's generally a good idea to check whether a variable exists or not using isset or empty. Even if one variable, e.g. $_POST['submit'], is present, that doesn't guarantee that other ones are present, too.

if (!empty($_POST['name'])) {
    …
}
Marcel Korpel
  • 21,536
  • 6
  • 60
  • 80