Vad vill du göra med de uppladdade filerna?
Någon som vet en enkel "klass" eller ett script som kan hantera bifogade filer (alla typer) via ett formulär?
Tacksam för snabbt svar!
4 svar · 490 visningar · startad av Guldstrand
Någon som vet en enkel "klass" eller ett script som kan hantera bifogade filer (alla typer) via ett formulär?
Tacksam för snabbt svar!
Vad vill du göra med de uppladdade filerna?
henke skrev:
Vad vill du göra med de uppladdade filerna?
Sorry.. glömde visst skriva det. :r
Denna funktion ska endast tillåta alla besökare att bifoga en fil i ett kontaktformulär som sedan skall skickas till min e-postadress.
Gjorde det för längesen, så jag fick leta ett tag innan jag hittade det.
Koden innehåller lite sql och sånt som du får rensa bort själv. Jag kopierade bara rakt av.
if (isset($_POST['utskick'])) {
// Tag bort eventuella blanksteg i början eller slutet
foreach($_POST as $key => $val){
$_POST[$key] = trim($val);
}
//Kolla efter tomma fält
if (empty($_POST['amne'])) {
$reg_error[] = 0;
}
if (empty($_POST['meddelande'])) {
$reg_error[] = 1;
}
// errorlista
$error_list[0] = "Du glömde fylla i ett ämne.";
$error_list[1] = "Du glömde fylla i meddelandet.";
if (isset($reg_error)){
// Någon uppgift är fel, skriv ut felmeddelande...
echo "Något blev fel:<br>\n";
echo "<ul>\n";
for ($i=0; $i<sizeof($reg_error); $i++) {
echo "<li>{$error_list[$reg_error[$i]]}</li>\n";
}
echo "</ul>\n";
echo "<br><a href=\"javascript:history.back()\">Tillbaka</a>\n";
exit;
}
if ($_POST['vilka'] == 'betalat') {
$where = " WHERE BETALT >= '".date("Y-m-d")."'";
if ($_POST['status'] != 'Alla') {
$and = " AND status = '".$_POST['status']."'";
} else {
$and = "";
}
}
if ($_POST['vilka'] == 'ejbetalat') {
$where = " WHERE BETALT < '".date("Y-m-d")."'";
if ($_POST['status'] != 'Alla') {
$and = " AND status = '".$_POST['status']."'";
} else {
$and = "";
}
}
if ($_POST['vilka'] == 'Alla') {
$where = "";
if ($_POST['status'] != 'Alla') {
$and = " WHERE status = '".$_POST['status']."'";
} else {
$and = "";
}
}
$from = "".$inst['epost']."";
$subject = $_POST['amne'];
$message = $_POST['meddelande'];
$fileatt = $_FILES['attachment']['tmp_name'];
$fileatt_type = $_FILES['attachment']['type'];
$fileatt_name = $_FILES['attachment']['name'];
$headers = "From: $from";
if (is_uploaded_file($fileatt)) {
// Läs in filen som ska bifogas ('rb' = read binary)
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
// Generera en boundary string
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
// Lägg till headers för filen som bifogas
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
// Lägg till multipart boundary över meddelandet
$message2 = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// Base64 encode fildata
$data = chunk_split(base64_encode($data));
// Lägg till file attachment till meddelandet
$message2 .= "--{$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";
}
$getadress = mysql_query("SELECT epost FROM ".$mysql_prefix."medlemmar".$where . $and."") or die(mysql_error());
while ($rad = mysql_fetch_array($getadress)) {
$to = $rad['epost'];
// skicka meddelandet
mail($to, $subject, "$message $message2", $headers);
}
header("Location: kontrollpanel.php?info=mailutskick");
exit;
}
Tyvärr har jag ingen riktig koll på VAD som ska plockas bort från koden ovan. :(
Hade därför uppskattat ifall någon kunde hjälpa mig med detta!!?
Just nu kör jag följande kod (utan bilaga).
<?php
if (isset($_POST['Submit'])) {
$error = "<br><b>OBS! Du måste fylla i alla fält markerade med <font color=red><sup>1)</sup></font> för att ditt e-postmeddelande ska skickas!</b>";
if($_POST['org_forening'] == "" || $_POST['namn'] == "" || $_POST['email'] == ""){
echo $error;
} else {
$yourwebsite = "www.mindomain.nu";
$recipientname = "Min sida";
$subject = "Medlemskap";
$recipient = "info@mindomain.nu";
$org_forening = stripslashes($_POST['org_forening']);
$namn = stripslashes($_POST['namn']);
$adress = stripslashes($_POST['adress']);
$postadress = stripslashes($_POST['postadress']);
$telefon = stripslashes($_POST['telefon']);
$email = stripslashes($_POST['email']);
$verksamhet = stripslashes($_POST['verksamhet']);
$syfte = stripslashes($_POST['syfte']);
$annat_satt = stripslashes($_POST['annat_satt']);
$hemsida = stripslashes($_POST['hemsida']);
$medl_info = stripslashes($_POST['medl_info']);
$header = "From: $namn <$email>\r\n";
$header .= "Reply-to: $namn\r\n";
$header .= "Return-path: $namn\r\n";
$content = "$namn har skickat ett e-postmeddelande till dig från $yourwebsite.\n
Förening/Företag : $org_forening
Kontaktperson : $namn
Adress : $adress
Postadress : $postadress
Telefon : $telefon\n
Verksamhet :
$verksamhet\n
Syfte med medlemskap : $syfte
*Annat :
$annat_satt\n
Hemsida : $hemsida
Information via epost : $medl_info
\nDu kan kontakta $namn på e-postadressen: $email.
";
mail($recipient, $subject, $content, $header);
//mail($recipient, $subject, $content, $header, "-f$email");
echo "<br><b>Tack $namn! Ditt e-postmeddelande har skickats. Vi kommer kontakta dig så snart som möjligt.</b>";
}
}
?>
Tack på förhand!