How do I make this Form on this PHP accessible via an html page?

Discussion in 'PHP' started by chrisj, Jun 9, 2014.

  1. #1
    How do I make the Form in this PHP file accessible via an html page, so that it still works successfully with this PHP file? Here's the php file code:
    <?php
    session_start();
    require_once 'phps3integration_lib.php';
    $message = "";
    if (@$_POST['submit'] != "") {
    $allowed_ext = array("gif", "jpeg", "jpg", "png", "pdf", "doc", "docs", "zip", "flv", "mp4");
    $extension = end(explode(".", $_FILES["file"]["name"]));
    if (($_FILES["file"]["size"] < 524288000) && in_array($extension, $allowed_ext)) {
    if ($_FILES["file"]["error"] > 0) {
    //$message.="There is some error in upload, see: " . $_FILES["file"]["error"] . "<br>";//Enable this to see actual error
    $message.="There is some error in upload. Please try after some time.";
    } else {
    $uploaded_file = uploaded_file_to_s3($_FILES["file"], "uploads", true);
    if ($uploaded_file != FALSE) {
    $user_name = @$_POST['user_name'] != "" ? @$_POST['user_name'] : "Anonymous";
    $form_data = array(
    'file' => $uploaded_file,
    'user_name' => $user_name,
    'type' => 'file'
    );
    mysql_query("INSERT INTO `phps3files` (`id`, `file`, `user_name`, `type`) VALUES (NULL, '" . $uploaded_file . "', '" . $user_name . "', 'file')") or die(mysql_error());
    $message.= "File successfully uploaded in S3 Bucket.";
    } else {
    $message.="There is some error in upload. Please try after some time.";
    }
    }
    } else {
    $message.= "Invalid file, Please upload a gif/jpeg/jpg/png/pdf/doc/docs/zip file of maximum size 5 MB.";
    }
    }
    ?>

    <?php
    require_once 'header.php';
    ?>
    <fieldset>
    <legend>PHP AWS S3 integration library Demo1</legend>
    Description: In this demo a file is being upload to an S3 bucket using "PHP AWS S3 integration library". After upload you can check the uploaded file in below table.
    If you require some manipulation before uploading file to S3 then check <a href="upload_file_manually.php">Demo2</a> <br />
    <br />

    <form action="" method="post" enctype="multipart/form-data">

    <div class="control-group">
    <label for="file" class="control-label">Choose a file to upload: <span style="color:red">*</span></label>
    <div class='controls'>
    <input id="file" type="file" name="file" />
    <?php //echo form_error('file'); ?> </div>
    </div>
    <div class="control-group">
    <label for="user_name" class="control-label">Your name:</label>
    <div class='controls'>
    <input id="user_name" type="text" name="user_name" maxlength="255" value="" />
    <?php //echo form_error('user_name'); ?> </div>
    </div>
    <div class="control-group">
    <label></label>
    <div class='controls'>
    <input type="submit" name="submit" value="Submit" class="btn">
    </div>
    </div>
    </form>
    </fieldset>
    <?php
    if ($message != "" || @$_SESSION['message'] != "") {
    ?>
    <div class="alert alert-success">
    <?php echo $message; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <?php
    echo @$_SESSION['message'];
    @$_SESSION['message'] = '';
    ?>
    </div>
    <?php
    }
    ?>
    <div>
    <table class="table table-hover">
    <caption>
    <strong>Last 10 user uploaded files</strong>
    </caption>
    <?php
    $files_result = mysql_query("SELECT * from `phps3files` WHERE type LIKE 'file' ORDER by id DESC LIMIT 10");
    $i = 1;
    while ($file = mysql_fetch_object($files_result)) {
    ?>
    <tr>
    <td><?php echo $i++; ?></td>
    <td><a href="<?php echo site_url_s3("uploads/" . $file->file); ?>" target="_blank">View/Download</a> </td>
    <td><a href="<?php echo site_url("delete_file.php?id=" . $file->id); ?>">Delete file from S3</a></td>
    <td><?php echo "Uploaded by: " . $file->user_name; ?></td>
    </tr>
    <?php
    }
    if ($i == 1) {
    ?>
    <tr>
    <td colspan="2"> No files uploaded yet</td>
    </tr>
    <?php
    }
    ?>
    </table>
    </div>
    <h4>Source Code Part of Demo</h4>
    <pre class="prettyprint lang-php linenums">
    &lt;?php
    session_start();
    require_once 'phps3integration_lib.php';
    $message = &quot;&quot;;
    if (@$_POST['submit'] != &quot;&quot;) {
    $allowed_ext = array(&quot;gif&quot;, &quot;jpeg&quot;, &quot;jpg&quot;, &quot;png&quot;, &quot;pdf&quot;, &quot;doc&quot;, &quot;docs&quot;, &quot;zip&quot;);
    $extension = end(explode(&quot;.&quot;, $_FILES[&quot;file&quot;][&quot;name&quot;]));
    if (($_FILES[&quot;file&quot;][&quot;size&quot;] &lt; 524288000) &amp;&amp; in_array($extension, $allowed_ext)) {
    if ($_FILES[&quot;file&quot;][&quot;error&quot;] &gt; 0) {
    //$message.=&quot;There is some error in upload, see: &quot; . $_FILES[&quot;file&quot;][&quot;error&quot;] . &quot;&lt;br&gt;&quot;;//Enable this to see actual error
    $message.=&quot;There is some error in upload. Please try after some time.&quot;;
    } else {
    $uploaded_file = uploaded_file_to_s3($_FILES[&quot;file&quot;], &quot;uploads&quot;, true);
    if ($uploaded_file != FALSE) {
    $user_name = @$_POST['user_name'] != &quot;&quot; ? @$_POST['user_name'] : &quot;Anonymous&quot;;
    $form_data = array(
    'file' =&gt; $uploaded_file,
    'user_name' =&gt; $user_name,
    'type' =&gt; 'file'
    );
    mysql_query(&quot;INSERT INTO `phps3files` (`id`, `file`, `user_name`, `type`) VALUES (NULL, '&quot; . $uploaded_file . &quot;', '&quot; . $user_name . &quot;', 'file')&quot;) or die(mysql_error());
    $message.= &quot;File successfully uploaded in S3 Bucket.&quot;;
    } else {
    $message.=&quot;There is some error in upload. Please try after some time.&quot;;
    }
    }
    } else {
    $message.= &quot;Invalid file, Please upload a gif/jpeg/jpg/png/pdf/doc/docs/zip file of maximum size 5 MB.&quot;;
    }
    }
    ?&gt;
    </pre>
    <?php require_once 'footer.php'; ?>

    Thanks. I look forward to any help.
     
    chrisj, Jun 9, 2014 IP
  2. ironcladservers

    ironcladservers Well-Known Member

    Messages:
    389
    Likes Received:
    20
    Best Answers:
    4
    Trophy Points:
    115
    #2
    You could embed it within an iframe, or configure an .htaccess to make HTML files be parsed by the PHP interpreter as well.
     
    ironcladservers, Jun 9, 2014 IP
  3. PoPSiCLe

    PoPSiCLe Illustrious Member

    Messages:
    4,623
    Likes Received:
    725
    Best Answers:
    152
    Trophy Points:
    470
    #3
    That's bad advice - just make a html-form, and process it via the php-bits in the code above?
    Or, why in the world do you need it to be an HTML-page? Why not just run it as a PHP-file?
     
    PoPSiCLe, Jun 9, 2014 IP
  4. ironcladservers

    ironcladservers Well-Known Member

    Messages:
    389
    Likes Received:
    20
    Best Answers:
    4
    Trophy Points:
    115
    #4
    How is it bad advice? iframes aren't ideal, I agree, and neither is making PHP interpreted in HTML files by default, but in any event its a solution to the OP without having to code an additional HTML form to work correctly with what's already coded.
     
    ironcladservers, Jun 9, 2014 IP
  5. chrisj

    chrisj Well-Known Member

    Messages:
    606
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    101
    #5
    Thank you for your reply. Yes, I'd like to "just make a html-form, and process it via the php-bits in the code above", that makes sense. The reason I'd like it to be an html page, is that I know how to style an html page. Any additional help with how to get the html-form to process via php-bits, will be greatly appreciated.
     
    chrisj, Jun 9, 2014 IP
  6. thewpdev

    thewpdev Well-Known Member

    Messages:
    137
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    103
    #6
    There is no difference in styling a php page or an HTML page. A PHP page is just an HTML page where your code between <?php ..... ?> is processed by the server, infact your PHP code will render HTML after execution.

    So, just rename your HTML files extension to .php and they will work the same and you can styles things as normal HTML.

    I hope you're getting me.
     
    Last edited: Jun 10, 2014
    thewpdev, Jun 10, 2014 IP
  7. thewpdev

    thewpdev Well-Known Member

    Messages:
    137
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    103
    #7
    And you can't just control PHP bits via .html page, your php code will be treated as plain text. The only way is either you change file extension to .php or tweak .htaccess . However .php is the right way. (Y)
     
    thewpdev, Jun 10, 2014 IP
  8. chrisj

    chrisj Well-Known Member

    Messages:
    606
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    101
    #8
    Thanks for your reply.
    Someone suggested this: "to separate the HTML (form) into a separate .html file you can place the HTML in someFile.html and the PHP in someFile.php, and alter the <form> tag's 'action' element in the .html file to target someFile.php". I'd like to do that, but don't know how to "alter the <form> tag's 'action' element in the .html file to target someFile.php". Any additional help will be appreciated.
     
    chrisj, Jun 10, 2014 IP
  9. PoPSiCLe

    PoPSiCLe Illustrious Member

    Messages:
    4,623
    Likes Received:
    725
    Best Answers:
    152
    Trophy Points:
    470
    #9
    I really suggest you try to read some tutorials on web coding, if that's the level you're at. w3schools, codeacademy etc. are okay starting points, and will probably teach you enough to get this up and running.
     
    PoPSiCLe, Jun 11, 2014 IP
  10. chrisj

    chrisj Well-Known Member

    Messages:
    606
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    101
    #10
    Thanks for all replies
     
    chrisj, Jun 16, 2014 IP