Miten mä saan tehtyä ihan normaalista webbilomakkeesta sellaisen, että sillä voi myös lähettää yhden kuvan viestin lisäksi suoraan sähköpostiin??
Teet normaalin webilomakkeen, johon lisäät vielä
<input type="file" name="tiedosto" />
Lisäksi tietoa tiedostojen uploadamisesta php:lla:
https://www.php.net/features.file-upload
Jos vain englanti sujuu, niin tuolla on juttua liitetiedoston lähettämisestä php:llä.
jgz kirjoitti:
Jos vain englanti sujuu, niin tuolla on juttua liitetiedoston lähettämisestä php:llä.
Joo ton avulla saan lähettyä kyllä ton mailin kuvian kanssa, mutta nyt jostain kummasta kun lisään jotain muita kenttiä lomakkeeseen tuo kuvan lähety sekoaa heti ja kuva tulee koodina!
Onko tossa jokin kikka miten tuohon pitää lisätä noita muita tietueita??
Lomakkeen muilla kentillä ei pitäisi olla vaikutusta.
Voitko laittaa näkyville lomakkeen HTML-koodin ja sähköpostin lähettävän PHP-skriptin? Muuten ongelman syytä on vaikea keksiä.
tässä ekana tää php-koodin pätkä!
<?php // Palautelomakkeen käsittelijä - versio 2005-04-06 if (eregi("http://www.xxx.xx/xxx.html", $_SERVER['HTTP_REFERER'])) { // OK } else { exit("Lomakkeen lähetys epäonnistui."); } $Yritys = $_POST['Yritys']; $Etunimi = $_POST['Etunimi']; $Sukunimi = $_POST['Sukunimi']; $Osoite = $_POST['Osoite']; $Toimipaikka = $_POST['Toimipaikka']; $Puhelin = $_POST['Puhelin']; $Email = $_POST['Email']; $Otsikko = $_POST['Otsikko']; $Teksti = $_POST['Teksti']; // Obtain file upload vars $fileatt = $_FILES['fileatt']['tmp_name']; $fileatt_type = $_FILES['fileatt']['type']; $fileatt_name = $_FILES['fileatt']['name']; if (is_uploaded_file($fileatt)) { // Read the file to be attached ('rb' = read binary) $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); // Generate a boundary string $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Add a multipart boundary above the plain message $Tekti= "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" . $Teksti . "\n\n"; // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $Teksti .= "--{$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"; } $etnimi = strip_tags($Etunimi); $sknimi = strip_tags($Sukunimi); $sahkopos = strip_tags($Email); $otsik = strip_tags($Otsikko); $emailosoite = "xxx@xxx.xxx"; $ip = $_SERVER['REMOTE_ADDR']; $ipkaksi = gethostbyaddr($_SERVER['REMOTE_ADDR']); $aika = date('d.m.Y H:i:s'); mail("$emailosoite", "$otsik"," ILMOITUS AVAINTORILLE: ILMOITUS - $otsik Ilmoitus jätetty: $aika Yritys: $Yritys Etu- ja Sukunimi: $etnimi $sknimi Osoite: $Osoite Postinumero ja toimipaikka: $Toimipaikka Puhelinnumero: $Puhelin Sähköposti: $sahkopos Viesti: $Teksti IP-osoite: $ip 2. IP-osoite: $ipkaksi ","From: $sahkopos"); exit ("Kiitos palautteestasi."); ?>
ja tässä html-koodi
<form action="palautekasittely.php" method="post" enctype="multipart/form-data"> <table width="100%" border="0" align="center" cellspacing="5"> <tbody> <tr> <td align="right" height="2" valign="middle"><div align="left">Yritys:</div></td> <td align="left" height="2" valign="top"><input name="Yritys" type="text" id="Yritys" size="30" /></td> </tr> <tr> <td height="2" valign="middle" width="52%"><div align="left">Etunimi:*</div></td> <td align="left" height="2" valign="top" width="48%"><input name="Etunimi" type="text" id="Etunimi" size="30" /></td> </tr> <tr> <td align="right" height="14" valign="middle"><div align="left">Sukunimi:*</div></td> <td align="left" height="14" valign="top"><input name="Sukunimi" type="text" id="Sukunimi" size="30" /></td> </tr> <tr> <td align="right" height="14" valign="middle" width="52%"><div align="left">Osoite:</div></td> <td align="left" height="14" valign="top" width="48%"><input name="Osoite" type="text" id="Osoite" size="30" /></td> </tr> <tr> <td align="right" height="8" valign="middle" width="52%"><div align="left">Postinumero ja -toimipaikka:</div></td> <td align="left" height="8" valign="top" width="48%"><input name="Toimipaikka" type="text" id="Toimipaikka" size="30" /></td> </tr> <tr> <td align="right" height="17" valign="middle" width="52%"><div align="left">Puhelin:</div></td> <td align="left" height="17" valign="top" width="48%"><input name="Puhelin" type="text" id="Puhelin" size="30" /></td> </tr> <tr> <td align="right" height="17" valign="middle"><div align="left">Sähköpostiosoite:*</div></td> <td align="left" height="17" valign="top"><input name="Email" type="text" id="Email" size="30" /></td> </tr> <tr> <td align="right" height="24" valign="top"><div align="left">Otsikko:*</div></td> <td align="left" height="24" valign="top"><input name="Otsikko" type="text" id="Otsikko" size="30" /></td> </tr> <tr> <td align="right" height="104" valign="top" width="52%"><div align="left">Muuta huomioitavaa: * </div></td> <td align="left" height="104" valign="top" width="48%"><textarea name="Teksti" cols="30" rows="5" id="Teksti"></textarea></td> </tr> <tr> <td align="right" height="5" valign="top"><div align="left">ilmoituksen kuva : </div></td> <td align="left" height="5" valign="top"><input type="file" name="fileatt" /></td> </tr> <tr> <td align="right" height="5" valign="top" width="52%"> </td> <td align="left" height="5" valign="top" width="48%"><input value="Lähetä" name="Submit" type="submit" /> <input value="Tyhjennä" name="reset" type="reset" /> </td> </tr> </tbody> </table> </form>
Mod. edit: vinkiksi tulevaisuutta varten: kooditagit
kukaan keksinyt, että missä ongelma? Mä en vaan saa millään toimii tota php.tä....
Eikös ton pitäsi olla oikeasti noin.
<?php // Palautelomakkeen käsittelijä - versio 2005-04-06 if (eregi("http://www.xxx.xx/xxx.html", $_SERVER['HTTP_REFERER'])) { $Yritys = $_POST['Yritys']; $Etunimi = $_POST['Etunimi']; $Sukunimi = $_POST['Sukunimi']; $Osoite = $_POST['Osoite']; $Toimipaikka = $_POST['Toimipaikka']; $Puhelin = $_POST['Puhelin']; $Email = $_POST['Email']; $Otsikko = $_POST['Otsikko']; $Teksti = $_POST['Teksti']; // Obtain file upload vars $fileatt = $_FILES['fileatt']['tmp_name']; ..... } else { exit("Lomakkeen lähetys epäonnistui."); } ?>
itse tekisin sen noin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.