I've found a way that works for me.

Using the START SESSION on the initial form, e.g.
<?php
session_start();
// store session data
    $_SESSION['form'] = "1";
?>

and the using the code below in the processing form.

You can do a check if the user has already submitted the from by the initial
session that starts then he/she is on the submitting form. If it is already
set it can continue, else stop and redirect.
MAKE SURE to put the unset session at the end of the form.

<html>
<head>
  <title>Add Publication</title>
</head>
<body>
<h1>Add</h1>
<?php
// Check session
    session_start();
    if ($_SESSION['form'] == 1)
    {
      // create short variable names
      $producttype=$_POST['producttype'];
      $producttitle=$_POST['producttitle'];
      $productdescription=$_POST['productdescription'];
      $productauthor=$_POST['productauthor'];
      $productlang=$_POST['productlang'];
      $productprice=$_POST['productprice'];
      $productstatus=$_POST['productstatus'];
      $productimg=$_POST['productimg'];
    }
    else
    {
      echo 'Go back and complete the form';
      echo header('Location: insertpublication.php');
      exit;
    }
// End session checking

  if (!$producttype || !$producttitle || !$productauthor || !$productlang ||
!$productprice || !$productstatus)
  {
     echo 'You have not entered all the required details.<br />'
          .'Please go back and try again.';
          unset($_SESSION['form']);
     exit;
  }

  @ $prodb = new mysqli('I DONT THINK SO!!!');
  if (mysqli_connect_errno())
  {
     echo 'Error: Could not connect to database.  Please try again later.';
     exit;
  }
  $query = "INSERT into tblproductinfo
            (ProductType, ProductTitle, ProductDesc, ProdAuthor,
ProductLang, ProductPrice, ProductStatus, ProductImg)
            VALUES
            ('".$producttype."', '".$producttitle."',
'".$productdescription."', '".$productauthor."', '".$productlang."',
            '".$productprice."', '".$productstatus."', '".$productimg."')";

  $result = $prodb->query($query);
  if ($result)
      echo  $prodb->affected_rows.' book inserted into database.';

  $queryshow = "
    SELECT
        tblproductinfo.ProductID,
        tblproductinfo.ProductTitle,
        tblproductinfo.ProductDesc,
        tblproductinfo.ProductPrice,
        tblproductinfo.ProductTQty,
        tblproductinfo.ProductImg,
        tblauthor.AuthorName,
        tblproductlang.ProductLang,
        tblproducttype.ProductType,
        tblproductstatus.ProductStatus
    FROM
        tblproductinfo
    Inner Join tblproductstatus ON tblproductinfo.ProductStatus =
tblproductstatus.ProductStatusID
    Inner Join tblproductlang ON tblproductinfo.ProductLang =
tblproductlang.ProductLangID
    Inner Join tblauthor ON tblproductinfo.ProdAuthor = tblauthor.AuthorID
    Inner Join tblproducttype ON tblproductinfo.ProductType =
tblproducttype.ProductTypeID";
  $resultshow = $prodb->query($queryshow);

  $num_results = $resultshow->num_rows;
  echo '
  <table width="700" border="1">
   <tr>
      <td>
         Book ID
      </td>
      <td>
         Type
      </td>
      <td>
         Title
      </td>
      <td>
         Description
      </td>
      <td>
         Author
      </td>
      <td>
         Language
      </td>
      <td>
         Price
      </td>
      <td>
         Status
      </td>
      <td>
         Image
      </td>
   </tr>';
  for ($i=0; $i <$num_results; $i++)
  {
     $row = $resultshow->fetch_assoc();
     echo '<tr>';
     echo '<td>'.($row['ProductID']).'</td>';
     echo '<td>'.($row['ProductType']).'</td>';
     echo '<td>'.($row['ProductTitle']).'</td>';
     echo '<td>'.($row['ProductDesc']).'</td>';
     echo '<td>'.($row['AuthorName']).'</td>';
     echo '<td>'.($row['ProductLang']).'</td>';
     echo '<td>£'.($row['ProductPrice']).'</td>';
     echo '<td>'.($row['ProductStatus']).'</td>';
     echo '<td><a href=images/'.($row['ProductImg']).'>Preview image
</a></td>';
     echo '</tr>';
   };
  echo '</table>';

  unset($_SESSION['form']);

  $prodb->close();
?>
</body>
</html>

Reply via email to