Autor | Zpráva | ||
---|---|---|---|
samoch96 Profil |
#1 · Zasláno: 23. 2. 2015, 21:28:26
Ahojte trocha som experimentoval s PHP a HTML na vytvorenie emailového formuláru ktorý okrem sprav odosiela aj prílohu. Správy mi odosielalo v poriadku (je to kód ktorý som našiel na nete) a potom som našiel ďalšie postupy ako k tomu kódu dotvorit aj to, aby sa dali posielať aj prílohy. Žiaľ, ako som kód zmenil, už nefunguje celý formulár správne. Neodosiela ani základné údaje (meno, text, mail).. Vedel by ste mi s tým poradiť? Ďakujem
<b>Polia označené * je povinné vyplniť!</b> <form action="data.php" method="post"> <fieldset> Meno a Priezvisko: <input name="meno" type="text" size="20" /> *<br /> Tel. kontakt: <input name="telkontakt" type="text" size="25" /> *<br /> E-mail: <input name="email" type="text" size="25" /> *<br /> Text: *<br /> <textarea name="text" rows="4" cols="29"></textarea><br> Priložiť žiadosť o zamestnanie:<br /> <input name="subor" type=file size=25 name="fileToUpload" id="fileToUpload"><br /><br /> <input name="odoslat" type="submit" value="Odoslať formulár" style="background:#330000;color:white;border:1px solid #330000;"> </fieldset></form> <?php $prijemca = "nieco@gmail.com"; $predmet = "PREDMET MAILU, KTORÝ PRÍDE"; $meno = $_POST['meno']; $telkontakt = $_POST['telkontakt']; $email = $_POST['email']; $text = $_POST['text']; $subor = $_POST['subor']; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/plain; charset=windows-1250' . "\r\n"; $headers .= 'From: '.$email.'' . "\r\n"; if ($meno && $telkontakt && $email && $text && $subor){ mail("$prijemca", "$predmet", "Meno a Priezvisko: $meno \n Telefón: $telkontakt \n E-mail: $email \n Text: $text \n Priložiť žiadosť o zamestnanie: $subor", $headers); echo "<b>SEM NAPÍSAŤ TEXT, KTORÝ SA POUŽÍVATEĽOVI ZOBRAZÍ PO KLIKNUTÍ NA TLAČIDLO ODOSLAŤ</b>"; echo "<meta http-equiv=\"refresh\" content=\"6;URL='index.php'\">"; } elseif (($meno && $email && $telkontakt && $text && $subor) == false){ echo "SEM NAPÍSAŤ TEXT, KTORÝ SA ZOBRAZÍ, KEĎ SA FORMULÁR NEODOŠLE. NAPRÍKLAD PRE NEVYPÍSANIE VŠETKÝCH POLÍ"; echo "<meta http-equiv=\"refresh\" content=\"6;URL='index.php'\">"; } $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } // Check if file already exists if (file_exists($target_file)) { echo "Sorry, file already exists."; $uploadOk = 0; } // Check file size if ($_FILES["fileToUpload"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0; } // Allow certain file formats if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" && $imageFileType != "doc" && $imageFileType != "docx" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0; } // Check if $uploadOk is set to 0 by an error if ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } ?> |
||
Davex Profil |
#2 · Zasláno: 23. 2. 2015, 23:56:41
1) V kódu formuláře chybí atribut
<form action="data.php" method="post" enctype="multipart/form-data"> file jsou dva atributy name , ale měl by tam být jen jeden z nich.
<input name="subor" type=file size=25 name="fileToUpload" id="fileToUpload"> $subor = $_POST['subor'] a v podmínkách && $subor jsou nesmysly. Informace o nahraných souborech jsou v poli $_FILES .
4) if(isset($_POST["submit"])) { - ve formuláři není žádné odesílací tlačítko s name="submit"
5) K odeslání e-mailu s přílohou doporučuji použít knihovnu PHPMailer. 6) Není dobré lepit dohromady cizí kódy, pokud nerozumíš tomu, co dělají. |
||
Časová prodleva: 9 let
|
0