Autor Zpráva
ondra15
Profil
Dobrý den, mam funkci php skript, ktery mi spravně běží na webzdarma.cz, a pokud ho nahraju na FORPSI, tak to nelze odeslat. Z hostingu my poslali overeni na funkci mail() - ta funguje. Ja pouzivam cs_mail(), ikdyz si myslim, ze je to to same. Nemate nekdo zkusenosti? Chmod si muzu nastavit i na 777, ale to mi nepomaha. Děkuji za rady
PHP kod:
<?

function autoUTF($s)
{
    // detect UTF-8
    if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s))
        return $s;
    // detect WINDOWS-1250
    if (preg_match('#[\x7F-\x9F\xBC]#', $s))
        return iconv('WINDOWS-1250', 'UTF-8', $s);
    // assume ISO-8859-2
    return iconv('ISO-8859-2', 'UTF-8', $s);
}

function cs_mail ($to, $predmet, $zprava, $head = "")
       {  $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?=";
          $head .= "MIME-Version: 1.0\n";
          $head .= "Content-Type: text/plain; charset=\"utf-8\"\n";
          $head .= "Content-Transfer-Encoding: base64\n";
          $zprava = base64_encode (autoUTF ($zprava));
          $stav = mail ($to, $predmet, $zprava, $head);
          return $stav ?  TRUE : FALSE;  }



     if (isset($_POST['poslani'])) {
     $canxy = null;

          if (strlen($_POST['zudaje'])>0 ) {
     $zudaje = true; }
     else {
     $zudaje = false;
     echo "<p class=text><b>Nezadali jste název zboží</b></p>";  }

       if (strlen($_POST['napis'])>0 ) {
     $napis = true; }
     else {
     $napis = false;
     echo "<p class=text><b>Nezadali jste nápis na polštářek</b></p>";  }

           if (strlen($_POST['rozmer'])>0 ) {
     $rozmer = true; }
     else {
     $rozmer = false;
     echo "<p class=text><b>Nezadali jste rozměr polštářku</b></p>";  }

           if (strlen($_POST['material'])>0 ) {
     $material = true; }
     else {
     $material = false;
     echo "<p class=text><b>Nezadali jste materiál polštářku</b></p>";  }

      if (strlen($_POST['model'])>0 ) {
     $model = true; }
     else {
     $model = false;
     echo "<p class=text><b>Nezadali jste model polštářku</b></p>";  }

     if (strlen($_POST['barvapozadi'])>0 ) {
     $barvapozadi = true; }
     else {
     $barvapozadi = false;
     echo "<p class=text><b>Nezadali jste barvu pozadí polštářku</b></p>";  }

      if (strlen($_POST['barvanapisu'])>0 ) {
     $barvanapisu = true; }
     else {
     $barvanapisu = false;
     echo "<p class=text><b>Nezadali jste barvu nápisu polštářku</b></p>";  }

      if (strlen($_POST['pocet'])>0 ) {
     $pocet = true; }
     else {
     $pocet = false;
     echo "<p class=text><b>Nezadali jste počet polštářku</b></p>";  }

      if (strlen($_POST['jmenoprijmeni'])>0 ) {
     $jmenoprijmeni = true; }
     else {
     $jmenoprijmeni = false;
     echo "<p class=text><b>Nezadali jste vaše jméno a příjmení</b></p>";  }

      if (strlen($_POST['adresa'])>0 ) {
     $adresa = true; }
     else {
     $adresa = false;
     echo "<p class=text><b>Nezadali jste vaší adresu</b></p>";  }

      if (strlen($_POST['psc'])>0 ) {
     $psc = true; }
     else {
     $psc = false;
     echo "<p class=text><b>Nezadali jste vaše PSČ</b></p>";  }

      if (strlen($_POST['mesto'])>0 ) {
     $email = true; }
     else {
     $email = false;
     echo "<p class=text><b>Nezadali jste vaše město</b></p>";  }

      if (strlen($_POST['email'])>0 ) {
     $email = true; }
     else {
     $email = false;
     echo "<p class=text><b>Nezadali jste váš email</b></p>";  }

      if (strlen($_POST['mobil'])>0 ) {
     $mobil = true; }
     else {
     $mobil = false;
     echo "<p class=text><b>Nezadali jste váš mobil</b></p>";  }

      if (strlen($_POST['platba'])>0 ) {
     $platba = true; }
     else {
     $platba = false;
     echo "<p class=text><b>Nesouhlasíte s podmínkami platby</b></p>";  }

      if (strlen($_POST['platba1'])>0 ) {
     $platba1 = true; }
     else {
     $platba1 = false;
     echo "<p class=text><b>Zkontrolujte položku platba, zda souhlasíte se všemi podmínkami</b></p>";  }






     if ($zudaje && $napis && $rozmer && $material && $model && $barvapozadi && $barvanapisu && $pocet
     && $jmenoprijmeni && $adresa && $psc && $mesto && $email && $mobil && $platba && $platba1) {
     $zprava =  "Dobrý den, \n objednávám polštářky, polštáře v následujícím znění:\n
     Adresa objednávajícího:
     JMENO A PŘÍJMENÍ: {$_POST['jmenoprijmeni']}
     ADRESA: {$_POST['adresa']}
     PSČ: {$_POST['psc']}
     MĚSTO: {$_POST['mesto']}
     EMAIL: {$_POST['email']}
     MOBIL: {$_POST['mobil']}
     ------------------------------------------------
     Objednávka zboží:\n
     :: objednávka číslo 1 ::
     NÁZEV ZBOŽÍ: {$_POST['zudaje']}
     MODEL: {$_POST['model']}
     NÁPIS: {$_POST['napis']}
     ČÍSLO POLŠTÁŘKU: {$_POST['cislopolstarku']}
     BARVA NÁPISU: {$_POST['barvanapisu']}
     BARVA POZADÍ: {$_POST['barvapozadi']}
     ROZMĚR: {$_POST['rozmer']}
     MATERIÁL: {$_POST['material']}
     POČET: {$_POST['pocet']}
     ----------------------------------------------------\n
     :: objednávka číslo 2 ::
     NÁZEV ZBOŽÍ: {$_POST['zudaje2']}
     MODEL: {$_POST['model2']}
     NÁPIS: {$_POST['napis2']}
     ČÍSLO POLŠTÁŘKU: {$_POST['cislopolstarku2']}
     BARVA NÁPISU: {$_POST['barvanapisu2']}
     BARVA POZADÍ: {$_POST['barvapozadi2']}
     ROZMĚR: {$_POST['rozmer2']}
     MATERIÁL: {$_POST['material2']}
     POČET: {$_POST['pocet2']}
     ----------------------------------------------------\n
     :: objednávka číslo 3 ::
     NÁZEV ZBOŽÍ: {$_POST['zudaje3']}
     MODEL: {$_POST['model3']}
     NÁPIS: {$_POST['napis3']}
     ČÍSLO POLŠTÁŘKU: {$_POST['cislopolstarku3']}
     BARVA NÁPISU: {$_POST['barvanapisu3']}
     BARVA POZADÍ: {$_POST['barvapozadi3']}
     ROZMĚR: {$_POST['rozmer3']}
     MATERIÁL: {$_POST['material3']}
     POČET: {$_POST['pocet3']}
     ----------------------------------------------------\n
     PLATBA: Číslo účtu: 1101935053/0800\n
     POZNÁMKA: {$_POST['poznamka']}\n\n
     Děkujeme za objednávku. Ihned jak ji začneme zpracovavat, budeme Vás kontaktovat na váš email.\n
    Dotaz byl zaslán z internetové adresy http://www.azurehamaj.cz";
cs_mail ($_POST['email'], 'Kopie objednávky polštářků, polštářů z www.azurehamaj.cz', $zprava,
'Od: info@azurehamaj.cz');
cs_mail ($_POST['emailing'], 'Objednávka polštářků, polštářů', $zprava,
'Od: info@azurehamaj.cz');
echo "<p class=stred>Váše objednávka z adresy www.azurehamaj.cz byla úspěšně odeslána. Kopii vašeho dotazu naleznete také na
<b>{$_POST['email']}</b>. ";
exit(); }

               else {
     $canxy .=  '<p class=text>Vaše objednávka nemohla být dokončena. Nezadali jste všechny údaje. Vrattě se prosím zpět <input type=button onclick="history.back()" value="Zpět"></p>'; } }

         if (isset($canxy))   {
         echo '<font bgcolor="white">' ,$canxy ,'</font>'; }




    ?>
Davex
Profil
Pro začátek použij otevírací značku
<?php
warman
Profil
Davex:
mohli by tady udelat nejaky faq pro zacatecniky, <?php uz se tady objevuje strasne casto, taky jsem to chtel napsat :)

jinak pripada mi ten kod strasne dlouhej.... a jinak je pekne blbe, ze kdyz clovek nevypise ani jeden udaj, tak se mu objevi 10 radku pitlovin....
bych udelal neco takoveho:

if (strlen($_POST['material'])>0 ) {
     "vsechny promenne - AND" = true; }
     else {
     "nektera promenna - OR" = false;
     echo "<p class=text><b>blablabla</b></p>";  }
warman
Profil
vlastne neslo by to bez toho $mobil = false; ? php jsem nijak nestudoval, tak nechcu delat svincik... ale uz kdyz vidim if neco=true else neco=false, tak mi to prijde divny :))
AM_
Profil
return $stav ? TRUE : FALSE; od toho otazníku dál je to tam zbytečně.
ondra15
Profil
Ani to mi nepomaha, zadna zmena. Ani na hostingu si nevedi rady. Asi necham napsat kod nejakemu odbornikovi. Nebo je nekdo dalsi schopen rici, kde by mohla byt chyba. Dekuji..

Moderátor Chamurappi: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
AM_
Profil
ondra15:
zkus popsat, co znamená "neodešle". jaké chyby, co vrátí mail().
ondra15
Profil
AM:
Když vyplním všechny pole, vypíše to pouze proměnou
$canxy .=  '<p class=text>Vaše objednávka nemohla být dokončena. Nezadali jste všechny údaje. 
Vrattě se prosím zpět <input type=button onclick="history.back()" value="Zpět"></p>'; } }
armin
Hosting armin.sk
Profil
Pro magory zakladající si na obr firmách a nikoliv vanmenšou:
Jsem zcela šokován, že společnost která rozhodně není vanmenšou si neumí dát rady s takovou banalitou a klientovi pomoct. Pro rýpaly - nespravuji servery forpsi, neznám konfiguraci, nevím kde může být problém.

Pro ostatní a autora tohoto vlákna:
Ten kód je zbytečne nepřehlednej, používej ternární operátory, třeba místo:
if (strlen($_POST['psc'])>0 ) {
     $psc = true; }
     else {
     $psc = false;
     echo "<p class=text><b>Nezadali jste vaše PSČ</b></p>";  }


použij toto:
$status['psc']=strlen($_POST['psc'])>0 ? true : false;


a pak před odesláním udělat kontrolu:
foreach ($status as $key => $val) {
  $out.=$val==false ? 'Zadali jste spatne '.$key.'<br />.' : '';
}

echo !empty($out) ? '<p class=text><b>'.$out.'</b></p>' : '';


Jinak napadá mě jediná věc, a to, že při posílání přes fci mail() v php je potřeba do hlavičky přidat i unikátní login a heslo, u některých hostingů jsem to viděl, tak zkus se na tady to poptat, nebo vyzkoušet přímo jen fci mail(), zda jede jak má...
AM_
Profil
armin:
Pro magory zakladající si na obr firmách a nikoliv vanmenšou:
Njn, vanmenšou jsou docela moudrá volba, postavit svou firmu na padesáti vanmenšou, pak vanmen umže a jsi v (_._)
Klidni prosím svůj slovník.

si neumí dát rady s takovou banalitou a klientovi pomoct
Pochybuji, že by to pánové z FORPSI neuměli spravit, ale za to placení nejsou - opravy zákaznických kódů se většinou platí navíc. Pokud pán z vanmenšou má čas na opravování kódů klientů, zřejmě zanedbává něco jiného?
ondra15
Profil
armin:
Jinak napadá mě jediná věc, a to, že při posílání přes fci mail() v php je potřeba do hlavičky přidat i unikátní login a heslo, u některých hostingů jsem to viděl, tak zkus se na tady to poptat, nebo vyzkoušet přímo jen fci mail(), zda jede jak má...

Samotná funkce mail() funguje, ale tento kód (i když prasacký) jede na webzdarma.cz. Proto je mi záhadou, proč na forpsi nejede. Mohl bys mi naznačit, jak mám do hlavičky přidat unikátní login a heslo? Děkuji
armin
Hosting armin.sk
Profil
AM: Aha, a ty myslíš, že když projdeš výběrovým řizením u forpsi třeba, budeš jedním ze 100 zaměstnanců, automaticky jsi vlastníkem společnosti? Čili když žemže jediný majitel forpsi, nebo úzký okruh majitelů forpsi třeba u letecké tragedie, tak nic se nedeje, firma jede dál, protože ji vlastní kde jaký niemand z podpory? Blbost. Je to tvůj názor, hádat se zde nemá cenu. Ja mám svůj názor, ty máš svůj (do jisté míry zkreslený). A pokud si myslíš, že to jde vše dělat v jedné osobě, tak navíc žiješ v oblacích ;)

ondra15: Je to jen a pouze má doměnka, už jsem to u pár hostingů viděl, že jsou jejich klienti takto omezováni. Na to se právě zeptej přímo podpory, resp. jak už jsem psal - zkus jen fci mail(), pokud jde, tak postupně nabaluj na fci mail zbylý kód a k chybě se dostat musíš. Třeba mají frajeři na forpsi bloklou nějakou fci, ta vrací error a skript se neprovede, těžko říct. Inu, to je hold osud velikých firem - levá ruka neví co dělá pravá, konfiguraci zabezpečuje externí firma, atd atd. Správci / popora tudíž netuší kde je problém. Mluvím z vlastní zkušenosti, kdy se cca. 4 dny čekalo, dokud externí správce doplní do php podporu GD, omylem se na to zapomělo a klientovi přestal skript fungovat ;)
AM_
Profil
armin:
A pokud si myslíš, že to jde vše dělat v jedné osobě, tak navíc žiješ v oblacích ;)
Asi jsi mě nepochopil, ta "dobrá volba" byla ironie - vanmenšou ti třeba něco udělají levně, ale není to spolehlivé hlavně z hlediska dlouhodobější správy...

Aha, a ty myslíš, že když projdeš výběrovým řizením u forpsi třeba, budeš jedním ze 100 zaměstnanců, automaticky jsi vlastníkem společnosti?
Na tohle nevím, jak jsi přišel. Já mluvil o tom, že když ti někdo napíše software za 100 tisíc, napíše k němu mizernou dokumentaci a pak ho přejede auto, tak si můžeš jít rovnou hodit mašli. V případě hostingu to samozřejmě tak vážné není, ale přesouvat web za běhu protože původní hosting skončil je docela veselá práce.
Davex
Profil
ondra15:
Pokud se ti po odeslání vypíše jen hláška [#8], tak není splněna některá z podmínek na řádcích č. 130 a 131 - zjisti která a proč. Řekl bych, že kvůli tomuto:
  if (strlen($_POST['mesto'])>0 ) {
     $email = true; }
     else {
     $email = false;
     echo "<p class=text><b>Nezadali jste vaše město</b></p>";  }


Pak si ještě oprav odesílatele na řádcích č. 180 a 182:
"From: info@azurehamaj.cz\n");
ondra15
Profil
Davex:
To je trefa do černýho. Konečně někdo našel chybu. Teď už i FORPSI odesílá vše jak má.. A ještě bych se rád zeptal, jestli by šlo upravit, aby na email nechodilo v hlavičče pouze info@azurehamaj.cz, ale třeba Eshop - info@azurehamaj.cz. Super chlape, moc děkuju.
armin
Hosting armin.sk
Profil
ondra15: ale třeba Eshop - info@azurehamaj.cz
http://php.net/mail => RTFM

0