Hejsan!
Använder hoglinds mailscript, men jag har försökt modifiera det lite själv. Lyckas ju inte så bra - oväntat... :p
<?php
$mottagare = array(
'1' => array('namn', 'mail'),
'2' => array('namn', 'mail'),
'3' => array('namn', 'mail'),
'4' => array('namn', 'mail'),
'5' => array('namn', 'mail')
)
//för de olika personer man ska kunna välja att skicka till.
?>
<?php
$din_site="weoo";
?>
<div id="kontakta">
<form action="" method="post">
<select id="to" name="to" tabindex="1">
<?php
foreach ($mottagare as $key => $val) {
echo "<option value=\"$key\">$val[0]</option>\n";
//i den här selecten väljs personen man vill skicka till
}
?>
</select>
<fieldset>
<h3>namn:</h3>
<input type="text" name="name" size="40" />
<h3>ämne:</h3>
<input type="text" name="subject" />
<h3>e-post:</h3>
<input type="text" name="email" size="40" />
<h3>Telefonnummer</h3>
<input type="text" name="telefon" />
<h3>skriv ditt meddelande här:</h3>
<textarea name="message" rows="9" cols="55"></textarea><br />
<button name="submit" type="submit" value="send">skicka</button>
<button name="submit" type="reset" value="reset">rensa </button>
</fieldset>
</form>
<?php
extract($_POST);
if ($_POST['submit']) {
if($name && $subject && $email && $message ) { //kollar så alla fält är ifyllda
if (return_valid($email)) {
//$message = about_mail()."\n"."\n".$message; //funktion som tilldelar message en del info
$message = about_mail()."\n";
foreach($_POST AS $key=>$val) {
$message .= $key .": ". $val ."\n";
}
mail($mottagare,$subject,$message,"From: $name <$email>"); // skickar mailet, och message
$newlog=new logging("logs","log.txt","log.xml"); //instantierar logg klassen
$newlog->create_txt(); //kör loggfunktioner i logg klassen
$newlog->create_xml();
echo "<h2>Meddelandet skickat!</h2>
<p>Vi svarar så fort vi kan. Skulle det ta för lång tid så skicka ett nytt.</p>";
} else {
echo '<p class="red">Felaktig mailadress.</p>';
}
} else {
print '<p class="red">Fyll i alla fält</p>';
}
}
// Returnerar sant om det är en korrekt adress.
function return_valid($e_mail) {
if(
ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $e_mail)) {
return TRUE;
}
else {
return FALSE;
}
}
// returnerar info om adressaten i mailet. i meddelande delens topp.
function about_mail() {
global $din_site;
//$headline3="| obs!, denna info sparas i xml filen log.xml "."\n";
//$headline2="| ----------------------------------------------"."\n";
$headline1="Mail ifrån ".$din_site."\n";
$date.="Den: ".date("D-d-M-Y")."\n";
$time.="Klockan: ".date("H:i:s")."\n";
$ip.="Från ip nummer: ".$_SERVER['REMOTE_ADDR']."\n";
$port.="Adressatens port: ".$_SERVER['REMOTE_PORT']." \n";
$browser.="Adressatens läsare: ".$_SERVER['HTTP_USER_AGENT']."\n";
$all = ($headline1.$date.$time.$ip.$port.$browser);
return "$all";
}
// klass som loggar adressaten
class logging
{
var $folder;
var $logname;
var $xmlname;
var $filename;
var $dirname;
function logging($f,$l,$x)
{
$this->folder=$f;
$this->logname=$l;
$this->xmlname=$x;
$this->mode=$m;
if ($this->mode==1)
{
$this->filename=getcwd()."\\$this->folder\\$this->logname";
$this->dirname=getcwd()."\\$this->folder\\";
}
else
{
$this->filename=getcwd().'/'.$this->folder.'/'.$this->logname;
$this->dirname=getcwd().'/'.$this->folder.'/';
}
}
function create_txt()
{
if (!file_exists($this->dirname)) mkdir ($this->dirname);
$fp = fopen ($this->filename,a);
$logs="<logging>\n";
$logs.="<ip> visitor's IP address: ".$_SERVER['REMOTE_ADDR']." </ip>\n";
$logs.="<port> visitor's port: ".$_SERVER['REMOTE_PORT']." </port>\n";
$logs.="<browser> visitor's browser: ".$_SERVER['HTTP_USER_AGENT']." </browser>\n";
$logs.="<date> date: ".date("D-d-M-Y")." </date>\n";
$logs.="<time> time: ".date("H:i:s")." </time>\n";
$logs.="</logging>\n\n";
fwrite($fp,$logs);
fclose($fp);
}
function create_xml()
{
$filename=$this->xmlname;
$fp=fopen($this->filename,r);
$contents=fread($fp,filesize($this->filename));
$final='<?xml version="1.0" encoding="iso-8859-1"?>'."\n".
'<!-- generator="logging class Ver:1.1" -->'.
"\n".
'<start>'
.$contents.
'</start>';
fclose($fp);
if ($this->mode==1) $fp=fopen($this->dirname."\\$filename",w);
else $fp=fopen($this->dirname."/$filename",w);
fwrite($fp,$final);
fclose($fp);
}
}
?>
</div>
När man skickar mailet så får jag ett felmeddelande:
Warning: mail() expects parameter 1 to be string, array given in test2.php on line 61
Någon som kan hjälpa mig? Är det något krångligt så behöver ni inte göra er något bekymmer, då struntar jag i det. Men om det är smidigt så får ni gärna ge mig lite kod. Tänk på att jag inte kan något, så tala tydligt. :e
Och du Hoglind, jag tog bort din jättelånga kommentar för att det inte skulle bli överdrivet mycket kod här. Vet inte om man får göra så... men i så fall så får jag redigera senare.
Mvh,
silfver