Jump to content
Sign in to follow this  
Iris_L

Enkelt og greit kontakt skjema

Recommended Posts

Er det noen som vet hvor jeg kan finne det? Eller en toturial på hvordan jeg lager selv? Jeg har lett på hotscripts.com men jeg fant ikke noe til mitt bruk.

 

Takker for svar :)

Share this post


Link to post
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 ='post@dyrepraten.com';

$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:

Edited by Iris_L

Share this post


Link to post

Scriptet bruker register_global, dette er vanligvis av pga stor sikkerhetsrisiko, du kan skrive det om ved å skrive $subject=$_POST[subject] osv på alle plassene der du henter en variabel

Share this post


Link to post
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 ='post@dyrepraten.com';

$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

Edited by trrunde

Share this post


Link to post

Vi skal da ikke ha hermetegn rundt variablene skal vi vel?

 

$subject = $_POST['subject'];

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

Share this post


Link to post
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]

 

 

Er ikke nødvendig med ' inni [] :whistle::yes:

Share this post


Link to post
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

Edited by goggen90

Share this post


Link to post
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

Share this post


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

 

Okey, sikkert riktig dette, var scix som sa en gang at det ikke var nødvendig og når jeg testet uten funket det fint.

Share this post


Link to post

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 = "dyreprat@hotmail.com";


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
?>

Share this post


Link to post

[] forteller bare PHP at du skal indeksere et array. Om du vil indeksere med tall så bruker du [1] f.eks. Bruker du assosiative arrays så indekserer du med tekst slik ['tekst her'].

 

Jeg har et kontaktskjema her: http://kaffemannen.net

Det bruker ajax for å sende inn mailen slik at du får hurtigere respons.

Share this post


Link to post

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: mail@mail.com

 

<?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 = "dyreprat@hotmail.com";
$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:

Edited by Iris_L

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...