Zadejte hledaný výraz...

Problémy s formulářem

GraphicSite
verified
rating uzivatele
(20 hodnocení)
21. 12. 2013 18:31:56
Zdravím,
Upravuji jeden formulář a pokouším se jej rozšířit o upload souboru, nicméně někde dělám chybu, nejsem až tak zběhlý v PHP a chybu na první pohled nevidím.
Formulář - HTML:




*Odesláním dat a fotografií souhlasíte s užitím vašich osobních informací pro potřebu agentury a výběru do dalšího kola.

Formulář - script na odesílání:
function autoUTF($s)
{
if (preg_match('##u', $s)) // detect UTF-8
{
return $s;
}
elseif (preg_match('##', $s)) // detect WINDOWS-1250
{
return iconv('WINDOWS-1250', 'UTF-8', $s);
}
else // assume ISO-8859-2
{
return iconv('ISO-8859-2', 'UTF-8', $s);
}
}
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES);
$extension = end($temp);
if ((($_FILES == "image/gif")
|| ($_FILES == "image/jpeg")
|| ($_FILES == "image/jpg")
|| ($_FILES == "image/pjpeg")
|| ($_FILES == "image/x-png")
|| ($_FILES == "image/png"))
&& ($_FILES < 20000)
&& in_array($extension, $allowedExts))
{
if ($_FILES > 0)
{
echo "Return Code: " . $_FILES . "
";
}
else
{
echo "Upload: " . $_FILES . "
";
echo "Type: " . $_FILES . "
";
echo "Size: " . ($_FILES / 2048) . " kB
";
echo "Temp file: " . $_FILES . "
";
if (file_exists("upload/" . $_FILES))
{
echo $_FILES . " Tento soubor již existuje. Pojmenujte prosím fotku vašim jmenem a příjmením. ";
}
else
{
move_uploaded_file($_FILES,
"upload/" . $_FILES);
echo "Stored in: " . "upload/" . $_FILES;
}
}
}
else
{
echo "Neplatný formát. Vyberte prosím obrázek ve formátu JPG, PNG.";
}
function cs_mail($to, $predmet, $zprava, $head = "")
{
$predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?=";
$head .= "MIME-Version: 1.0".PHP_EOL;
$head .= "Content-Type: text/html; charset="utf-8"".PHP_EOL;
$head .= "Content-Transfer-Encoding: base64".PHP_EOL;
$zprava = wordwrap(base64_encode(autoUTF($zprava)), 78, PHP_EOL, true);
return mail($to, $predmet, $zprava, $head);
}
$name = $_POST;
$last = $_POST;
$stat = $_POST;
$phone = $_POST;
$email = $_POST;
$born = $_POST;
$height = $_POST;
$prsa = $_POST;
$pas = $_POST;
$boky = $_POST;
$color = $_POST;
$vlasy = $_POST;
$typ = $_POST;
$exp = $_POST;
$message = $_POST;
$formcontent="
Od: $name $last
Stát: $stat
Telefon: $phone
Email: $email
Datum narození: $born
Výška: $height
Prsa: $prsa
Pas: $pas
Boky: $boky
Barva očí: $color
Barva vlasů: $vlasy
Postava: $typ
Dosavadní zkušenosti:
$exp
Poznámka:
$message



odesláno z webu";
$recipient = "martin.sokol@graphicsite.cz";
$subject = "Workshop - nová tvář";
$mailheader = "From: $email";
cs_mail($recipient, $subject, $formcontent, $mailheader.PHP_EOL) or die("Error!");
header("Location: contactthanks.php");
?>
Po odeslání formuláře se objeví následující chyba:
Neplatný formát. Vyberte prosím obrázek ve formátu JPG, PNG.
Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/8749/virtual/www/workshop.php:56) in /data/web/virtuals/8749/virtual/www/workshop.php on line 110
Na 110 řádku se nachází přesměrování na stránku s poděkováním.
Za každou radu moc děkuji.
21. 12. 2013 18:31:56
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978611
Jakub Hamala
verified
rating uzivatele
(23 hodnocení)
21. 12. 2013 18:37:10
Na začátek doplň:
na konec skriptu potom:
21. 12. 2013 18:37:10
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978610
GraphicSite
verified
rating uzivatele
(20 hodnocení)
21. 12. 2013 18:45:54
Myslíš ihned za PHP značky, nebo ještě před ně?
Každopádně nepomohlo ani jedno.
21. 12. 2013 18:45:54
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978609
Jakub Hamala
verified
rating uzivatele
(23 hodnocení)
21. 12. 2013 19:09:38
Za:
a před ob_end_flush(); ?>
Já řešil stejnej problém a pomohlo mi to.
21. 12. 2013 19:09:38
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978608
GraphicSite
verified
rating uzivatele
(20 hodnocení)
21. 12. 2013 19:24:15
E-mail se již odesílá a nevyhazuje chybu, nicméně příloha se nepřidá.
21. 12. 2013 19:24:15
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978607
MadMax
verified
rating uzivatele
(1 hodnocení)
21. 12. 2013 19:24:43
Zasadni je, ze ti uploadovany obrazek neprojde podminkou na typ souboru
Pak se vypise chybova hlaska
a nasledne presto ze to havarovalo na uploadu, volas fci
ve ktere na konci volas header k presmerovani, jenze uz si jednou hlavicku serveru odeslal pri zobrazeni te chybove hlasky.
Takze bud vypis hlasku, ukonci skript exit(); a pridej odkaz k navratu na formular nebo presmerovavej hned pri chybe zpet na formular, v GET si predej chybu, vyplnene hodnoty a vypis ji u predvyplneneho formulare a uzivatele vyzvi at akce zopakuje se spravnym obsahem.
ob_start(); by ti melo odstranit dvoji odeslani hlavicky, ale jinak to tvuj problem neresi, obrazek se nenahraje a zadny chybova hlaska se nezobrazi.
21. 12. 2013 19:24:43
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978606
GraphicSite
verified
rating uzivatele
(20 hodnocení)
21. 12. 2013 19:31:07
Zkusím to nějak upravit, díky moc za tip.
21. 12. 2013 19:31:07
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978605
flashnr
verified
rating uzivatele
(2 hodnocení)
21. 12. 2013 19:51:28
Napsal GraphicSite;1035934
E-mail se již odesílá a nevyhazuje chybu, nicméně příloha se nepřidá.
Priloha sa ani nema ako pridat, do mailu davas len hodnoty z $_POST. Skus sa pozriet na toto je to class odosielanie mailov, dost jednoduche na pouzivanie a riesi to aj prilohu.
21. 12. 2013 19:51:28
https://webtrh.cz/diskuse/problemy-s-formularem/#reply978604
Pro odpověď se přihlašte.
Přihlásit