Autor Zpráva
svetko
Profil
Nevím čím to je ale mám flash aplikaci která odešle proměné do php souboru který má odeslat e-mail a v případě že některá proměná obsahuje dvojtečku tak se e-mail neodešle. Programovat v php moc neumím tak jsem ten zápis nějak dal dohromady ale nevím kde může být chyba.

<? 

// ------------------ CZ MAIL --------------------- 
$firma3 = $_GET["firma3"];
$osoba3 = $_GET["osoba3"];
$adresa3 = $_GET["adresa3"]; 
$telefon3 = $_GET["telefon3"];
$email3 = $_GET["email3"];
$adresat="info@pokus.cz"; // Mail 
$subject="Z www.pokus.cz píše p.".$osoba3; 
$odeslat="Uzivatel z WWW stránek: 
------------------------------------------
Firma: ".$firma3."
Kontaktní osoba: ".$osoba3."
Adresa: ".$adresa3."
Telefon: ".$telefon3."
E-mail: ".$email3."
------------------------------------------
Popis: ".$text3."

"; 


function CZMail($to, $subj, $text, $headers = "") 
{
// prevedení z windows-1250 do iso-8859-2 (pokud je potreba) 
$text = StrTr($text, 
"\x8A\x8D\x8E\x9A\x9D\x9E", 
"\xA9\xAB\xAE\xB9\xBB\xBE");   
// prekódování do Base64 
$text = Base64_Encode($text); 
// pridání hlavicek 
$headers = "MIME-Version: 1.0\n". 
"Content-Type: text/plain; charset=\"iso-8859-2\"\n". 
"Content-Transfer-Encoding: base64\n"; 
// odeslání e-mailu 
Mail($to, $subj, $text, $headers); 
} 

CZMail($adresat, $subject, $odeslat, ''); 

?>


Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
Vypisují se nějaké chyby?
svetko
Profil
Právě že se nevypisují žádné chyby.
Alphard
Profil
Zkuste tuhle funkci. Bude stačit zkopírovat to a CZMail přepsat na cs_mail. Pak uvidíme, jestli je chyba v odesílací funkci nebo nastavení proměnných.
svetko
Profil
Zkusil jsem to zapsat takhle a email odesílá zprávy ale problém s dvojtečkou je pořád stejný.
<?

// ------------------ CZ MAIL ---------------------
$firma0 = $_GET["firma0"];
$osoba0 = $_GET["osoba0"];
$adresa0 = $_GET["adresa0"];
$telefon0 = $_GET["telefon0"];
$email0 = $_GET["email0"];
$priloha0 = $_GET["priloha0"];
$data0 = $_GET["data0"];
$adresat="technik@essv.cz"; // Mail
$subject="POPTAVKA z www.nejpoptavky.cz";
$odeslat="Uzivatel z WWW stránek:
------------------------------------------
Firma: ".$firma0."
Kontaktní osoba: ".$osoba0."
Adresa: ".$adresa0."
Telefon: ".$telefon0."
E-mail: ".$email0."
Přílohy: ".$priloha0."

Datum vložení poptávky: ".$data0."
------------------------------------------
Popis poptávky: ".$text0."








";

function cs_mail($to, $subj, $text, $headers = "")
{
// prevedení z windows-1250 do iso-8859-2 (pokud je potreba)
$text = StrTr($text,
"\x8A\x8D\x8E\x9A\x9D\x9E",
"\xA9\xAB\xAE\xB9\xBB\xBE");
// prekódování do Base64
$text = Base64_Encode($text);
// pridání hlavicek
$headers = "MIME-Version: 1.0\n";
$headers = "Content-Type: text/plain; charset=\"iso-8859-2\"\n";
$headers = "Content-Transfer-Encoding: base64\n";

mail($to, $subj, $text, $headers);
}

cs_mail($adresat, $subject, $odeslat, '');

?>




Zkusil jsem změnit i tento řádek ale potom mi zlobila diakritika.

$headers .= "Content-Type: text/plain; charset=\"utf-8\"\n";
Alphard
Profil
Vy jste mě nepochopil, nebo jsem to nenapsal dost jasně. Chtěl jsem, abyste zkusil tu funkci z FAQ, ne abyste přejmenoval tu svou.

Vkládejte prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
svetko
Profil
Tak jsem zapsal nový php soubor a zjistil jsem že to funguje stejně jako ten můj původní zápis.

<?php
$mail = "technik@essv.cz";
$predmet = "POPTAVKA z www.nejpoptavky.cz";
$zprava = "Firma: {$_GET['firma0']}\r\n";
$zprava .= "Osoba: {$_GET['osoba0']}\r\n";
$zprava .= "Adresa: {$_GET['adresa0']}\r\n";
$zprava .= "Telefon: {$_GET['telefon0']}\r\n";
$zprava .= "E-mail: {$_GET['email0']}\r\n";
$zprava .= "Příloha: {$_GET['priloha0']}\r\n";
$zprava .= "Datum vložení: {$_GET['data0']}\r\n";
$zprava .= "Popis poptávky: {$_GET['text0']}\r\n";

$kon = cs_mail ($mail, $predmet, $zprava, "Z: vas@web.cz\n");

if ($kon)
  echo "E-mail byl úspěšně odeslán.<br>";
 else
  echo "E-mail se bohužel nepodařilo odeslat.<br>";

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));
          return mail ($to, $predmet, $zprava, $head); }

/* ********************************************************************** ** */


Myslím že problém není v zápisu PHP ale zřejmě v proměné kterou mám zapsanou v actionscriptu ve flashi.
Takhle volám php fukci z flashe:

_root.loadVariables("mail15.php?firma0="+_root.firma0+"&osoba0="+_root.osoba0+"&adresa0="+_root.adresa0+"&telefon0="+_root.telefon0+"&email0="+_root.email0+"&priloha0="+_root.priloha0+"&data0="+_root.data0+"&text0="+_root.text0,POST);



a pokud proměnná text0 obsahuje dvojtečku tak se tato akce neprovede. Nevím co stím?
?>
Alphard
Profil
Aha, já jsem si myslel, že jste všechny potřebné proměnné spolehlivě dostal do PHP, ale chyba je asi ve Flashi. S jistotou to zjistíte tak, že budete v PHP logovat veškeré proměnné GET. Řetězce vkládané do URL by měly být přizpůsobené např. funkcí rawurlencode(). Flashovou alternativu neznám. Možná odpoví DoubleThink nebo někdo jiný znalý flashe. Přídně můžete napsat do příslušné sekce.
Ve vašem PHP kódu chybu nevidím, takže více vám v této chvíli neporadím.
svetko
Profil
Tak ve flashi problém nebude, zkusil jsem proměné které z flashe odchází do php zapsat do txt a proměné vypsal i přes to že proměná text0 obsahovala dvojtečku. phpčko jsem zapsal takhle:

<?php

$file="99.txt";
$kolik_zobraz = 1000;
$data=date("d-m-Y");

$fp = fopen($file, "a+");
$lines = file($file);

$body = explode("\n", $fp);
$all_count = count($lines);

if ($all_count < $kolik_zobraz) 
{ $kolik_zobraz = $all_count; }

if (isset($action) && $action == "ddd")
{
$firma = str_replace ("&", " ", $firma0);
$osoba = str_replace ("&", " ", $osoba0);
$adresa = str_replace ("&", " ", $adresa0);
$telefon = str_replace ("&", " ", $telefon0);
$email = str_replace ("&", " ", $email0);
$priloha = str_replace ("&", " ", $priloha0);
$text = str_replace ("&", " ", $text0);
$charset = 'windows-1250';
if (file_exists($file))	{
	$ll = $all_count + 1;
	fwrite($fp,"lp$ll=$ll&firma2$ll=$firma&osoba2$ll=$osoba&adresa2$ll=$adresa&telefon2$ll=$telefon&email2$ll=$email&priloha2$ll=$priloha&data$ll=$data&text$ll=$text\n");
	}
}

if (isset($action) && $action == "kuk")
{
	if (file_exists($file))	{

	echo "&all=$kolik_zobraz";
	for($i = $all_count; $i >= ($all_count-$kolik_zobraz) ;$i--){
		echo $lines[$i]."&"; }
        echo "pocet=$all_count";
	
							}
}

fclose($fp);

?>
svetko
Profil
Tak nevím proč mi emailová aplikace v phpčku nechce odeslat mail když v proměné text0 se nachází dvojtečka?
svetko
Profil
Už jsem na to přišel. Bylo nutné zaměnit v zápisu PHP místo GET zapsat POST a potom všechno makalo i s dvojtečkou. Celkově jsem to nepochopil ale takhle to funguje. Více méně děkuji za všechny rady.


<?

// ------------------ CZ MAIL ---------------------
$firma0 = $_POST["firma0"];
$osoba0 = $_POST["osoba0"];
$adresa0 = $_POST["adresa0"];
$telefon0 = $_POST["telefon0"];
$email0 = $_POST["email0"];
$priloha0 = $_POST["priloha0"];
$data0 = $_POST["data0"];
$adresat="technik@essv.cz"; // Mail
$subject="POPTAVKA z www.nejpoptavky.cz";
$odeslat="Uzivatel z WWW stránek:
------------------------------------------
Firma: ".$firma0."
Kontaktní osoba: ".$osoba0."
Adresa: ".$adresa0."
Telefon: ".$telefon0."
E-mail: ".$email0."
Přílohy: ".$priloha0."

Datum vložení poptávky: ".$data0."
------------------------------------------
Popis poptávky: ".$text0."








";

function cs_mail($to, $subj, $text, $headers = "")
{
// prevedení z windows-1250 do iso-8859-2 (pokud je potreba)
$text = StrTr($text,
"\x8A\x8D\x8E\x9A\x9D\x9E",
"\xA9\xAB\xAE\xB9\xBB\xBE");
// prekódování do Base64
$text = Base64_Encode($text);
// pridání hlavicek
$headers = "MIME-Version: 1.0\n";
$headers = "Content-Type: text/plain; charset=\"iso-8859-2\"\n";
$headers = "Content-Transfer-Encoding: base64\n";

mail($to, $subj, $text, $headers);
}

cs_mail($adresat, $subject, $odeslat, '');

?>
nightfish
Profil
Celkově jsem to nepochopil
ono to možná mělo něco společného s „root.priloha0+"&data0="+_root.data0+"&text0="+_root.text0,POST);

jinak ještě jednou: Vkládejte prosím kódy mezi značky [pre] a [/pre]

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:

0