Avatar billede svendsen8520 Nybegynder
29. januar 2009 - 21:44 Der er 6 kommentarer

Upload en fil via et PHP script

Nu har jeg endelig fået lavet et script der virker, det sender i hvert fald informationerne til min email. Det er dog ikke perfekt da alle informationerne skal skrive i en boks, ville gerne have en til hver, men det kan jeg ikke finde ud af. Er det indviklet?
Så vil jeg gerne have sådan et man kunne vedhæfte et billede, hvordan gør jeg det?

Koderne ser sådan ud:

<?php

if($_POST['mail'] != ""){

    $til        = 'peterjuulsvendsen@gmail.com';
    $fra        = 'Peter Svendsen';
    $navn        = $_POST['navn'];
    $mail        = $_POST['mail'];
    $emne        = $_POST['emne'];
    $indhold    = nl2br($_POST['besked']);

    $besked  .= '<table>';
    $besked  .= '<tr><td><font face="verdana" size="1">Mailen er skrevet af: ' . $navn . '</font></td></tr>';
    $besked  .= '<tr><td><font face="verdana" size="1">' . $indhold . '</font></td></tr>';
    $besked  .= '</table>';

    $headers  = "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\n";

    $headers .= "To: $fra <$til>\n";
    $headers .= "From: $navn <$mail>\n";

    mail($til, $emne, $besked, $headers);

    echo "<script>alert('Din mail er nu sendt, tak for din henvendelse.');</script>";
   
}
?>
<html>

<head>
<script language="JavaScript">
<!--
    function CheckForm () {
       
    //kontroller at navn er udfyldt
    if (document.mail.navn.value == ""){
        alert("Skriv venligst dit navn");
        document.mail.navn.select();
        document.mail.navn.focus();
        return false
    }

    //kontroller at email er udfyldt og indeholder @ og punktum
    if (document.mail.mail.value.indexOf('@') == '-1' ||
        document.mail.mail.value.indexOf('.') == '-1') {
        alert("Check venligst din e-mail adresse");
        document.mail.mail.select();
        document.mail.mail.focus();
        return false
    }
   
    //kontroller at emne er udfyldt
    if (document.mail.emne.value == ""){
        alert("Skriv venligst et emne");
        document.mail.emne.select();
        document.mail.emne.focus();
        return false
    }
   
    //kontroller at besked er udfyldt
    if (document.mail.besked.value == ""){
        alert("Skriv venligst en besked");
        document.mail.besked.select();
        document.mail.besked.focus();
        return false
    }   
        return true
}
//-->
</script>
<style type="text/css">
.style1 {
    font-family: Tahoma;
    font-size: x-small;
}
.style2 {
    font-size: x-small;
}
.style3 {
    font-family: Tahoma;
}
</style>
</head>

<body>
<form name="mail" method="POST" action="" onSubmit="return CheckForm();">

<table>
    <tr><td class="style1">Navn:</td><td><input name="navn" type="text"></td></tr>
    <tr><td class="style1">E-mail:</td><td><input name="mail" type="text"></td></tr>
    <tr><td class="style1">Emne:</td><td><input name="emne" type="text"></td></tr>
    <tr><td class="style2"><span class="style3">Navn<br>
        Kaldenavn<br>
        Alder<o:p><br>
        Hjemmeklub<o:p><br>
        Favoritbane i Danmark<o:p><br>
        Favoritbane i udlandet<br>
        Styrke<br>
        Svaghed<br>
        Driver<br>
        Woods<br>
        Rescue<br>
        Jern<br>
        Wedges<br>
        Putter<br>
        Bold<br>
        Favorit golfspiller<br>
        Hade golfspiller<br>
        Hole in one<br>
        Deltagelse i Kiprots<br>
        Hvem vinder Kiprots<br>
        <em><strong>Kontakt info<br>
        </strong></em>Mobilnummer<br>
        Email<br>
        Adresse<br>
        </o:p>
        </o:p>
        </o:p>
        </span><br>
        </td><td>
        <textarea name="besked" class="style1" style="height: 407px; width: 412px;"></textarea></td></tr>
    <tr><td><input name="Submit" type="submit" value="Send"></td></tr>
</table>

</form>
</body>

</html>
Avatar billede jakobdo Ekspert
29. januar 2009 - 21:53 #1
I stedet for at bruge mail(), kunne du kigge på disse 2 klasser:

http://phpmailer.codeworxtech.com/
http://www.swiftmailer.org/

Det med flere felter, kan du "nemt" lave.
Start med at opret de forskellige felter / input felter.
Så kan vi rette resten til senere.
Avatar billede jakobdo Ekspert
29. januar 2009 - 21:54 #2
Og fordelen med de 2 klasser, er netop de understøtter at sende vedhæftede filer i en email.
Avatar billede svendsen8520 Nybegynder
29. januar 2009 - 22:07 #3
Hmm, prøvede lige at hente swiftmailer, tror det er lidt for svært til mig. Jeg er ikke lige det man kan kalde superbruger i PHP. Eller nogle af de andre koder:-)
Jeg er også tilfred med scripts som det ser ud nu, selvom det er noget hjemmelavet noget, så virker det. Hvis man bare lige kunne få en boks hvor folk kunne vedhæfte et billede.
Avatar billede jakobdo Ekspert
29. januar 2009 - 22:13 #4
Og det er netop det som de 2 klasser gør meget nemmere, end du skal til at kode det selv.
Avatar billede svendsen8520 Nybegynder
29. januar 2009 - 22:36 #5
Jeg fandt en form imellem det jeg hentede fra phpmailer, nok ikke den rigtige måde at gøre det på, men prøve at lave lidt om i den. Det virker også fint, nu skal jeg bare finde ud af hvordan jeg får den til at sende til min mail:-)

Det har jeg lavet ser sådan her ud.

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<title>Sample form from codeworxtech.com</title>
<style>
body, p, table, th, td, div {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 12px;
}
th {
  background-color:#0080C0;
  color:white;
  font-weight:bold;
  font-size:18px;
  border: 1px solid #0080C0;
}
input.text, textarea {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  width: 99%;
}
.text:focus, textarea:focus {
  background-color: #FFFACC;
  border: 1px solid #000000;
}
#mydiv {
  position: absolute;
  left: 50%;
  margin-left: -250px;
  width: 500px;
  text-align: left;
}
td.colone {
  text-align: right;
  vertical-align: top;
  padding-top:4px;
#  border-top: 1px solid #0080C0;
#  border-bottom: 1px solid #0080C0;
#  border-left: 1px solid #0080C0;
}
td.coltwo {
  color:red;
  text-align: center;
  vertical-align: top;
  padding-top:6px;
#  border-top: 1px solid #0080C0;
#  border-bottom: 1px solid #0080C0;
}
td.colthree {
#  border-top: 1px solid #0080C0;
#  border-bottom: 1px solid #0080C0;
#  border-right: 1px solid #0080C0;
}
table.border {
  border: 1px solid #0080C0;
  border-collapse: collapse;
}
</style>
</head>
<body>
<div id="mydiv">
<form method="POST" action="_lib/phpmailer-fe.php" enctype="multipart/form-data">
<input type="hidden" value="form.html" name="referer">
<table class="border" width="500" cellpadding="3" cellspacing="0" style="width: 500px">
  <tr>
    <th colspan="3">Codeworxtech.com Sample Form</th>
  </tr>
  <tr>
    <td colspan="3"><div style="height:5px;"></div></td>
  </tr>
  <tr>
    <td class="colone" style="width: 350px">Navn </td>
    <td class="coltwo" style="width: 10px"></td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmFirstname" size="20"></td>
  </tr>
  <tr>
    <td class="colone" style="width: 350px">Kaldenavn</td>
    <td class="coltwo" style="width: 10px"></td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmLastname" size="20"></td>
  </tr>
  <tr>
    <td class="colone" style="width: 350px">
    <O:P>
    <O:P>
    <O:P>Hjemmeklub</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmQty_1" size="20"></td>
  </tr>
    <td class="colone" style="width: 350px">Favoritbane i Danmark</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmQty_1" size="20"></td>
  </tr>
    <td class="colone" style="width: 350px">Favoritbane i udlandet</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmLastname" size="20"></td>
  </tr>
  <tr>
    <td class="colone" style="width: 350px">Styrke</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmQty_1" size="20"></td>
  </tr>
    <td class="colone" style="width: 350px">Svaghed</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmQty_1" size="20"></td>
  </tr>


    <td class="colone" style="width: 350px">Driver</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmQty_1" size="20"></td>
  </tr>

  <tr>
    <td class="colone" style="width: 350px">Woods</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmUnitPrice_1" size="20"></td>
  </tr>
  <tr>
    <td class="colone" style="width: 350px">Resuce</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmQty_2" size="20"></td>
  </tr>
  <tr>
    <td class="colone" style="width: 350px">Jern</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="frmUnitPrice_2" size="20"></td>
  </tr>
  <tr>
    <td class="colone" style="width: 350px">Wedges</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
  <td class="colone" style="width: 350px">Putter</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
<td class="colone" style="width: 350px">Bold</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
  <td class="colone" style="width: 350px">Favorit golfspiller</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
<td class="colone" style="width: 350px">Hade golfspiller</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
  <td class="colone" style="width: 350px">Hole in one</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
</tr>
  <td class="colone" style="width: 350px">Deltagelse i Kirots</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
</tr>
  <td class="colone" style="width: 350px">Hvem vinder Kiprots</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
</tr>
  <td class="colone" style="width: 350px"><em>Kontakt info</em></td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px">&nbsp;</td>
  </tr>
</tr>
  <td class="colone" style="width: 350px; text-align: right;">&nbsp;Mobilnummer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
  <td class="colone" style="width: 350px; text-align: right;">Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>
  <td class="colone" style="width: 350px; text-align: right;">&nbsp;Adresse&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input class="text" type="text" name="email" size="20"></td>
  </tr>

  <tr>
    <td class="colone" style="width: 350px">Upload 1</td>
    <td class="coltwo" style="width: 10px">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input type="file" name="file1" size="50"><br /><small> only accept files with extensions: doc|xls|pdf|jpg|jpeg|png|gif|zip|rar|gz</small></td>
  </tr>

  <tr>
    <td class="colone" colspan="2">&nbsp;</td>
    <td class="colthree" style="width: 397px"><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset" name="B2"></td>
  </tr>
  <tr>
    <td colspan="3"><div style="height:5px;"></div></td>
  </tr>
</table>
</form>
<span style="color:red;">*</span> = required<br />
</div>
</body>
</html>
Avatar billede jakobdo Ekspert
30. januar 2009 - 11:40 #6
Se f.eks. det nederste eksempel her: http://phpmailer.codeworxtech.com/index.php?pg=examples
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester