Contact form

I have one problem with my html form conecting to my php code that should send me the info from my website from to my email account.

This is my form code in html file “kontakt.html”:

[php]

Ime in priimek


Email


Telefon


Kategorija

Pomoč
Spletne stortive
Podpora
Plačilo
Ostalo


Zadeva


*Sporočilo

					<p><input type="submit" class="submit" id="submit" value="Pošlji" /></p>
				</form>[/php]

And this is my php code in file “kontakt.php” this code should send me and email, but it doesnt work can any one tell me where is the problem.

[php]<?php
/*
This first bit sets the email address that you want the form to be submitted to.
You will need to change this value to a valid email address that you can access.
*/
$webmaster_email = "[email protected]";

/*
This bit sets the URLs of the supporting pages.
If you change the names of any of the pages, you will need to change the values here.
*/
$feedback_page = “kontakt.html”;
$error_page = “index.html”;
$thankyou_page = “index.html”;

/*
This next bit loads the form field data into variables.
If you add a form field, you will need to add it here.
*/
$email = $_REQUEST[‘email’];
$name = $_REQUEST[‘name’];
$phone = $_REQUEST[‘phone’];
$kategorija = $_REQUEST[‘kategorija’];
$zadeva = $_REQUEST[‘zadeva’];
$sporocilo = $_REQUEST[‘sporocilo’];

/*
The following function checks for email injection.
Specifically, it checks for carriage returns - typically used by spammers to inject a CC list.
*/
function isInjected($str) {
$injections = array(’(\n+)’, ‘(\r+)’, ‘(\t+)’, ‘(%0A+)’, ‘(%0D+)’, ‘(%08+)’, ‘(%09+)’);
$inject = join(’|’, $injections);
$inject = “/$inject/i”;
if (preg_match($inject, $str)) {
return true;
} else {
return false;
}
}

// If the user tries to access this script directly, redirect them to the feedback form,
if (!isset($_REQUEST[‘email’])) {
header(“Location: $feedback_page”);
}

// If the form fields are empty, redirect to the error page.
elseif (empty($email) || empty($sporocilo)) {
header(“Location: $error_page”);
}

// If email injection is detected, redirect to the error page.
elseif (isInjected($email)) {
header(“Location: $error_page”);
}

// If we passed all previous tests, send the email then redirect to the thank you page.
else {
mail("$webmaster_email", “Feedback Form Results”, $sporocilo, “From: $email”);
header(“Location: $thankyou_page”);
}
?>[/php]

Thank you!

Looks to me it’s the

[php]
if ()
{
}
elseif()
{
}
elseif()
{
}
else
{
}
[/php]
the script will only execute ONE of the {}-blocks and your ‘mail’ function is in the ‘else’ block.
If any of the other blocks is executed it will not send.

What I think you want to do is move the ‘mail’ part out of the if-elseif-else tree and put it directly underneath.

( BTW, I dount setting a header AFTER sending the mail does much good :wink: )

Good luck!

O.

Sponsor our Newsletter | Privacy Policy | Terms of Service