# diligent-site Diligent web site Pre-requirements: * installed wamp server (https://sourceforge.net/projects/wampserver/) * installed git (https://git-scm.com/downloads) When the WAMP is installed, click the WAMP server icon > Apache > httpd.conf, then change the line Listen 80 to Listen 8080 or any port you want. Go to (http://176.104.105.124:3000/diligent/diligent-site.git/), clone this repository to www folder of WAMP server and run a website from a browser with localhost:defined_port/index.php (ex: localhost:8080/index.php) First of all, this project contains the following file types: 1. Type of file which sends an email 1. **contact_form.php** - sends email from homepage contact form and 1. **job_apply.php** which sends email from apply form), 1. Type of file which is included in every single page 1. **header.php** which is included in the top of the body and 2. **footer.php** which is included in the bottom of the body 1. Regular type of PHP file (the rest). **Sending email** This project uses PHPMailer 5.2.0 For email sending, needed to make an instance of PHPMailer and use method *send* from that class. Before that, needed to setup email: ```$mail = new PHPMailer(); //make instance of PHPMailer $mail->IsSMTP(); // telling the class to use SMTP $mail->SMTPSecure = "tls"; // enable SMTP authentication $mail->Host = "smtp.site.com"; // sets the SMTP server $mail->Port = 587; // sets SMTP port $mail->Username = "yourname@yourdomain"; // SMTP username $mail->Password = "yourpassword"; // SMTP password $mail->SetFrom("sender@gmail.com", "Sender"); //set email which sends a message #add attachment to email $resume_file = $_FILES["resume-file"]; $data = substr($resume, strpos($resume, ","));// everything except header of document $filename = $resume_name; //fileName $encoding = "base64"; // encoding type $type = substr( $resume , 6 , strpos($resume, ";") - 5); // type of document $mail->AddStringAttachment(base64_decode($data), $resume_name, $encoding, $type); //add attachment $mail->Subject = "Subject"; //add subject $mail->Body = "Message"; //add message $mail->AddAddress('reciever@gmail.com', "Reciever"); //add email which recieves message $mail->IsHtml(true); //enable html message instead of text $mail->send(); //send email``` When 'resume-file' is sent using POST method, it can be found in FILES array, but other parameters can be found in POST array When input (type file )is used in html form, needed to add enctype="multipart/form-data" and setup: contentType: false, cache: false, processData:false, url: "myscript.PHP?call=upload" ('?call=upload' added after script name) in ajax submit There are three the most important variables in header.php. They used for paths. 1. backToRoot is used for back to the root folder where there are index.php, portfolio.php, etc. 2. backToRootIndustries is used for navigation to the industries folder 3. backToRootServices is used for navigation to the services folder. styles/custom.css is a file which uses developers to add a new feature to the website, style.css is used for bug fixing in old style For checking validation of file, needed to use (https://www.freeformatter.com/html-validator.html) Every single page uses keywords (diligent, software, development, company, it, and specific words for that domain). It is located in meta (keywords) in the head of the document. That very important for SEO, when someone create new page on website. In order to use google captcha in html form, needed to include `````` after including **custom.js** script, after that needed to add one html element for captcha above the submit button. Define id for that element and custom attribute data-sitekey="site_key", where sitekey is google captcha key. After that at the end of custom.js file (before onloadCallback function) add new function for verification and call it in onloadCallback function