Gå til innhold

Enkelt og greit kontakt skjema


Anbefalte innlegg

Videoannonse
Annonse
Ingen problem, si i fra hvis du trenger hjelp :)

6589768[/snapback]

 

Jeg trenger noe hjelp her. Jeg vil nemlig at selve skjemaet skal se slik ut:

 

<table width="400" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Bestilling</strong></td>
</tr>
</table>

<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td><form name="form1" method="post" action="send_epost.php">
<table width="100%" border="0" cellspacing="1" cellpadding="3">

<tr>
<td>Navn</td>
<td>:</td>
<td><input name="name" type="text" id="name" size="50"></td>
</tr>

<tr>
<td>Etternavn</td>
<td>:</td>
<td><input name="name" type="text" id="name" size="50"></td>
</tr>

<tr>
<td>Epost</td>
<td>:</td>
<td><input name="customer_mail" type="text" id="customer_mail" size="50"></td>
</tr>

<tr>
<td>Adresse</td>
<td>:</td>
<td><input name="customer_mail" type="text" id="customer_mail" size="50"></td>
</tr>

<tr>
<td>Kommentar</td>
<td>:</td>
<td><textarea name="detail" cols="50" rows="4" id="detail"></textarea></td>
</tr>

<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Send bestilling"> <input type="reset" name="Submit2" value="Start på nytt"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>

 

Men hvordan fikser jeg da send_epost.php?

 

<?php
// Kontakt tittel
$subject ="$subject";
// Emne
$message="$detail";

// E-post fra sender
$mail_from="$customer_mail";
// Av
$header="from: $name <$mail_from>";

// Skriv inn din e-post adresse
$to ='[email protected]';

$send_contact=mail($to,$subject,$message,$header);

// Sjekk om e-posten ble sendt til din adresse
// Vis melding "Din bestilling er sendt!"
if($send_contact){
echo "Din bestilling er sendt!";
}
else {
echo "ERROR";
}
?>

 

Jeg ser at noe er galt, meg jeg finner ikke helt ut hvordan jeg skal fikse det :blush:

Endret av Iris_L
Lenke til kommentar
Noe sier meg at han kommer til å forstå det siste du sa...

6591516[/snapback]

 

 

Bør i hvertfall forstå dette hvis du er i tvil :innocent:

 

<?php
// Kontakt tittel
$subject ="$_POST[subject]";
// Emne
$message="$_POST[detail]";

// E-post fra sender
$mail_from="$_POST[customer_mail]";
// Av
$header="from: $name <$mail_from>";

// Skriv inn din e-post adresse
$to ='[email protected]';

$send_contact=mail($to,$subject,$message,$header);

// Sjekk om e-posten ble sendt til din adresse
// Vis melding "Din bestilling er sendt!"
if($send_contact){
echo "Din bestilling er sendt!";
}
else {
echo "ERROR";
}
?>

 

Edit: Ser nå at det skjemaet du hadde ikke vil virke med dette scriptet, du har forskjellige navn på komponentene og du har flere ting med, men dette bør du klare å fikse, bare legger inn de andre tingene i $message

Endret av trrunde
Lenke til kommentar
Vi skal da ikke ha hermetegn rundt variablene skal vi vel?

 

$subject  = $_POST['subject'];

Dette blir nok mer korrekt. Og bruk fnutter (') inni $_POST[].

6591830[/snapback]

 

Begynte å lure om det var en ny form for PHP koding jeg aldri hadde sett før, det han skrev :p

Endret av goggen90
Lenke til kommentar
Er ikke nødvendig med ' inni []  :whistle:  :yes:

6592647[/snapback]

JO!!

 

Eller: med mindre indexen er en konstant (definert med define()), men det er den ikke i dette tilfellet.

 

Du kan prøve med denne koden:

<?php
error_reporting(E_ALL);
$test['foo'] = 'bar';
echo $test['foo'];
echo $test[foo];
?> 

 

Legg merke til at det kommer en Notice på linje 5, der det ikke er brukt fnutter. Det er altså mye mer enn en god vane, det er det eneste riktige..

 

Det står mer om dette i manualen: http://www.php.net/manual/en/language.type...s.array.foo-bar

 

(PHP er tilogmed så dumsnill at det tilgir feilene dine, og prøver å løse det uten at du merker det, derfor vil du først få problemer når du har en index som er lik som en definert konstant, istedenfor å venne deg til å skrive riktig kode med en gang.)

 

-Simen

Lenke til kommentar

Har funnet et nå, men jeg får det ikke til å fungere.. Er helt sikkert noe som mangler:

 

<?php

// E-postadressen e-postene skal sendes til:
$sendtil = "[email protected]";


if(isset($_POST['send'])) {

function kontakt_error($tekst) {
 topp("Kontakt");
 print "Under sendingen av e-posten oppsto følgende feil:<br /><br />\n<strong>" . $tekst . "</strong>\n<br /><br /><a href=\"javascript:history.go(-1)\">Tilbake</a>";
 bunn();
}

   sleep(5);
if(!empty($_FILES['bilde']['name'])) {
 switch($_FILES['bilde']['type']) {
 	case "image/jpeg": break;
 	case "image/pjpeg": break;
 	case "image/png": break;
 	case "image/x-png": break;
 	case "image/gif": break;
 	default: kontakt_error("Tillatte filtyper for vedlegg er kun JPEG, GIF og PNG.");
 }
 
 if($_FILES['bilde']['error'] > 0) {
 	switch($_FILES['bilde']['error']) {
   case 1: kontakt_error("Vedlegget er større enn 0,5 MB og ble ikke lastet opp."); break;
   case 2: kontakt_error("Vedlegget er større enn 0,5 MB og ble ikke lastet opp."); break;
   case 3: kontakt_error("Vedlegget ble av en ukjent grunn ikke lastet opp."); break;
   case 4: kontakt_error("Vedlegget ble av en ukjent grunn ikke lastet opp."); break;
 	}
 }
 
 if($_FILES['bilde']['size'] > 500000) {
 	kontakt_error("Maksimal filstørrelse for vedlegget er 0,5 MB (500 KB).");
 }
 
 $fileatt = $_FILES['bilde']['tmp_name']; 
 $fileatt_type = $_FILES['bilde']['type']; 
 $fileatt_name = $_FILES['bilde']['name'];

 if (is_uploaded_file($fileatt)) { 
   $file = fopen($fileatt,'rb'); 
   $data = fread($file,filesize($fileatt)); 
   fclose($file);
 	$semi_rand = md5(time()); 
 	$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
 	
 	$data = chunk_split(base64_encode($data));
 	
 	$ekstraheader = "MIME-Version: 1.0\n" . 
     	"Content-Type: multipart/mixed;\n" . 
     	" boundary=\"{$mime_boundary}\"";
 	$beskjedtopp =  "--{$mime_boundary}\n" . 
     	"Content-Type: text/plain; charset=\"iso-8859-1\"\n" . 
     	"Content-Transfer-Encoding: 7bit\n\n";
           $beskjedbunn =  "\n\n--{$mime_boundary}\n" . 
     	"Content-Type: {$fileatt_type};\n" . 
     	" name=\"{$fileatt_name}\"\n" . 
     	"Content-Disposition: attachment;\n" . 
     	" filename=\"{$fileatt_name}\"\n" . 
     	"Content-Transfer-Encoding: base64\n\n" . 
     	$data . "\n\n" . 
     	"--{$mime_boundary}--\n"; 
 }
}

   $epost = $_POST['epost'];
   $error_fyllut_tekst = " <span class=\"error\">Alle felter må fylles ut!</span><br />";
   $error_epost_tekst = " <span class=\"error\">Skriv inn en ordentlig e-postadresse!</span><br />";

   if($epost[navn] == "" ||$epost[emne] == "" ||$epost[beskjed] == "") {
       $error_fyllut = $error_fyllut_tekst;
       $error = true;
   }

   if(!preg_match("/([\\w\\.\\-]+)(\\@[\\w\\.\\-]+)(\\.[a-z]{2,4})+/i", $epost[epost])) {
       $error_epost = $error_epost_tekst;
       $error = true;
   }
   
   if(!$error) {
       topp("Kontakt");
       print "<h1>Kontakt Dyrepraten</h1>\n";
       $beskjed = $beskjedtopp . stripslashes($epost[beskjed]) . $beskjedbunn;
       $header = "From: " . $epost[navn] . " <" . $epost[epost] . ">\n" . $ekstraheader;
       if(mail($sendtil, $epost[emne], $beskjed, $header)) {
           print "Takk for at du sendte oss e-post, " . $epost[navn] . ".";
       }
       else {
           print "En feil oppsto og e-posten ble ikke sendt.<br /><br /><a href=\"javascript:history.go(-1)\">Gå tilbake og prøv på nytt</a>";
       }
       bunn();
       exit;
   }
}



?>

<h1>Kontakt Dyrepraten</h1>

<?php
print $error_fyllut;
print $error_epost;
if($error) print "<br />";
?>

<form action="kontakt.php" method="post" enctype="multipart/form-data">

<input type="hidden" name="MAX_FILE_SIZE" value="500000" />

<strong>Ditt navn:</strong><br />
<input name="epost[navn]" type="text" size="45" value="<?php print $epost[navn]; ?>" <?php print $readonly; ?>/><br /><br />

<strong>Din e-postadresse:</strong><br />
<input name="epost[epost]" type="text" size="45" value="<?php print $epost[epost]; ?>"<?php print $readonly; ?> /><br /><br />

<strong>Emne:</strong><br />
<input name="epost[emne]" type="text" size="45" value="<?php print $epost[emne]; ?>" /><br /><br />

<strong>Beskjed:</strong><br />
<textarea name="epost[beskjed]" rows="10" cols="42"><?php print $epost[beskjed]; ?></textarea><br /><br />

<?php if(brukerID > 0) { ?>
<strong>Eventuelt bildevedlegg:</strong><br />
<input name="bilde" type="file" /><br /><br />
<?php } ?>

<input name="send" type="submit" value="Send" />

</form>

<?php
?>

Lenke til kommentar

Okey, jeg har lastet ned det fra epleweb og modifisert det litt nå, men det er noe feil i det. Kan noen finne den/dem? Jeg får sendt & mottatt mailen, men alt som står er: From: (ip adresse)

Email: [email protected]

 

<?php

/**********************************/
/*       EMAIL CONTACT FORM       */
/*          VERSION 1.1           */
/* Copyright 2004 (c) Epleweb.com */
/**********************************/

/*	GNU General Public License
--------------------------------------------------------------------
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

if ($_POST['submit'] == TRUE) {
$receiverMail = "[email protected]";
$navn  = stripslashes(strip_tags($_POST['navn']));
$email  = stripslashes(strip_tags($_POST['email']));
   $adresse  = stripslashes(strip_tags($_POST['adresse']));
$telefonnummer	= stripslashes(strip_tags($_POST['telefonnummer']));
$kommentar  = stripslashes(strip_tags($_POST['kommentar']));
$ip  	= $_SERVER['REMOTE_ADDR'];
$msgformat	= "From: $name ($ip)\nEmail: $email\n\n$msg";

if(empty($navn) || empty($email) || empty($adresse) || empty($telefonnummer) || empty($kommentar)) {
 echo "<h2>Bestillingen ble ikke sendt</h2><p>Du må flylle inn alle felter!</p>";
}
elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
 echo "<h2>Bestillingen ble ikke sendt</h2><p>Email adressen din er ikke gyldig!</p>";
}
elseif(mail($receiverMail, $subject, $msgformat, "From: $name <$email>")) {
 echo "<h2>Bestillingen er sendt!</h2><p>Jeg vil kontakte deg så snart som mulig for å bekrefte din bestilling.</p>"; }
else {
 echo "<h2>Bestillingen ble ikke sendt</h2><p>Kan ikke kontakte serveren. Prøv igjen senere.</p>";
}
}
else { ?>
<form method="post" action="">
<p>
<label for="navn">Navn</label>
<input id="navn" name="navn" type="text" size="30" maxlength="40" /><br />

<label for="email">Email</label>
<input id="email" name="email" type="text" size="30" maxlength="40" /><br />

<label for="adresse">Adresse</label>
<input id="adresse" name="adresse" type="text" size="30" maxlength="40" /><br />

   <label for="telefonnummer">Telefonnummer</label>
<input id="telefonnummer" name="telefonnummer" type="text" size="30" maxlength="40" /><br />


<label for="kommentar">Kommentar</label>
<textarea id="kommentar" name="kommentar" cols="50" rows="6"></textarea><br />

<label for="submit"> </label>
<input id="submit" class="button" type="submit" name="submit" value="Send bestilling!" />
</p>
</form>
<?php } ?>

 

Foressten så ser jo kontaktskjemaet helt knust ut.. Altså alt står hulter til bulter :( Noen som vet hvordan jeg kan få alle "boksene" på lik linje?

 

Takker :yes:

Endret av Iris_L
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...