Just nu i M3-nätverket
Jump to content

Simpel PHPscript - Problem


xZetsu

Recommended Posts

Hejsan!

Det är så att jag försöker skapa mig ett simpelt PHPscript på min hemsida, men lyckas inte få det att funka. Det är egentligen bara ett simpelt mailscript.

 

Här är den koden jag försöker använda just nu:

<?php
function GetPostValue ( $key ) {
   return isset ( $_POST[$key] ) ? $_POST[$key] : '';
}

$to = 'info@left2lan.se';
$from = GetPostValue ( 'epost' );

// Validera $from
if ( !empty ( $from ) ) {
   // Detta kan göras MYCKET bättre
   if ( preg_match ( '/^w+@w+.w+$/', $from ) == 0 ) {
       die ( 'Du måste ange en giltlig email.' );
   }
} else {
   die ( 'Du måste ange en email.' );
}

$fields = array (
   'fnamn' => GetPostValue ( 'fnamn' ),
   'enamn' => GetPostValue ( 'enamn' ),
   'epost' => GetPostValue ( 'epost' ),
   'pnummer' => GetPostValue  ( 'pnummer' ),
   'postnummer' => GetPostValue ( 'postnummer' ),
   'ort' => GetPostValue ( 'ort' ),
   'tnummer' => GetPostValue ( 'tnummer' ),
   'nbrev' => GetPostValue ( 'nbrev' )
);


$message = 'Du har inte skrivit i %s, var vänlig gå tillbaka och försök igen.';
$messages = array (
   'fnamn' => sprintf ( $message, 'något förnamn' ),
   'enamn' => sprintf ( $message, 'något efternamn' ),
   'epost' => sprintf ( $message, 'någon epost' ),
   'pnummer' => sprintf ( $message, 'något personnummer' ),
   'postnummer' => sprintf ( $message, 'något postnummer' ),
   'ort' => sprintf ( $message, 'någon ort' ),
   'tnummer' => sprintf ( $message, 'något telefonnummer' )
);

// Validera alla fält...
foreach ( $fields as $key => $field ) {
   if ( empty ( $field ) ) {
       if ( isset ( $messages[$key] ) )
           die ( $messages[$key] );
       else
           die ( 'Det blev fel...' );
   }
}

$header = sprintf ( 'From: %s', $from );
$subject = 'Bli medlem';

$header2 = 'From: noreply@left2lan.se';
$subject2 = 'Tack för din medlemsansökan!'
$autoreply = <<<EOT
Tack för din medlemsansökan!
Vi i Left 2 LANs styrelse skickar ett mail till dig om din medlemsansökan
godkännes eller avböjes. Detta sker vanligtis inom 48 timmar.
Om inte så är fallet, kontakta oss på [email]info@left2lan.se[/email]!
EOT;

if ( !mail ( $to, $subject, $header ) ||
   !mail ( $from, $subject2, $autoreply, $header2 ) ) {
   die ( 'Vi stötte på ett problem när ditt meddelande skickades. Vänligen försök igen.' );
} 

 

Jag får problem på raden med $autoreply, "unexpected T_VARIABLE" tror jag det var. Däremot om jag tar bort allt som har med autoreplymailet att göra så får jag istället så att hur jag än gör säger scripten att jag inte har skrivit i någon giltlig mailadress och att jag inte fyllt i något fält.

Desperat hjälp sökes. <.<

 

Tack på förhand

 

Link to comment
Share on other sites

Karl_Svensson

Hej!

 

Skriv istället så här:

 

<?php

$autoreply = "Tack för din medlemsansökan!
Vi i Left 2 LANs styrelse skickar ett mail till dig om din medlemsansökan
godkännes eller avböjes. Detta sker vanligtis inom 48 timmar.
Om inte så är fallet, kontakta oss på [email]info@left2lan.se[/email]!";

?>

 

 

Det borde fungera... Annars kan man även göra så här för att lägga till massa strängar i en variabel:

 

<?php

$autoreply = "Sträng1".
"Sträng2".
"Sträng3".
"Sträng4";

?>

 

Tänk på att det är skillnad på tecknet " och tecknet '. Oftast är det säkrare att använda tecknet ' när man jobbar med webbformulär för att skydda sig mot s.k. injections.

 

Lär dig mer här:

http://se.php.net/manual/en/function.echo.php

 

...den sidan är en extremt bra referenssida som du ska använda ofta!

 

Lycka till!

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...