webForumDet fria alternativet

email formulär vägrar fungera

4 svar · 874 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 626 inlägg
#1

Hej,

Har ett litet enkelt email formulär kopplat till min wordpress sida men det vägrar fungera.

Formuläret:

				<form method="post" id="contactform" action="http://www.domän.com/wp-content/themes/jahopp/assets/php/mail.php" enctype="multipart/form-data" class="global">

					<fieldset>
				    	<div class="input-div">
	 						<label for="name">Full Name
								<input type="text" id="name" name="name" maxlength="75" value="" tabindex="1" />
	             			</label>

	             			<label for="email">Email
	               				<input type="text" id="email" name="email" maxlength="75" value="" tabindex="2" />
	             			</label>
	 				  </div>
	 				  <div class="message-div">
	 				    <label for="message">Message
	 						<textarea id="message" name="message" cols="20" rows="5" tabindex="3"></textarea>
	 					</label>
	 					<input type="submit" class="submit" value="Send" />
						<input type="hidden" name="c_email" id="c_email" value="<?php echo stripslashes(get_option('td_email_id')); ?>" />
	 				  </div>

					</fieldset>
				</form>

PHP Scriptet som anropas mail.php:

<?php

// CONFIGURATION --------------------------------------------------------------

// This is the email where the contact mails will be sent to. 
// In WordPress Edition, it will be done via the theme admin. You don't need to modify this file under WP Edition.
$config['recipient'] = 'info@info.com';

// This is the subject line for contact emails.
// The variable %name% will be replaced with the name of the sender.
$config['subject'] = 'Contact message from %name%';

// These are the messages displayed in case of form errors.
$config['errors'] = array
(
	'no_name'       => 'Full name is empty',
	'no_email'      => 'Email address is empty',
	'invalid_email' => 'Invalid email address',
	'no_message'    => 'Message is empty',
);

// END OF CONFIGURATION -------------------------------------------------------

// Ignore non-POST requests
if ( ! $_POST)
	exit('Nothing to see here. Please go back to the site.');

// Was this an AJAX request or not?
$ajax = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

// Set the correct HTTP headers
header('Content-Type: text/'.($ajax ? 'plain' : 'html').'; charset=utf-8');

// Extract and trim contactform values
$name    = isset($_POST['name']) ? trim($_POST['name']) : '';
$email   = isset($_POST['email']) ? trim($_POST['email']) : '';
$message = isset($_POST['message']) ? trim($_POST['message']) : '';
$config['recipient'] = isset($_POST['c_email']) ? trim($_POST['c_email']) : '';

// Take care of magic quotes if needed (you really should have them disabled)
if (get_magic_quotes_gpc())
{
	$name    = stripslashes($name);
	$email   = stripslashes($email);
	$message = stripslashes($message);
}

// Initialize the errors array which will also be sent back as a JSON object
$errors = NULL;

// Validate name
if ($name == '' || strpos($name, "\r") || strpos($name, "\n"))
{
	$errors['name'] = $config['errors']['no_name'];
}

// Validate email
if ($email == '')
{
	$errors['email'] = $config['errors']['no_email'];
}
elseif ( ! preg_match('/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD', $email))
{
	$errors['email'] = $config['errors']['invalid_email'];
}

// Validate message
if ($message == '')
{
	$errors['message'] = $config['errors']['no_message'];
}

// Validation succeeded
if (empty($errors))
{
	// Prepare subject line
	$subject = str_replace('%name%', $name, $config['subject']);

	// Additional mail headers
	$headers  = 'Content-Type: text/plain; charset=utf-8'."\r\n";
	$headers .= 'From: '.$email;

	// Send the mail
	if ( ! mail($config['recipient'], $subject, $message, $headers))
	{
		$errors['server'] = 'There seems to be a technical problem with our server. We are sorry. '.
		                    'Could you mail your message directly at '.$config['recipient'].'? Thank you.';
	}
}

if ($ajax)
{
	// Output the possible errors as a JSON object
	echo json_encode($errors);
}
else
{
	// Show a simple HTML feedback message in case of non-javascript support
	if (empty($errors))
	{
		echo '<h4>Thank you</h4>';
		echo '<p>Your message has been sent.</p>';
	}
	else
	{
		echo '<h4>Oops!</h4>';
		echo '<p>Please go back and fix the following errors:</p>';
		echo '<ul><li>';
		echo implode('</li><li>', $errors);
		echo '</li></ul>';
	}
}

Skulle verkligen uppskatta om någon kunde komma med ngt genidrag, jag har en smtp plugin installerad på min wordpress blogg men den hjälper inte heller, dock när jag skickar ett test mail från det pluginnet så fungerar det, skall man kanske köra någon koppling mot smtp servern i php scriptet? Om så hur gör man det?

Mvh
G

GimboMedlem sedan dec. 20001 626 inlägg
#2

ingen som har några ideer?

fiddlerMedlem sedan juli 20023 617 inlägg
#3

Ska verkligen action i formuläret vara en hel url? Testa med mail.php förutsatt att filen ligger i samma katalog.

metalboyMedlem sedan jan. 2005953 inlägg
#4

På vilket sätt fungerar det inte? Får du något felmeddelande eller är det bara att det inte kommer fram något mail?

Har du kollat i spam/skräppost-mapp om det finns någon sådan? Många mailservrar (till exempel Hotmail/Outlook.com) kräver fler mailheaders än bara "content-type" och "from" för att behandla det som icke-skräppost.

Att skicka mail med PHP:s mail-funktion kan vara riktigt knepigt att få att fungera, jag rekommenderar att du tittar på PHPMailer (http://sourceforge.net/projects/phpmailer/) istället.

GimboMedlem sedan dec. 20001 626 inlägg
#5

Inget händer, inget felmeddelande den står bara och tuggar, och inget mail går iväg har testat genom att ta bort url'en men det fungerar ändå inte trots rätt sökväg

137 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)