webForumDet fria alternativet

Hjälp med kontaktformulär

PHPur PHP

9 svar · 2 212 visningar · startad av Mycodez

Medlem sedan feb. 2010445 inlägg
Frågan#1

Tjena!
Jag har följt en video guide på hur man gör en snygg java/php submitform :) Det jag vill utifrån det är att göra om det till ett kontkatformulär :)
Men när jag följde guiden så gjorde vi själva formuläret i ett html dokument som heter index.html men jag vill ju ha det i en fil om heter contact.php

själva formen du skriver i har koden

<div id="TextContainer">
                	 	<div id="wrapper">
    	
        <h1 align="center">Give us your feedback</h1>
        
      <div id="inner-wrapper">
          
		<form id="feedback" action="feedback.php" enctype="multipart/form-data" method="post">
          
          	<div id="response"><!--This will hold our error messages and the response from the server. --></div>           
            
                <div class="inputs" align="center">
                  <label>Name&nbsp;&nbsp;&nbsp;</label><br/>          
                  <input name="name" type="text" class="required" id="name" size="30" />           
                </div>          
            
                <div class="inputs" align="center">
                  <label>Email&nbsp;&nbsp;&nbsp;</label><br/>             
                  <input name="email" type="text" class="required" id="email" size="30" />           
               </div>         
            
                <div class="inputs" align="center">
                  <label>Message</label><br/>         
                  <textarea name="message" cols="25" rows="" class="required" id="message"></textarea>          
                </div>                       
                
                <div class="button">
                  <input type="submit" name="submit" id="submit" value="Submit" />
                </div>
                
                <div class="inputs">
                    <input type="hidden" name="honeypot" id="honeypot" value="http://" />            
                    <input type="hidden" name="humancheck" id="humancheck" class="clear" value="" />
                </div>
        </form>
        
      </div><!-- End inner-wrapper -->
                
	</div><!-- End wrapper -->

som ni ser skickas det till en sida kallad feedback.php koden ser ut

<?php 
sleep(2);
//Sanitize incoming data and store in variable
$name = trim(stripslashes(htmlspecialchars($_POST['name'])));	  		
$email = trim(stripslashes(htmlspecialchars($_POST['email'])));
$message = trim(stripslashes(htmlspecialchars($_POST['message'])));	    
$humancheck = $_POST['humancheck'];
$honeypot = $_POST['honeypot'];

if ($honeypot == 'http://' && empty($humancheck)) {	
		
		//Validate data and return success or error message
		$error_message = '';	
		$reg_exp = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,4}$/";
		
		if (!preg_match($reg_exp, $email)) {
				    
					$error_message .= "<p>A valid email address is required.</p>";			   
		}
		if (empty($name)) {
				   
				    $error_message .= "<p>Please provide your name.</p>";			   
		}			
		if (empty($message)) {
					
					$error_message .= "<p>A message is required.</p>";
		}		
		if (!empty($error_message)) {
					$return['error'] = true;
					$return['msg'] = "<h3>Oops! The request was successful but your form is not filled out correctly.</h3>".$error_message;					
					echo json_encode($return);
					exit();
		} else {
			
			$return['error'] = false;
			$return['msg'] = "<p>Thanks for your feedback " .$name .".</p>"; 
			echo json_encode($return);	
		  }		
} else {
	
	$return['error'] = true;
	$return['msg'] = "<h3>Oops! There was a problem with your submission. Please try again.</h3>";	
	echo json_encode($return);
}
	
?>

Och här kommer java koden kallad ajax_submit.js


$(document).ready(function() {
	
	$('form #response').hide();
	
	$('#submit').click(function(e) {
		
		// prevent forms default action until
		// error check has been performed
		e.preventDefault();
				
		// grab form field values
		var valid = '';
		var required = ' is required.';
		var name = $('form #name').val();
		var email = $('form #email').val();
		var message = $('form #message').val();
		var honeypot = $('form #honeypot').val();
		var humancheck = $('form #humancheck').val();
		
		// perform error checking
		if (name = '' || name.length <= 2) {
			valid = '<p>Your name' + required +'</p>';	
		}
		
		if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
			valid += '<p>Your email' + required +'</p>';												  
		}
		
		if (message = '' || message.length <= 5) {
			valid += '<p>A message' + required + '</p>';	
		}
		
		if (honeypot != 'http://') {
			valid += '<p>Spambots are not allowed.</p>';	
		}
		
		if (humancheck != '') {
			valid += '<p>A human user' + required + '</p>';	
		}
		
		// let the user know if there are erros with the form
		if (valid != '') {
			
			$('form #response').removeClass().addClass('error')
				.html('<strong>Please correct the errors below.</strong>' +valid).fadeIn('fast');			
		}
		// let the user know something is happening behind the scenes
		// serialize the form data and send to our ajax function
		else {
			
			$('form #response').removeClass().addClass('processing').html('Processing...').fadeIn('fast');										
			
			var formData = $('form').serialize();
			submitForm(formData);			
		}			
			
	});
});

// make our ajax request to the server
function submitForm(formData) {
	
	$.ajax({	
		type: 'POST',
		url: 'feedback.php',		
		data: formData,
		dataType: 'json',
		cache: false,
		timeout: 7000,
		success: function(data) { 			
			
			$('form #response').removeClass().addClass((data.error === true) ? 'error' : 'success')
						.html(data.msg).fadeIn('fast');	
						
			if ($('form #response').hasClass('success')) {
				
				setTimeout("$('form #response').fadeOut('fast')", 5000);
			}
		
		},
		error: function(XMLHttpRequest, textStatus, errorThrown) {
						
			$('form #response').removeClass().addClass('error')
						.html('<p>There was an<strong> ' + errorThrown +
							  '</strong> error due to a<strong> ' + textStatus +
							  '</strong> condition.</p>').fadeIn('fast');			
		},				
		complete: function(XMLHttpRequest, status) { 			
			
			$('form')[0].reset();
		}
	});	
};
// JavaScript Document

Den javakoden ovan här är inkluderad i contaktsidan kallad contact.php
vart ska jag sätta denna php kod som skicka mailet till min mailinbox?


			//Set SMPT in php.ini
			ini_set("SMTP", "smtp66.webbpost.se");
    		$to = "robin@mycodez.se";
			$email = $name;
    		$subject = $email;
    		$message = $message;
    		mail($to, $subject,$message, $email );

just det jag har tre bilder till detta formulär också.
error.png = den visas när det blir något fel.
icon_ok.png = den visas när allt har gått bra.
ajax-loader.gif = det är en bild som snurrar lite snyggt som visar att det jobbas:)

Är ni snälla och hjälper mig. Och förklarar hur man kan lösa detta, så man lär sig lite också:)

Tack på för hand Robin K.

Medlem sedan feb. 2010445 inlägg
#2

Jag har löst det så man kan skicka mail får ndet men jag får inte min bilder att vissas
vad kan vara fel?

Medlem sedan feb. 2010445 inlägg
#3

ni kan se själva kontaktforumläret i gång på http://www.mycodez.se/test/contact.php

Medlem sedan mars 2006296 inlägg
#4

Sökvägen till bilderna är fel css:en pekar till mappen http://www.mycodez.se/test/style/, men bilderna ligger i http://www.mycodez.se/test/

Medlem sedan feb. 2010445 inlägg
#5

Tack så mycket :) jätte bussigt av er att hjälpa mig med det :) men jag märke än grej på när man har testar formuläret och märkt att vissa har testat det (A) så har jag märkt att men inte kan vissa ÅÄÖ på min mobil som jag har kopplat till min mailkorg vad kan det var då räcker det att man skriver in detta?

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

kan det var en lösning tro?

Medlem sedan mars 2006296 inlägg
#6

Nemas problemas :)
Det beror på vad filen har för charset. Du kan prova att lägga till headers i mailet.


<?php
$to      = 'nobody@example.com';
$subject = 'the subject';

// utf8_decode kodar om meddelandet utf8 till iso...
$message = utf8_decode('hello');

// headers talar om för mailprogrammet vilken charset som används
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

mail($to, $subject, $message, $headers);
?>
Medlem sedan feb. 2010445 inlägg
#7

Okej :)
jag kom på en grej till nu när jag läste detta:)
Jag vill i meddelandet när man läser meddelande så vill jag veta först och fram se vad mailet är i fårn så här tex så här vill jag det ser ut när jag får det:)

Från: Namn
Email: test@test.com

Meddelande:
Här kommer då meddelandet

Kan ni hjälpa mig med detta?

Medlem sedan juni 20019 519 inlägg
#8

Bygg ut din $message med det du vill att meddelandet skall vara.

Medlem sedan feb. 2010445 inlägg
#9

okej :)

Medlem sedan feb. 2010445 inlägg
#10

Tack nu e min kontaktsida som jag vill ha den testa den vet jag ;)
http://www.mycodez.se/test/contact.php

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