Jump to content

generate new page with form data


guym

Recommended Posts

Hello all, first I would like to say thank you to anyone that helps me out, I appreciate all the help I can get. 

I'm having issues on making a form that generates a new page with all of the information that has been put into the form.

I've tried using file_put_contents but I don't know if that's the way to go, as the content variable would need to include php and html code.  

What do I need to do so that once a user clicks submit, a new page is generated from the data and the user is then taken to the newly created page? 

Here is all the code I have so far:

addform.php

 

<html>
<head><title>Add Movie or Tv show</title></head>
<body>
<?php include_once("template_pageTop.php"); ?>
<form enctype="multipart/form-data" id="myForm" action="$Movie_Name.php" method="post">
<table width="1233" height="582" border="0">
  <tr bgcolor="#FFFFFF">
    <th height="88" colspan="3" scope="col"><div align="left">Add Movie or TV Show to Database</div></th>
  </tr>
  <tr>
    <td width="317" height="477"><p>               Movie Name:</p>
      <p> 
        <input type="text" name="Movie_Name" />
        <br />
      </p>
      <p>
        <label> Poster<br>
        </label>
        <input type="FILE" name="Poster">
        <br>
      </p>
      <p>Genre:</p>
      <p>
        <select multiple name="Genre[]" id="Genre">
          <option value="All" style="text-indent: 0px;" selected="selected">All</option>
          <option value="Action" style="text-indent: 0px;">Action</option>
          <option value="Adventure" style="text-indent: 0px;">Adventure</option>
          <option value="Animation" style="text-indent: 0px;">Animation</option>
          <option value="Biography" style="text-indent: 0px;">Biography</option>
          <option value="Comedy" style="text-indent: 0px;">Comedy</option>
          <option value="Crime" style="text-indent: 0px;">Crime</option>
          <option value="Documentary" style="text-indent: 0px;">Documentary</option>
          <option value="Drama" style="text-indent: 0px;">Drama</option>
          <option value="Family" style="text-indent: 0px;">Family</option>
          <option value="Fantasy" style="text-indent: 0px;">Fantasy</option>
          <option value="Film-Noir" style="text-indent: 0px;">Film-Noir</option>
          <option value="History" style="text-indent: 0px;">History</option>
          <option value="Horror" style="text-indent: 0px;">Horror</option>
          <option value="Mystery" style="text-indent: 0px;">Mystery</option>
          <option value="Romance" style="text-indent: 0px;">Romance</option>
          <option value="Sci-Fi" style="text-indent: 0px;">Sci-Fi</option>
          <option value="Short" style="text-indent: 0px;">Short</option>
          <option value="Sport" style="text-indent: 0px;">Sport</option>
          <option value="Thriller" style="text-indent: 0px;">Thriller</option>
          <option value="War" style="text-indent: 0px;">War</option>
          <option value="Western" style="text-indent: 0px;">Western</option>
        </select>
      </p>
      <p>
        <label>IMDB Rating:</label>
      </p>
      <p>
        <select name="IMDB_Rating" id="IMDB_Rating">
          <option value="0" style="text-indent: 0px;" selected="selected">All</option>
          <option value="9.9" style="text-indent: 0px;">10</option>
          <option value="9" style="text-indent: 0px;">9+</option>
          <option value="8" style="text-indent: 0px;">8+</option>
          <option value="7" style="text-indent: 0px;">7+</option>
          <option value="6" style="text-indent: 0px;">6+</option>
          <option value="5" style="text-indent: 0px;">5+</option>
          <option value="4" style="text-indent: 0px;">4+</option>
          <option value="3" style="text-indent: 0px;">3+</option>
          <option value="2" style="text-indent: 0px;">2+</option>
          <option value="1" style="text-indent: 0px;">1+</option>
        </select>
      </p>
      <p>Location: </p>
      <p>
        <input type="text" name="Location" value="file:///" /> <br />
        
    <td width="900"><p> </p>
    
      <p>Quality:
        <label class="label">Quality:<br>
        </label>
        <select name="Quality" id="Quality">
          <option value="All" style="text-indent: 0px;" selected="selected">All</option>
          <option value="1080p" style="text-indent: 0px;">1080p</option>
          <option value="3D" style="text-indent: 0px;">3D</option>
          <option value="480p" style="text-indent: 0px;">480p</option>
          <option value="720p" style="text-indent: 0px;">720p</option>
          <option value="DVD" style="text-indent: 0px;">DVD</option>
          <option value="HDRip" style="text-indent: 0px;">HDRip</option>
        </select>
    </p>
      <p> Year:</p>
      <p>
        <input type="text" name="Year" />
        <br />
      </p>
      <p>Trailer: </p>
      <p>
        <input type="text" name="Trailer" />
        <br />
      </p>
      <p>Synopsis:</p>
      <p>
        <textarea cols="50" rows="4" name="Synopsis"></textarea>
      </p></td>
    <td width="900"><img src="Reel.jpg"  alt="" width="447" height="407" align="top"/></td>
  </tr>
</table>
<p> </p>
<h1 align="left">
<button id="sub">Submit</button></h1></form>


</body>
</html>

index.php

 

<html>
<head><title>Movies & TV Shows List/title></head>
<body>

<?php include_once("template_pageTop.php"); ?>
<div align =right> <h3>

<?php

// Connection data (server_address, database, name, poassword)
$hostdb = 'localhost';
$namedb = 'movies';
$userdb = 'root';
$passdb = 'spencer';

try {
        // Connect and create the PDO object
        $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
        $conn->exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8
        }
        catch (PDOException $e) {
            $v_errormsg=$e->getMessage();
            $error_str=<<<END_HTML
                <h2> Error connecting to database: Message: $v_errormsg  <h2>
END_HTML;
            echo $error_str;
            die;
        }

        $sql =<<<END_SQL
            SELECT Movie_Name, Poster, Genre, Quality, IMDB_Rating, Year, Synopsis 
              FROM movieinfo;
END_SQL;
        try {
            $sth = $conn->prepare($sql);
            $sth->execute();
        }
        catch (PDOException $e) {
            $v_errormsg=$e->getMessage();
            $error_str=<<<END_HTML
                <h2> Error selecting data: Message: $v_errormsg  <h2>
END_HTML;
            echo $error_str;
            die;
        }

        // ok output table
        $str_table_hdr=<<< END_HTML
            <h2> Film Listings </h2>
            <br>
            <h3><a href="addform.php">Add a film</a></h3>
            <br>
            <table id="film_table">
                <thead>
                <th style="">ID</th>
                <th style="">Movie name</th>
                <th style="">Poster</th>
                <th style="">Genre</th>
                <th style="">Quality</th>
                <th style="">IMDB Rating</th>
                <th style="">Year</th>
                <th style="">Synopsis</th>
                <th style="width:43px;">&nbsp</th>
                </thead>
            <tbody>
END_HTML;
        echo $str_table_hdr;

        $num_rows = 0;
        while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
            $movie_name         = $row['Movie_Name'];
            $poster             = $row['Poster'];
            $genre              = $row['Genre'];
            $quality            = $row['Quality'];
            $imdb_rating        = $row['IMDB_Rating'];
            $year               = $row['Year'];
            $synopsis           = $row['Synopsis'];

            $str_table_row = <<<END_HTML
            <tr>
                <td></td>
                <td> $movie_name </td>
                <td> $poster </td>
                <td> $genre </td>
                <td> $quality </td>
                <td> $imdb_rating </td>
                <td> $year </td>
                <td> $synopsis </td>
                <td> &nbsp </td>
            </tr>
END_HTML;
            echo $str_table_row;
            $num_rows += 1;
        }

        if ($num_rows == 0) {
            $str_table_row = <<<END_HTML
            <tr>
            <td colspan="100%" style="text-align:center;">No Data Found</td>
            </tr>
END_HTML;
            echo $str_table_row;
        }


        $str_table_footer = <<<END_HTML
        </tbody>
        </table>
END_HTML;
        echo $str_table_footer;


?>



</body>
</html>

savetodb.php

<?php
include_once('db.php');

$Movie_Name  = Trim(filter_var($_POST['Movie_Name'],      FILTER_SANITIZE_STRING));  

		//Creat directory foler to hold movies files
	if (!file_exists("moviefolder/$Movie_Name")) {
		mkdir("moviefolder/$Movie_Name", 0755);
		}
		
		//upload and save poster

$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["Poster"]["name"]);
$extension = end($temp);
if ((($_FILES["Poster"]["type"] == "image/gif")
|| ($_FILES["Poster"]["type"] == "image/jpeg")
|| ($_FILES["Poster"]["type"] == "image/jpg")
|| ($_FILES["Poster"]["type"] == "image/pjpeg")
|| ($_FILES["Poster"]["type"] == "image/x-png")
|| ($_FILES["Poster"]["type"] == "image/png"))

&& in_array($extension, $allowedExts))
  {
  if ($_FILES["Poster"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["Poster"]["error"] . "<br>";
    }
  else
    {
    
    if (file_exists("moviefolder/$Movie_Name/" . $_FILES["Poster"]["name"]))
      {
        }
    else
      {
      move_uploaded_file($_FILES["Poster"]["tmp_name"],
      "moviefolder/$Movie_Name/" . $_FILES["Poster"]["name"]);
      }
    }
  }
else
  {
  echo "Invalid file";
  }

$Poster = mysql_real_escape_string($_FILES['Poster']['name']);

if(isset($_POST['Genre'])) {
    $Genre = serialize($_POST['Genre']);
} else {
     $Genre = ''; // this is in case user selects nothing (to be on the safe side)
};

$IMDB_Rating  = Trim(filter_var($_POST['IMDB_Rating'],      FILTER_SANITIZE_STRING));
$Quality  = Trim(filter_var($_POST['Quality'],      FILTER_SANITIZE_STRING));
$Year  = Trim(filter_var($_POST['Year'],      FILTER_SANITIZE_STRING));
$Trailer  = Trim(filter_var($_POST['Trailer'],      FILTER_SANITIZE_STRING));
$Synopsis  = Trim(filter_var($_POST['Synopsis'],      FILTER_SANITIZE_STRING));
$Location  = Trim(filter_var($_POST['Location'],      FILTER_SANITIZE_STRING));

		
    // the query
 	  
	$ins_sql = <<<END_SQL
        INSERT INTO movieinfo  
		            (ID, Movie_Name, Poster, Genre, IMDB_Rating, Quality, Year, Trailer, Synopsis, Location)   
        VALUES ( 0, ?, ?, ?, ?, ?, ?, ?, ?, ? )   
END_SQL;

//$ins_field_array=array($Movie_Name, $Poster, $Genre, $IMDB_Rating, $Quality, $Year, $Trailer, $Synopsis, $Location);  
//
//try {  
//    $sth = $conn->prepare($ins_sql);  
//    $sth->execute($ins_field_array);  
//}  
//catch (PDOException $e) {  
//    $v_errormsg=$e->getMessage();  
//    $v_errorcode=$e->getCode();  
//
//$str_error = <<<END_HTML
//            <html>  
//            <head>  
//            </head>  
//            <body>
//            <h1> Error inserting data. Code: $v_errorcode, Message: $v_errormsg </h1>  
//            </body>  
//            </html>  
//END_HTML;
//    echo $str_error;
//    die;
//}
//
//$v_insert_id = $conn->lastInsertId();
//
//$str_info = <<<END_HTML
//            <html>
//            <head>
//            </head>
//            <body>
//            <h1> Successfuly inserted movie with id = $v_insert_id </h1>
//            </bosy>
//            </html>
//END_HTML;
//echo $str_info;
//
//$sth->closeCursor();

$newpage="$Movie_Name.php";




$content =" 



";

file_put_contents($newpage, $content);

	
	header('location:http://localhost/movies/' .$newpage );

 ?>

as you can see my $content is empty because after trying to include html and php code inside the variable I came across many errors and just couldn't get it to work. 

Link to comment
Share on other sites

You want to create a new php page for each movie that is added to the database?

 

This is bad design. You should have one file that retrieves the movies data from the database and then displays it on the page. How you let the file knows what movie to retrieve is by passing in the url query string. For example site.com/movie.php?move=terminator

 

Now in movie.php you'd have

<?php

// connect to database etc.
mysql_connect('localhost', 'user'. 'pass');
mysql_select_db('movies');

// what movie is being requested
if(isset($_GET['movie']))
{
    // the movie being requested
    $move = mysql_real_escape_string($_GET['movie']); // sanitize user input
    
   // query the database and get the requested movie
    $sql = "SELECT * from movies_table WHERE movie='$movie'";
    if($result = mysql_query($sql))
    {
        // did the query find the requested movie
        if(mysql_num_rows($result))
        {
            // get the data from the result
            $row = mysql_fetch_assoc();

            // display move template page
            include 'movie.template.php';
        }
    }
    // movie was not found
    else
    {
         echo 'Sorry that movie cannot be found';
    }
}
// user hasn't requested for a movie
else
{
    // either display movie index or an error here
}

?>

Now in movie.template.php you'd have your html layout, example coded for this

<html>
  <head>
    <title>My Movie Site - <?php echo $row['movie']; ?></title>
  </head>
  <body>
     <h1><?php echo $row['movie']; ?></h1>

     <p><?php echo $row['description']; ?></p>

     <p>Actors: <?php echo $row['actors']; ?></p>
  </body>
</html>
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.