text: Q:
  
  create module that load index.php
  
  I have a php code written in index.php that contain a form with method post.
  It also read from an external database and fill a table.
  To load this form I created a .module file with 2 functions _menu and _block, but I am not able to load the form (index.php)
  I need to load the form and to open it in the main content of the drupal page
  i used :
  header("location
  drupal_goto(
  $external_link
  
  but nothing is going right and it open in new blank page not in the main content like i want.
  please it is urgent
  any help
  
  A:
  
  The Drupal way
  In Drupal we create similar form like this:
  Create a custom module
  
  Create a file sites/all/modules/own/form_test/form_test.info with this in it:
  name = form_test
  description = form_test
  core = 7.x
  package = Own
  Create a file sites/all/modules/own/form_test/form_test.module
  
  (start it with <?php tag, but don't add ending ?> tag)
  Write these functions in your module:
  function form_test_menu() {
    $items['formtest'] = array(
      'title' => 'Form Test',
      'page callback' => 'drupal_get_form',
      'page arguments' => array('form_test_form'),
      'access callback' => TRUE,
      );
    return $items;
  }
  
  An explanation
  form_test_menu 
  creates a menu item in your navigation menu so we can have a place where to show our custom form. You can think that menu address referring to a page yoursite/formtest.
  title 
  Title of the page.
  page callback 
  Calls a function drupal_get_form which returns a render array for drupal_render().
  page arguments 
  Here we pass our custom render array (which form_test_form returns) as an argument for drupal_get_form.
  access callback 
  We define it TRUE so that everyone can access this page.
  (Rendering means turning a structured array into HTML.)
  function form_test_form($form,&$form_submit) {
    $form['firstname'] = array(
      '#title' => t('Firstname'),
      '#type' => 'textfield',
      '#required' => TRUE,
    );
    $form['lastname'] = array(
      '#title' => t('Lastname'),
      '#type' => 'textfield',
    );
    $form['submit'] = array(
      '#value' => 'Submit',
      '#type' => 'submit',
      );
    return $form;
  }
  
  An explanation
  So we use render arrays to describe a form in drupal.
  When you use a function to return a render array for drupal_get_form, there are two default parameters that are in use:
  $form   Holds the form array items we define inside the function when this function is called again.
  &$form_submit   This parameter holds various data items like the values you pass when you submit the form.
  (Ampersand & means that this is a reference to a variable, so if we change this variable in this function, changes will show in the parent function too.)
  Form items are added as arrays to the $form variable. Hash (#) sign refers to an attribute of the item.
  Enable the module in admin/modules
  Flush the caches
  Form can be seen in yoursite/formtest, but it doesn't do anything yet.
  OR
  more links are :
  Drupal 7 - How to Make a Simple Module with a Form and Menu Link
  Ten Step-by-Step Code Samples for Learning Form API
  
  