Jump to content

getting error on submit


sandbudd

Recommended Posts

I am getting an error when trying to do an update on a image...here is the error i am getting...

 

Notice: Undefined index: header in /update_display.php on line 25 File not uploaded.

 

here is line 25  if (is_uploaded_file ($_FILES['header']['tmp_name']))

 

please help I am desperate.

 




<?php 
   error_reporting(E_ALL);
ini_set('display_errors', '1');


?>

<?php
// Connect database.
$host=""; // Host name.
$db_user=""; // MySQL username.
$db_password=""; // MySQL password.
$database=""; // Database name.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);

// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button

if (isset ($_POST['Submit']))
{
   if (!empty ($_POST['header']))
   {
      if (is_uploaded_file ($_FILES['header']['tmp_name']))
      {
         //This is the directory where images will be saved  
         $target = 'uploaded_files/'.$_FILES['header']['name'];

         //This gets all the other information from the form
         $header = $_FILES['header']['name'];

         //Writes the photo to the server
         move_uploaded_file ($_FILES['header']['tmp_name'], $target) or die ('File not moved.');
      }
      else
      die ('File not uploaded.'); 
   }

   $_POST       = array_map ('mysql_real_escape_string', $_POST);

   $id         = $_POST['id'];
   $header      = $_POST['header'];
   $header2   = $_POST['header2'];
   $header3   = $_POST['header3'];
   $footer      = $_POST['footer'];
   $footer2   = $_POST['footer2'];
   $footer3   = $_POST['footer3'];

   // Do update statement.
   $sql = mysql_query("
      update `ads`
      set `header`='{$header}',
         `header2`='{$header2}',
         `header3`='{$header3}',
         `footer`='{$footer}',
         `footer2`='{$footer2}',
         `footer3`='{$footer3}'
      where `id`='{$id}'
   ") or trigger_error (mysql_error());

   if ($sql)
   { header("location:display.php"); exit (0); }
}
else
{
   // ************* End update part *************

   // *** Select data to show on text fields in form. ***

   // Get id parameter (GET method)
   $id = ((isset ($_GET['id']) && (ctype_digit ($_GET['id']))) ? mysql_real_escape_string ($_GET['id']) : '');

   if (!empty ($id))
   {
      // Get records in all columns from table where column id equal in $id and put it in $result.
      $result = mysql_query("
         select *
         from ads
         where id='".$id."'
      ");

      // Split records in $result by table rows and put them in $row.
      $row = mysql_fetch_array ($result);

      // Close database connection.
      mysql_close();
   }
   ?>

   <!-- END OF PHP CODES AND START HTML TAGS -->

   <html>
   <script type="text/javascript">
   <!--
   function MM_goToURL() { //v3.0
     var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
     for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
   }
   //-->
   </script>


   <body>
   <!-- set this form to POST method and target this form to itself ($PHP_SELF;)-->
   <form id="form1" name="form1" method="post" action="">

   <input type="hidden" name="id" value="<?php echo $id; ?>" />

   <input name="header" type="file" id="header" value="<?php echo $row['header']; ?>" size="50" />
   <table width="707" border="1" cellpadding="3" cellspacing="0" class="appfields">
     <tr>
      <td width="25%"><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Header</span></td>
      <td width="25%"> </td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Header 2<br>
      </span></td>
      <td><input name="header2" type="text" id="header2" value="<?php echo $row['header2']; ?>"/></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Header 3<strong><br>
      </strong></span></td>
      <td><strong>
        <input name="header3" type="text" id="header3" value="<?php echo $row['header3']; ?>"/>
        </strong></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Footer<strong><br>
      </strong></span></td>
      <td><strong>
        <input name="footer" type="text" id="footer" value="<?php echo $row['footer']; ?>"/>
        </strong></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Footer 2<br>
      </span></td>
      <td><strong>
        <input name="footer2" type="text" id="footer2" value="<?php echo $row['footer2']; ?>"/>
        </strong></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Footer 3<br>
      </span></td>
      <td><strong>
        <input name="footer3" type="text" id="footer3" value="<?php echo $row['footer3']; ?>"/>
      </strong></td>
     </tr>
   
   </table>
   <br>
   <br>
   <table width="707" border="0" cellspacing="0" cellpadding="0">
     <tr>
      <td><input type="submit" name="Submit" value="Submit" /></td>
      <td><div align="right">
        <input name="Cancel" type="submit" id="Cancel" onClick="MM_goToURL('parent','display.php');return document.MM_returnValue" value="Cancel">
      </div></td>
     </tr>
   </table>

   </form>
   </body>
   </html>
<?php } ?>

Link to comment
Share on other sites

you should just leave the action attribute out if you want to submit the form to itself. action="<?php echo $_SERVER['PHP_SELF']; ?>" leaves a vulnerability to XSS attacks in your form.

 

Try doing a print_r on the POST array, and see what it has in it. That will probably help locate where the problem is

Link to comment
Share on other sites

Oh wait  :facepalm:, you should be print_r'ing the $_FILES array, since that's the one that's giving you trouble.

 

But I think I found your problem.. You forgot to set an enctype in your form. Inside your <form > element add enctype="multipart/form-data".

Link to comment
Share on other sites

No, I'm still here  :P

 

Well, your error handling indicates that it did upload successfully.. I know this might sound stupid.. but can you double check to make sure it wasn't uploaded? (Perhaps refresh FTP if that's what you're using to view the directory).

 

Edit: It might be because of this:

 

if (!empty ($_POST['header']))

 

You should really be checking $_FILES['header']

Link to comment
Share on other sites

No, I'm still here  :P

 

Well, your error handling indicates that it did upload successfully.. I know this might sound stupid.. but can you double check to make sure it wasn't uploaded? (Perhaps refresh FTP if that's what you're using to view the directory).

 

Edit: It might be because of this:

 

if (!empty ($_POST['header']))

 

You should really be checking $_FILES['header']

 

ya, my bad (i wrote this code for him).

 

should be:

 

if (!empty ($_FILES['header']))

 

EDIT:  where do you stand now.  what is the script doing and not doing.  give a recap.

Link to comment
Share on other sites

Hello mrMarcus,

 

This does upload the file but does not populate the database?  Here is the code I now have.

 



<?php 
   error_reporting(E_ALL);
ini_set('display_errors', '1');


?>

<?php
// Connect database.
$host="mysql509.hostexcellence.com"; // Host name.
$db_user=""; // MySQL username.
$db_password=""; // MySQL password.
$database=""; // Database name.
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);

// ***** This part will process when you Click on "Submit" button *****
// Check, if you clicked "Submit" button



if (isset ($_POST['Submit']))
{
   if (!empty ($_FILES['header']))
   {
      if (is_uploaded_file($_FILES['header']['tmp_name']))
      {
  
  
  
         //This is the directory where images will be saved  
         $target = 'images/'.$_FILES['header']['name'];



         //This gets all the other information from the form
         $header = $_FILES['header']['name'];



         //Writes the photo to the server
         move_uploaded_file ($_FILES['header']['tmp_name'], $target) or die ('File not moved.');

      }
      else
      die ('File not uploaded.'); 
   }

   $_POST = array_map ('mysql_real_escape_string', $_POST);

   $id         = $_POST['id'];
   $header      = $_POST['header'];
   $header2   = $_POST['header2'];
   $header3   = $_POST['header3'];
   $footer      = $_POST['footer'];
   $footer2   = $_POST['footer2'];
   $footer3   = $_POST['footer3'];

   // Do update statement.
   $sql = mysql_query("
      update `ads`
      set `header`='{$header}',
         `header2`='{$header2}',
         `header3`='{$header3}',
         `footer`='{$footer}',
         `footer2`='{$footer2}',
         `footer3`='{$footer3}'
      where `id`='{$id}'
   ") or trigger_error (mysql_error());

   if ($sql)
   { header("location:display.php"); exit (0); }
}
else
{
   // ************* End update part *************

   // *** Select data to show on text fields in form. ***

   // Get id parameter (GET method)
   $id = ((isset ($_GET['id']) && (ctype_digit ($_GET['id']))) ? mysql_real_escape_string ($_GET['id']) : '');

   if (!empty ($id))
   {
      // Get records in all columns from table where column id equal in $id and put it in $result.
      $result = mysql_query("
         select *
         from ads
         where id='".$id."'
      ");

      // Split records in $result by table rows and put them in $row.
      $row = mysql_fetch_array ($result);
  

      // Close database connection.
      mysql_close();
   }
   ?>

   <!-- END OF PHP CODES AND START HTML TAGS -->

   <html>
   <script type="text/javascript">
   <!--
   function MM_goToURL() { //v3.0
     var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
     for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
   }
   //-->
   </script>


   <body>
   <!-- set this form to POST method and target this form to itself ($PHP_SELF;)-->
   <form id="form1" name="form1" method="post" action="" enctype="multipart/form-data">

   <input type="hidden" name="id" value="<?php echo $id; ?>" />

   <input name="header" type="file" id="header" value="<?php echo $row['header']; ?>" size="50" />
   <table width="707" border="1" cellpadding="3" cellspacing="0" class="appfields">
     <tr>
      <td width="25%"><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Header</span></td>
      <td width="25%"> </td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Header 2<br>
      </span></td>
      <td><input name="header2" type="file" id="header2" value="<?php echo $row['header2']; ?>"/></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Header 3<strong><br>
      </strong></span></td>
      <td><strong>
        <input name="header3" type="text" id="header3" value="<?php echo $row['header3']; ?>"/>
        </strong></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Footer<strong><br>
      </strong></span></td>
      <td><strong>
        <input name="footer" type="text" id="footer" value="<?php echo $row['footer']; ?>"/>
        </strong></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Footer 2<br>
      </span></td>
      <td><strong>
        <input name="footer2" type="text" id="footer2" value="<?php echo $row['footer2']; ?>"/>
        </strong></td>
     </tr>
     <tr>
      <td><span style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14">Footer 3<br>
      </span></td>
      <td><strong>
        <input name="footer3" type="text" id="footer3" value="<?php echo $row['footer3']; ?>"/>
      </strong></td>
     </tr>
   
   </table>
   <br>
   <br>
   <table width="707" border="0" cellspacing="0" cellpadding="0">
     <tr>
      <td><input type="submit" name="Submit" value="Submit" /></td>
      <td><div align="right">
        <input name="Cancel" type="submit" id="Cancel" onClick="MM_goToURL('parent','display.php');return document.MM_returnValue" value="Cancel">
      </div></td>
     </tr>
   </table>

   </form>
   </body>
   </html>
<?php } ?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.