Autor Zpráva
anonym
Profil *
Ahoj, omlouvám se za možná stupidní dotaz, ale řeším takový problémek...

Mám objednávkový form. (na tab.davidfro.cz) a tam zák. může(ale nemusí) připojit objednávku v souboru. Potřebuji, aby ten soubor (pokud ho připojí) byl ve formátu xls.

Zkoušel jsem všechno možné i nemožné, co jsem kde našel na netu, ale...

dokážu odeslat soubor, ale v jakém koliv formátu, nejen v xls.

Zkoušel jsem i switch (na základě typu souboru), ale to taky nefungovalo korektně.

potřebuji, aby pokud se přiloží soubor otestoval typ, a pokud není xls, tak to nepustí dál (s hláškou o nutnosti formátu xls nebo žádného souboru), jinak aby to proběhlo - odeslalo se....

snad jsem to napsal alespoň trochu strozumitelně, pokud ne, pak jsem k dispozici na Yahoo (df_cz@yahoo.com) nebo na mailu (df@davidfro.cz).

kód objednávky mám:

<?php

session_start();
$check=0;
$hlaska="";
?>



<p>Pokud Vás naše výrobky a ceny zaujaly, pak neváhejte a objednávejte.</p>
<p>Objednávku lze uskuteÄŤnit prostĹ™ednictvĂ­m objednávkovĂ&copy;ho&nbsp;formulĹ™e ve formátu <b>MS&nbsp;Excel<i>(*.xls)</i></b>, kterĂ˝ mĹŻĹľete zaslat nebo nafaxovat na naše kontaktnĂ­ Ăşdaje.
Všechny potĹ™ebnĂ&copy; Ăşdaje pro zaslánĂ­ objednávky jsou uvedeny v <a href="?stranka=kontakt" style="display:inline; margin-top:2px;">kontaktech</a>.</p>

<p>
Jednotlivou dodávku tabulek do 400,- Kč poštou na dobírku nezasíláme, je možný pouze osobní odběr.</p>
<br>
<strong>Slevy při dodávkách:</strong>
<table border="0px" bordercolor="black" rules="none" style="border-collapse: collapse; margin-bottom:5px;">
<tr>
<td>nad</td>
<td><div align="right">&nbsp;10.000,- KÄŤ </div></td>
<td>&nbsp;</td>
<td><div align="right">7%</div></td>
</tr>
<tr>
<td>nad</td>
<td><div align="right">&nbsp;25.000,- KÄŤ</div></td>
<td>&nbsp;</td>
<td><div align="right">12%</div></td>
</tr>
<tr>
<td>nad</td>
<td><div align="right">&nbsp;50.000,- KÄŤ</div></td>
<td>&nbsp;dohodou&nbsp;</td>
<td><div align="right">15-20%</div></td>
</tr>
</table>
<p>
Při dodávkách zboží nad 5.000,- Kč, je možná, za níže stanovených podmínek, bezhotovostní platba.<br />
</p>
<p>
PĹ™ed prvnĂ­ dodávkou zboží je nutnĂ&copy; uzavřít obchodnĂ­ smlouvu.<br />
Faktury budou se základnĂ­ splatnostĂ­ do 10ti dnĹŻ, kdy platĂ­ uvedenĂ&copy; slevy.
<p>
Při dodávkách zboží nad 25.000,- Kč je možná prodloužená splatnost faktury do 30ti dnů. Dodávky nad 50.000,- Kč mohou mít prodlouženou splatnost faktur do 50ti dnů.<br />
PĹ™i prodlouĹľenĂ&copy; splatnosti neplatĂ­ výše uvedenĂ&copy; slevy.<br />
</p>
<p>
Při překročení doby splatnosti budou ve smlouvě stanoveny poplatky z prodlení a smluvní pokuty.
</p>
<br />
Objednávku mĹŻĹľete uskuteÄŤnit takĂ&copy; prostĹ™ednictvĂ­m našeho webovĂ&copy;ho formuláře.<br />
<br />


<?php

function JeEmail ($cislo)
{
return ereg("^.+@.+\..+$",$cislo);
}
$BudemeZobrazovat=true;
if (!empty($_POST)) // tak uĹľ se odesĂ­lalo a musĂ­me kontrolovat
{
if(empty($_POST['jmeno']))
{
echo ("<span class=povinne>"."ProsĂ­m vyplňte Vaše jmĂ&copy;no."."</span>");
}
else
if(empty($_POST['email']))
{
echo ("<span class=povinne>"."Prosím, vyplňte e-mail."."</span>");
}
else
if (!JeEmail($_POST['email']))
{
// kontrolou jsme neprošli
echo ("<span class=povinne>"."ProsĂ­m, vyplňte e-mail ve správnĂ&copy;m tvaru: neco@neco.xx"."</span>");
}
else
if (empty($_POST['objednavka']))
{
echo ("<span class=povinne>"."Objednávka musí být vyplněna!"."</span>");
}
}
if ($BudemeZobrazovat):
?>
<form name="frmObjednavka" action="index.php?stranka=objednavka" method="post" style="background:url(Obr/tab-objednavka.jpg);
background-image:url(Obr/tab-objednavka.jpg); background-repeat:no-repeat; padding-left: 10px;" enctype="multipart/form-data">
Vaše jmĂ&copy;no:<br />
<input name="jmeno" size="29" value="<?php echo $_POST['jmeno'];?>"><br />
Váš e-mail:<br>
<input type="text" name="email" size="29" value="<?php echo $_POST['email'];?>" /><br />
Vaše&nbsp;objednávka:<br>
<textarea name="objednavka" cols="48" rows="5"><?php echo $_POST['objednavka'];?></textarea><br />
<p>&nbsp;<br />
<span style="font-size:x-small;">
Objednávku zadejte ve tvaru:
obj. číslo, text(popis), požadovaný formát, cena za kus, počet kusů, provedení(F-folie, P-plast).
JednotlivĂ&copy; poloĹľky oddÄ›lte čárkou, na konec řádku napište stĹ™ednĂ­k (;) a řádek ukonÄŤete klávesou ENTER.
</p>
<p>
Pokud máte přpravený objednávkový formulář ve formátu <b>*.XLS</b>, pak nám ho můžete zaslat v následujícím poli.
V tomto případě to uveďte v objednávce výše.
</p>

<input type="file" name="priloha" size="29" />
<?php
/*
$typsouboru=$_FILES['priloha']['type'];
if($typsouboru=="application/vnd.ms-excel") //soubor je ve formatu xls
{
$soubor_ok="1";
}
if($typsouboru=="") //nebyl nastaven zadny soubor
{
$soubor_ok="1";
}
else
$soubor_ok="0"; //soubor neni prazdny a ma jiny format nez xls
switch ($soubor_ok)
{
case 0:
$hlaska="soubor xls!";
header("location:index.php?stranka=objednavka");
break;
case 1:
// Where the file is going to be placed
$target_path = "uploaded/";
// Add the original filename to our target path. Result is "uploaded/filename.extension"
$target_path = $target_path . basename( $_FILES['priloha']['name']);
// This is how we will get the temporary file...
$_FILES['priloha']['tmp_name'];
$target_path = "uploaded/";
$target_path = $target_path . basename( $_FILES['priloha']['name']);
move_uploaded_file($_FILES['priloha']['tmp_name'], $target_path);
$_SESSION['nazev_souboru'] = $_FILES['priloha']['name'];
$_SESSION['typ_souboru'] = $_FILES['priloha']['type'];
break;
}*/
?>
<?php
echo"<br>".$hlaska."<br>";
?>
<br />
ZpĹŻsob dopravy:<br />
<br />
<input type="radio" name="doprava" value="dobĂ­rka" id="dobirka" checked="checked" /> dobĂ­rka
<br />
<input name="doprava" type="radio" value="osobně" id="osobne" /> osobní odběr
<br />
<br />
Adresa pro doruÄŤenĂ­:<br />
</span>
<textarea name="adresa_doruceni" cols="48" rows="7"><?php echo $_POST['adresa_doruceni'];?></textarea><br />
<span style="font-size:x-small;">
Pokud budete chtít zaslat daňový doklad, nezapomeňte na uvedení identifikačních údajů vaší firmy (Obchodní název, IČo, DIČ).
</span>
<br /><br />
<input name="button" type="submit" id="button" value="Odeslat">
<br />


</form>
<br>

<?php

endif;

// Where the file is going to be placed
$target_path = "uploaded/";
/* Add the original filename to our target path. Result is "uploaded/filename.extension" */
$target_path = $target_path . basename( $_FILES['priloha']['name']);
// This is how we will get the temporary file...
$_FILES['priloha']['tmp_name'];

$target_path = "uploaded/";
$target_path = $target_path . basename( $_FILES['priloha']['name']);

move_uploaded_file($_FILES['priloha']['tmp_name'], $target_path);
$_SESSION['nazev_souboru'] = $_FILES['priloha']['name'];
$_SESSION['typ_souboru'] = $_FILES['priloha']['type'];

$_SESSION['jmeno'] = $_POST['jmeno'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['objednavka'] = nl2br($_POST['objednavka']);
$_SESSION['doprava'] = $_POST['doprava'];
$_SESSION['adresa_doruceni'] = nl2br($_POST['adresa_doruceni'])
anonym
Profil *
a jéje, koukám, že se tam nezkopírovalo ještě tohle:
if(!empty($_POST['jmeno']))
  {
    ++$check;
  }
if(JeEmail($_POST['email']))
  {
    ++$check;
  }
if(!empty($_POST['objednavka']))
  {
    ++$check;
  }

if ($check==3)
 	{
	header("location:index.php?stranka=odeslat-form");
	}
?>


díky :-)
BetaCam
Profil
No mělo by to snad jít normálně ne zjistíš mime souboru a porovnas jestli je "application/excel" nebo "application/vnd.ms-excel" a pak se podle toho zařídíš.
anonym
Profil *
BetaCam:

to jo, jenže to mi nějak nefunguje, viz ten kód....:-(
buď je soubor jiného typu, přest se mail odešle (ale bez přílohy), nebo to provede nějakou brikuli...

Rád bych, aby se po odeslání formuláře hned zobrazila ta hláška, nejlépe u výběrového Inputu...
D.
BetaCam
Profil
to jo, jenže to mi nějak nefunguje, viz ten kód....:-(
buď je soubor jiného typu, přest se mail odešle (ale bez přílohy), nebo to provede nějakou brikuli...


No tak tam máš nekde chybu :)

Ale popravde ti reknu, že procházet 390 řádky šílené směsice HTML a PHP opravdu nehodlám. Chci si udržet aspon trochu toho zdravého rozumu co mi zbylo. :)
anonym
Profil *
BetaCam:

jj, to chápu:-)


nepomohl by jsi mi to napsat lépe? :-)

D.
BetaCam
Profil
nepomohl by jsi mi to napsat lépe? :-)

Zato mě na tomhle fóru opravdu neplatěj :)
anonym
Profil *
:-) i tak díky za odpovědi :-)
D.
WertriK
Profil
Chyba bude, dlě mě, v tomto
	if($typsouboru=="application/vnd.ms-excel")	//soubor je ve formatu xls

	{

		$soubor_ok="1";

	}

	if($typsouboru=="")				//nebyl nastaven zadny soubor

	{

		$soubor_ok="1";

	}

	else

		$soubor_ok="0";				//soubor neni prazdny a ma jiny format nez xls


Podle mě by to mělo být takto

     
        $soubor_ok="0";
        
        if($typsouboru=="application/vnd.ms-excel")	//soubor je ve formatu xls

	{

		$soubor_ok="1";

	}

	if($typsouboru=="")				//nebyl nastaven zadny soubor

	{

		$soubor_ok="1";

	}
anonym
Profil *
díky moc :-)
BetaCam
Profil
for anonym

Ještě taková rada vzhledem k tomu v čem si měl chybu.

Důsledně inicializuj všechny proměnné.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: