lionsclaw
asked on
How to make similar contact form?
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I'm using Adobe Dreamweaver CC 2015.
The generators are nice, but I'd like to learn how to create (code) my own and use it with php.
The YouTube videos are nice, but none of the videos show how to create a contact form so others can upload pictures to me or an option for checkbox input.
The generators are nice, but I'd like to learn how to create (code) my own and use it with php.
The YouTube videos are nice, but none of the videos show how to create a contact form so others can upload pictures to me or an option for checkbox input.
learn how to create (code) my own and use it with php.If you're new to PHP this article may be helpful.
https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html
And here is my teaching example showing how to upload a file. Bonus: It uses a checkbox! You can install it on your server and run it to see the moving parts in action.
<?php // demo/upload_single_example.php
/**
* Demonstrate how to upload a single file in PHP
*
* REQUIRED: Man Page References
* http://php.net/manual/en/reserved.variables.files.php
* http://php.net/manual/en/features.file-upload.php
* http://php.net/manual/en/features.file-upload.common-pitfalls.php
* http://php.net/manual/en/features.file-upload.errors.php
*
* http://php.net/manual/en/function.move-uploaded-file.php
*
* IMPORTANT: If dealing with large files
* http://php.net/manual/en/ini.core.php#ini.upload-max-filesize
* http://php.net/manual/en/ini.core.php#ini.post-max-size
* http://php.net/manual/en/info.configuration.php#ini.max-input-time
*/
error_reporting(E_ALL);
// PHP 5.1+ SEE http://php.net/manual/en/function.date-default-timezone-set.php
date_default_timezone_set('America/Chicago');
// ESTABLISH THE BIGGEST FILE SIZE WE CAN ACCEPT - ABOUT 8 MB
$max_file_size = '8000000';
// ESTABLISH THE KINDS OF FILE EXTENSIONS WE WANT (USE UPPERCASE ONLY)
$file_exts = array
( 'XLS'
, 'XLSX'
, 'PDF'
, 'JPG'
)
;
$f_exts = implode(', ', $file_exts);
// ESTABLISH THE NAME OF THE DESTINATION FOLDER
$my_dir = getcwd();
// OR USE THIS TO PUT UPLOADS IN A SEPARATE FOLDER
$my_dir = 'storage';
if (!is_dir($my_dir))
{
mkdir($my_dir);
}
// LIST OF THE ERRORS THAT MAY BE REPORTED IN $_FILES[]["error"] (THERE IS NO #5)
$errors = array
( UPLOAD_ERR_OK => "Success!"
, UPLOAD_ERR_INI_SIZE => "The uploaded file exceeds the upload_max_filesize directive in php.ini"
, UPLOAD_ERR_FORM_SIZE => "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"
, UPLOAD_ERR_PARTIAL => "The uploaded file was only partially uploaded"
, UPLOAD_ERR_NO_FILE => "No file was uploaded"
, 5 => "UNDEFINED ERROR"
, UPLOAD_ERR_NO_TMP_DIR => "Missing a temporary folder"
, UPLOAD_ERR_CANT_WRITE => "Cannot write file to disk"
, UPLOAD_ERR_EXTENSION => "A PHP extension stopped the file upload"
)
;
// IF THERE IS INFORMATION POSTED
if (!empty($_POST))
{
// IF THERE ARE ERRORS
$error_code = $_FILES["userfile"]["error"];
if ($error_code)
{
trigger_error($errors[$error_code], E_USER_ERROR);
}
// GET THE FILE SIZE
$fsize = number_format($_FILES["userfile"]["size"]);
// SYNTHESIZE THE NEW FILE NAME FOR TEMPORARY STORAGE
$fname = basename($_FILES['userfile']['name']);
// FAIL IF THIS IS NOT AN ALLOWABLE EXTENSION
$f_ext = explode('.', $fname);
$f_ext = end($f_ext);
$f_ext = strtoupper(trim($f_ext));
if (!in_array($f_ext, $file_exts)) trigger_error("$f_ext NOT ALLOWED. CHOOSE FROM $f_exts", E_USER_ERROR);
// THE SERVER PATH TO THE FILE
$my_path
= getcwd()
. DIRECTORY_SEPARATOR
. $my_dir
. DIRECTORY_SEPARATOR
. $fname
;
// THE URL PATH TO THE FILE
$my_url
= $my_dir
. DIRECTORY_SEPARATOR
. $fname
;
// MESSAGES ABOUT THE UPLOAD STATUS, IF ANY
$msg = NULL;
// IF THE FILE IS NEW (DOES NOT EXIST)
if (!file_exists($my_path))
{
// IF THE MOVE FUNCTION WORKED CORRECTLY
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $my_path))
{
$upload_success = 1;
}
// IF THE MOVE FUNCTION FAILED IT PROBABLY THREW A MESSAGE
else
{
$upload_success = -1;
trigger_error("MOVE TO $my_path FAILED", E_USER_ERROR);
}
}
// IF THE FILE ALREADY EXISTS
else
{
$msg .= "<br/><b><i>$my_url</i></b> already exists" . PHP_EOL;
// SHOULD WE OVERWRITE THE FILE? IF NOT
if (empty($_POST["overwrite"]))
{
$upload_success = 0;
}
// IF WE SHOULD OVERWRITE THE FILE, TRY TO MAKE A BACKUP
else
{
$now = date('Y-m-d-His');
$my_bak = $my_path . '.' . $now . '.bak';
if (!copy($my_path, $my_bak))
{
$msg .= "<br/><strong>Attempted Backup Failed!</strong>" . PHP_EOL;
}
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $my_path))
{
$upload_success = 2;
}
else
{
$upload_success = -1;
trigger_error("MOVE TO $my_path FAILED", E_USER_ERROR);
}
}
}
// PREPARE A REPORT OF THE SCRIPT'S SUCCESS OR FAILURE
if ($upload_success == 2) { $msg .= "<br/>A backup was made and the file was overwritten" . PHP_EOL; }
if ($upload_success == 1) { $msg .= "<br/><strong>$my_url</strong> has been saved" . PHP_EOL; }
if ($upload_success == 0) { $msg .= "<br/><strong>It was NOT overwritten.</strong>" . PHP_EOL; }
if ($upload_success < 0) { $msg .= "<br/><strong>ERROR: $my_url NOT SAVED - SEE WARNING FROM move_uploaded_file()</strong>" . PHP_EOL; }
// ADD FILE SIZE AND PERMISSION INFORMATION
if ($upload_success > 0)
{
$msg .= "<br/>$fsize bytes uploaded" . PHP_EOL;
if (!chmod ($my_path, 0755))
{
$msg .= "<br/>chmod(0755) FAILED: fileperms() = ";
$msg .= substr(sprintf('%o', fileperms($my_path)), -4);
}
}
// SHOW THE SUCCESS OR FAILURE
echo $msg;
// SHOW A LINK TO THE FILE
echo '<br/>'
. '<a href="'
. $my_url
. '" target="_blank">'
. "See: $my_url"
. '</a>'
;
}
// CREATE THE FORM FOR INPUT (USING HEREDOC SYNTAX)
$form = <<<EOF
<h2>Upload a File</h2>
<!--
SOME IMPORTANT THINGS TO NOTE ABOUT THIS FORM...
ENCTYPE= ATTRIBUTE IN THE HTML <FORM> TAG
MAX_FILE_SIZE HIDDEN CONTROL MUST PRECEDE THE FILE INPUT CONTROLS
INPUT NAME= IN TYPE=FILE DETERMINES THE NAME YOU FIND IN _FILES ARRAY
ABSENCE OF ACTION= ATTRIBUTE IN <FORM> TAG CAUSES POST TO SAME URL
-->
<form enctype="multipart/form-data" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="$max_file_size" />
Find a file to Upload ($f_exts): <input name="userfile" type="file" />
<br/>Check this box
<input autocomplete="off" type="checkbox" name="overwrite" /> to <strong>overwrite</strong> existing files
</br><input type="submit" value="Upload" />
</form>
EOF;
echo $form;
ASKER
It's more of a start up business.