Autor | Zpráva | ||
---|---|---|---|
Denis Kryštof Profil |
#1 · Zasláno: 12. 2. 2020, 14:47:50
Ahoj,
tvořím formulář s přílohou. Dopředu chci říct, že jsem nad tím strávil hodně času a zkoušení, ale nikdy se mi nepodařilo zprovoznit tu přílohu (textové zprávy chodí v pořádku). Proto se obracím na vaši pomoc. Budu strašně vděčný, když mi někdo pomůže dopsat tu funkci na přílohu do souboru contact.php (do databáze se zapisovat nemusí). Jinak PHPMailer nechci (to by byla poslední možnost). Zasílám script, ze kterého už nevím další cestu: INDEX.PHP <form method="POST" action="contact.php" id="formular"> <input autocomplete="off" type="text" name="fullname" placeholder="Jméno a příjmení" class="kontakt-single clrthis" required><br> <input autocomplete="off" type="email" name="email" placeholder="Email" class="kontakt-double clrthis" style="float: left;" required> <input autocomplete="off" type="text" name="phone" placeholder="Telefon" class="kontakt-double clrthis" style="float: right;" required><br> <textarea name="message" placeholder="Zpráva" class="kontakt-textarea clrthis" required></textarea><br> <input type="file" name="soubor"><br> <input type="submit" name="submit" value="Odeslat zprávu" class="kontakt-submit"> </form> <script type="text/javascript"> $("#formular").submit(function(e) { e.preventDefault(); var form = $(this); var url = form.attr('action'); $.ajax({ type: "POST", url: url, data: form.serialize(), success: function(data) { $("#formular").prepend(data); var areas = document.getElementsByClassName("clrthis"); for(var i = 0; i < areas.length; i++){ areas[i].value = ""; } } }); }); </script> CONTACT.PHP <?php include_once "headers.php"; include_once "db.php"; function check_if_empty($input){ if(empty($input)) return "-"; else return $input; } if((!empty($_POST["email"]) || !empty($_POST["phone"])) && !empty($_POST["fullname"]) && !empty($_POST["message"])){ $to = "prijemce@email.cz"; $subject = "Dotaz"; $message = htmlspecialchars(check_if_empty($_POST["fullname"]))."<br>"; $message .= htmlspecialchars(check_if_empty($_POST["email"]))."<br>"; $message .= htmlspecialchars(check_if_empty($_POST["phone"]))."<br><br>"; $message .= str_replace("\n", "<br>", check_if_empty($_POST["message"])); $headers = "Content-Type: text/html; charset=UTF-8\r\n"; $headers .= "From: odesilatel@email.cz"; mail($to, $subject, $message, $headers); $stmt = $connection->prepare("INSERT INTO messages (id, fullname, email, phone, message) VALUES (null, ?, ?, ?, ?)"); $stmt->bind_param("ssss", $fullname, $email, $phone, $message); $fullname = $connection->real_escape_string(htmlspecialchars(check_if_empty($_POST["fullname"]))); $email = $connection->real_escape_string(htmlspecialchars(check_if_empty($_POST["email"]))); $phone = $connection->real_escape_string(htmlspecialchars(check_if_empty($_POST["phone"]))); $message = $connection->real_escape_string(htmlspecialchars(check_if_empty($_POST["message"]))); if($stmt->execute()) echo "Děkujeme, na Vaši zprávu odpovíme nejpozději do 24 hodin."; else echo "Omlouváme se, ale při zpracování došlo k chybě."; } else { echo "Omlouváme se, ale nebyly správně zadané údaje."; } ?> Díky kluci za každou pomoc. |
||
lionel messi Profil |
Denis Kryštof:
Niežeby mi na tom až tak záležalo, ale môžem sa spýtať, aké pohnútky ťa viedli/vedú k vytvoreniu novej identity? Odeslání emailu s hodnotami checkbox, checkmark, number PHP pracuje s uploadovanými súbormi pomocou superglobálneho poľa $_FILES["name_z_formularoveho_pole"], ktoré v tvojom kóde úplne absentuje. Ani hlavičky nemáš zostavené tak, aby indikovali prítomnosť prílohy, inšpiruj sa napr. https://stackoverflow.com/a/12313090. Taktiež by som preveril, či nemusí mať element form nastavený atribút enctype="multipart/form-data" (nie som si celkom istý, ako je to v prípade jQuery).
Mimochodom, prečo nechceš PHPMailer? S ohľadom na PHP funkciu mail je to najjednoduchšie a najspoľahlivejšie riešenie. |
||
Denis Kryštof Profil |
#3 · Zasláno: 12. 2. 2020, 16:16:09
lionel messi:
Z tebou zasílané diskuze jsme včera kód zkopíroval a byl to poslední funkční script, který jsem našel. Jinak děkuji |
||
lionel messi Profil |
#4 · Zasláno: 12. 2. 2020, 16:35:47
<mimo témy> Denis Kryštof: „Z tebou zasílané diskuze jsme včera kód zkopíroval a byl to poslední funkční script, který jsem našel.“ V odkázanej diskusii nie je reč o prílohách. Ak ako začiatočník hľadám skript na odosielanie mailu s prílohami, obvykle skopírujem skript na odosielanie mailu s prílohami a nie hocijaký skript na odosielanie mailov. Preto si ma svojím vysvetlením presvedčil, že si Honza21. </mimo témy> |
||
Davex Profil |
#5 · Zasláno: 12. 2. 2020, 23:54:45
Denis Kryštof:
„Jinak PHPMailer nechci“ Proč? Je to široko daleko nejjednodušší a funkční varianta. lionel messi: „Preto si ma svojím vysvetlením presvedčil, že si Honza21.“ Nepleteš se. |
||
Časová prodleva: 4 roky
|
0