PDA

View Full Version : Jop application form.



Excellent
07-08-2008, 02:45 PM
Hey theres a few about but a lot of people want to know how to make an application form, heres the code, I have used comments to show you what to do.


<?php
if(isset($_POST['send'])) { //Checks if the applicant has submitted the form.

if((!$_POST['email']) || (!$_POST['name']) || (!$_POST['sub']) || (!$_POST['job'])) { //Make sure they have filled in all fields.

echo "Some fields have been left blank, please go back and refill them!"; //Display the error.
} //End the check on the fields.

else //Maybe..

{
$email = addslashes(htmlspecialchars($_POST['email'])); //Removes the slashes.
$name = addslashes(htmlspecialchars($_POST['name']));
$sub = addslashes(htmlspecialchars($_POST['sub']));
$job = addslashes(htmlspecialchars($_POST['job']));

$mail = "[email protected]"; //Change this to the the email you want the message to go to.
$from = "$name,$job"; //Displays the applicants name and the job they want.
$subject = "$name has applied for the $job!"; //Displays the name and the job in the email subject.
$msg = "Heres their details:<br><br>
$email, $name, $job<br><br>$msg"; //The users message.
mail("$mail","$from","$subject","$msg"); //We use the mail(); function to send the email.

echo "Your application has been sent, we will reply within 2-3 working days!"; //Hooharr! Success!
} //End the else.
} // End the post.

else //Form time!

{

echo "<form method='post' action='$_SERVER[PHP_SELF]'>
Email:<br>
<input type='text' name='email' size='30'><br>
Name:<br>
<input type='text' name='name' size='30'><br>
Job:<br>
<select name='job' size='1'>
<option value='Radio manager' value='Radio manager'>Radio manager</option>
<option value='DJ' value='DJ'>DJ</option>
<option value='News team' value='News team'>News team</option>
<option value='Graphics team' value='Graphics team'>Graphics team</option>
<option value='Forum MOD' value='Forum MOD'>Forum MOD</option>
<option value='Alterations team' value='Alterations team'>Alterations team</option>
</select><br>
Message:<br>
<textarea name='sub' cols='45' rows='6'></textarea><br>
<input type='submit' name='send' value='Submit'></form>";
//You can change these values or whatever, have fun.

} //End the last else.
?>

Excellent
07-08-2008, 02:53 PM
Oh btw please don't claim you made this if you use it :)

Edited by Invent (Forum Moderator): Please do not double post.

Source
07-08-2008, 02:56 PM
I can already see errors in it like you not closing off strings...

Excellent
07-08-2008, 02:57 PM
I can already see errors in it like you not closing off strings...Works fine when I submit an email on my server. All strings are closed or php would return a nasty error.

Source
07-08-2008, 03:33 PM
dw I only skimmed over it, just saw you broke it up over 2 lines. My bad.

Excellent
07-08-2008, 03:34 PM
dw I only skimmed over it, just saw you broke it up over 2 lines. My bad.Haha no worries, over the $msg string?

Excellent
07-08-2008, 03:47 PM
Quick edit: With the first script when you looked at the emails all the details were messed up, heres the edit! MOD merge if you will :0


<?php
if(isset($_POST['send'])) { //Checks if the applicant has submitted the form.

if((!$_POST['email']) || (!$_POST['name']) || (!$_POST['sub']) || (!$_POST['job'])) { //Make sure they have filled in all fields.

echo "Some fields have been left blank, please go back and refill them!"; //Display the error.
} //End the check on the fields.

else //Maybe..

{
$email = addslashes(htmlspecialchars($_POST['email'])); //Removes the slashes.
$name = addslashes(htmlspecialchars($_POST['name']));
$sub = addslashes(htmlspecialchars($_POST['sub']));
$job = addslashes(htmlspecialchars($_POST['job']));

$mail = "[email protected]"; //Change this to the the email you want the message to go to.
$subject = "$name has applied for the $job job!"; //Displays the name and the job in the email subject.
$mess = "Heres their details:
Name: $name
Email: $email
Job: $job
Message:
$sub";

mail("$mail","$subject","$mess"); //We use the mail(); function to send the email.

echo "Your application has been sent, we will reply within 2-3 working days!"; //Hooharr! Success!
} //End the else.
} // End the post.

else //Form time!

{

echo "<form method='post' action='$_SERVER[PHP_SELF]'>
Email:<br>
<input type='text' name='email' size='30'><br>
Name:<br>
<input type='text' name='name' size='30'><br>
Job:<br>
<select name='job' size='1'>
<option value='Radio manager' value='Radio manager'>Radio manager</option>
<option value='DJ' value='DJ'>DJ</option>
<option value='News team' value='News team'>News team</option>
<option value='Graphics team' value='Graphics team'>Graphics team</option>
<option value='Forum MOD' value='Forum MOD'>Forum MOD</option>
<option value='Alterations team' value='Alterations team'>Alterations team</option>
<option value='Forum Manager' value='Forum Manager'>Forum Manager</option>
</select><br>
Message:<br>
<textarea name='sub' cols='45' rows='6'></textarea><br>
<input type='submit' name='send' value='Submit'></form>";
//You can change these values or whatever, have fun.

} //End the last else.
?>

wsg14
07-08-2008, 04:16 PM
It'll still be messed up, as you forgot line breaks.

Dentafrice
07-08-2008, 04:24 PM
I suggest next time you read php.net for the actual process of using mail()

mail(e-mail to, subject, message, headers);

You didn't do that.

Excellent
07-08-2008, 05:27 PM
It'll still be messed up, as you forgot line breaks.No no, the script itself works 100% fine, the coding isn't as clean as it could be though.


I suggest next time you read php.net for the actual process of using mail()

mail(e-mail to, subject, message, headers);

You didn't do that.Thanks for the tip :)

Calon
07-08-2008, 06:36 PM
addslashes(htmlspecialchars($_POST['email']))Not keen on that, I'd have something along the lines of..



function streetcleaner($string) {

$string = htmlspecialchars( $string );
$string = addslashes( $string );
$string = mysql_real_escape_string( $string );
$string = stripslashes( $string );

return $string;
}

streetcleaner($_POST["email"]);

Source
07-08-2008, 06:45 PM
It doesn't matter that much calon as its only doing into a mail functions and no databases are present so it would be relativly hard to hack it. Unless they were trying to run the system command to run a shell or something.

Excellent
07-08-2008, 06:48 PM
addslashes(htmlspecialchars($_POST['email']))Not keen on that, I'd have something along the lines of..



function streetcleaner($string) {

$string = htmlspecialchars( $string );
$string = addslashes( $string );
$string = mysql_real_escape_string( $string );
$string = stripslashes( $string );

return $string;
}

streetcleaner($_POST["email"]);
I'd probably use that if my script was a lot more bigger and was using databases as it's much more secure than addslashes and specialchars :p Thanks though :)

Dentafrice
07-08-2008, 07:29 PM
just do htmlentities and mysql_real_escape_string even though it isn't going into a database.

Should make it pretty secure ;)

Calon
08-08-2008, 01:12 AM
Oh, right.. Never noticed :P

You should make them log within the database or something then. :P

Want to hide these adverts? Register an account for free!