NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: odesílání dat z formuláře na e-mail

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Radim Galíček:18.8.2015 2:39

Ahoj,ukončil jsem spolupráci se správcem webu, ten se jaksi neobtěžoval web upravit tak,aby se zamezilo jeho přístupu k datům v době, kdy už správcem nebude. Chtěl jsem se zeptat, podle zdrojového kódu níže zda data chodí k němu mailem a on je přesměruje ke mě do e-mailu (projekty10@seznam.cz) nebo mu to na mail nechodí, jeho adresa je pouze informací pro mě, od koho e-mail přišel a on to celou dobu mohl kontrolovat pouze podle souboru objednavky.txt kde se to ukládalo? Bude stačit v tomto případě přepsat jeho e-mail adresu? (info@ataxam.cz).
chystám nový web,ale ten starý ještě využiju,mám strach,že přepsáním jeho e-mailu jako odesílatele se nic nezmění a jemu to bude dál odesíláno a formulář nechci smazat,potřebuji ho ještě.Děkuji předem za pomoc

<?

if (isset($_POST["termin"]) && $_POST["termin"] != "" && !strstr($_POST["termin"],'@') && $_POST["cpc"] == "e5hb" ) {

         while (list($k, $v) = each ($_POST)) $telo .= "$k: $v\r\n";

         mail("[email protected]","Objednavka", $telo,
                "From: [email protected]\nContent-Type: text/plain; charset=\"windows-1250\"\nReply-To: $eXail\nX-Mailer: PHP/".phpversion());

                error_reporting(0);

    if ($fp = fopen ("objednavky.txt", "a")) {
                fwrite($fp,"\r\n\r\n-----------------".date("Y-m-d H:i:s ")."--------------------\r\nObjednavka sluzeb\r\n\r\n");
                        fwrite($fp,$telo);
                        fclose($fp);
                }

                echo "<p>Děkujeme Vám za využití této služby
</p><br /><br /><br /><br />";

} else { ?>
 
Odpovědět
18.8.2015 2:39
Avatar
smiesek
Člen
Avatar
Odpovídá na Radim Galíček
smiesek:18.8.2015 3:55

je třeba možné spíše dát celý obsah souboru?
Podle toho výše uvedeného jsem to já pochopila následovně, že adresa:

  1. projekty10@seznam.cz je adresa pro příjem e-mailů
  2. info@ataxam.cz je adresa, odesílatele e-mailů

Otázkou je, proč nepříjde/se nezobrazí adresa odesílatele, alespoň zatím podle toho výše uvedeného se mi to tak jeví. Předpokládám, že se jedná o kontaktní formulář a nebo pak když to tak čtu, pokud se jedná pouze o informativní formulář s daty ze stránek majitele, pak je to OK a e-mail "info@ataxam.cz" je v tomto případě pouze informativní, lze tam nastavit jakoukoli e-mailovou adresu.

Ještě si akorát pak nejsem jistá částí Reply-To, resp. s proměnnou $eXail odkud se bere a hlavně co obsahuje, protože část Reply-To slouží pro zaslání odpovědi, většinou obsauje stejný e-mail jako proměnná odesílatele, ale ve výše uvedeném kódu jsem to zatím nedohledala, že by se to shodovalo

 
Nahoru Odpovědět
18.8.2015 3:55
Avatar
Odpovídá na smiesek
Radim Galíček:18.8.2015 9:01

díky za reakci, pošlu celý soubor,ale až odpoledne až se dostanu k pc

 
Nahoru Odpovědět
18.8.2015 9:01
Avatar
Odpovídá na smiesek
Radim Galíček:18.8.2015 14:23

posílám ten zdroják,minule jsem upravil e-mail odesílatele,pro­jekty10@seznam je můj druhý e-mail, nechtěl jsem dělat negativní publicitu bývalému správci, ale co, všechno se dá dohledat.

<? $title="Čištění koberců - potvrzení objednávky"; include("head.inc"); ?>

<div id="incontent" style="width:500px">
<h2>Čištění koberců - potvrzení objednávky</h2>

<?

if (isset($_POST["termin"]) && $_POST["termin"] != "" && !strstr($_POST["termin"],'@') && $_POST["cpc"] == "e5hb" ) {


        $uklid = array("","odstranění hrubších nečistot vysavačem",
                                "čištění koberců",
                                "čištění sedací soupravy 3+1+1",
                                "čištění sedací soupravy 3+2+1",
                                "čištění kuchyňské, kancelářská židle",
                                "čištění křesla",
                                "čištění pohovky dvoumístné",
                                "čištění pohovky třímístné",
                                "čištění dvojité postele (letiště)",
                                "čištění postele nebo matrace",
                                "čištění kuchyňské lavice");

        for($i=1;$i<12;$i++) {
                $field = "c".$i;
                if ($_POST[$field]=="on") $telo .= $uklid[$i]." - množství: ".$_POST["v".$i]."\r\n";
        }

         while (list($k, $v) = each ($_POST)) if (substr($k,0,1)!="c" && substr($k,0,1)!="v") $telo .= "\r\n$k: $v";

         mail("[email protected]","Objednavka cisteni a uklidu z cisteni-uklid.cz", $telo,
                "From: [email protected]\nContent-Type: text/plain; charset=\"windows-1250\"\nReply-To: $eXail\nX-Mailer: PHP/".phpversion());

        error_reporting(0);

    if ($fp = fopen ("objednavky.txt", "a")) {
                fwrite($fp,"\r\n\r\n-----------------".date("Y-m-d H:i:s ")."--------------------\r\nObjednavka cisteni a uklidu\r\n\r\n");
                        fwrite($fp,$telo);
                        fclose($fp);
                }

                echo "<p>Děkujeme Vám za využití této služby a přejeme Vám příjemné prožití zbylého dne.</p><br /><br /><br /><br /><br />";

} else { ?>

<p>Objednávka nebyla přijata.</p>

<? } ?>

</div>

<? include("bottom.inc") ?>
 
Nahoru Odpovědět
18.8.2015 14:23
Avatar
smiesek
Člen
Avatar
Odpovídá na Radim Galíček
smiesek:18.8.2015 14:36

co jsem se tedy koukala, tak adresa začínající radim... je adresa, kam budou posílány e-maily a adresa začínající info bude zobrazena jako odesílatel.

Jen tedy pořád nemůžu dohledat a není to v tom uvedeno (v souboru jinde nepoužito), co jsi přiložil, odkud se bere ta proměnná $eXail :-S

 
Nahoru Odpovědět
18.8.2015 14:36
Avatar
Odpovídá na smiesek
Radim Galíček:18.8.2015 15:24

ten formulář je umístěn zde na této stránce, jestli to pomůže

<? $title="Čištění koberců Ostrava, Nový Jičín a okolí"; $simple=1; include("head.inc"); ?>

<div id="incontent">
<h2>Čištění koberců a čalounění</h2>

<h3>Způsob čištění koberců</h3>
<p>
Používáme vysoce účinný způsob čištění koberců a čalounění, kterým je hloubkové čištění. Jde o mokrý proces čištění, kdy čištěná plocha je propírána tlakem vody s čistícím prostředkem. Druhým krokem je kartáčování, při kterém jsou z čištěné plochy odstraněny zbylé nečistoty. Nakonec jsou všechny z koberce odsány do sběrné nádrže.
</p>
<h3>Šetrnost při čištění koberců a čalounění</h3>
<p>
Tento způsob je velice šetrný, prodlužuje životnost veškerých textilních povrchů, regeneruje vlákno, protože odstraní nečistoty v celém jeho rozsahu a vrátí jej do polohy vlákna nového.
Koberec či čalounění zůstávají po čištění vlhké. Doba schnutí závisí na teplotě vzduchu, typu koberce či čalounění a rovněž na stupni znečištění. V praxi to znamená, že při čištění silně znečištěné plochy je nutno použít větší množství vody.
</p>
<h3>Čištění stroji Karcher</h3>
<img src="imgs/extrakce.png" alt="čištění koberců" title="čištění koberců" style="float:right; margin:0px 0px 0px 10px;" />
<p>
Koberec lze opatřit impregnací pro odpuzování prachu a nečistot.
Při čistění je používán nejvýkonnější čistič koberců, včetně přídavné kartáčovací hlavice a příslušenství zn. Kärcher, určené pro velké plochy, jako jsou hotelové, restaurační a kancelářské prostory. Hodinový výkon tohoto zařízení činí až 60 m2/hod. Zárukou úspěchu je kvalitně odvedená práce. Mezi malými a velkými plochami není činěn rozdíl, proto i při práci v bytech používáme toto vysoce výkonné zařízení. Při čištění koberců je používán nepěnivý čistící prostředek Purex T firmy MPD Plus Rakovník se silným čisticím účinkem.
</p>

<br />
<p id="cistenicenik">
<strong>Ceny služeb – čištění koberců a čalounění včetně souvisejících úkonů</strong>
</p>


<table width="100%">
<col></col><col align="right"></col>
<tr><th>Druh služby</th><th class="t-right">Cena od</th></tr>
<tr><td>Odstranění hrubších nečistot vysavačem</td><td class="t-right"> 3 Kč / m2</td></tr>
<tr class="light"><td>Čištění koberců včetně kartáčování podle stupně znečištění, typu a délky vlasu</td><td class="t-right">14 Kč / m2</td></tr>
<tr><td>Čištění potahových látek židlí, bez opěradla</td><td class="t-right">20 Kč /  ks</td></tr>
<tr class="light"><td>Čištění potahových látek židlí, s opěradlem</td><td class="t-right">30 Kč /  ks</td></tr>
<tr><td>Čištění kancelářských otočných křesel</td><td class="t-right">50 Kč /  ks</td></tr>
<tr class="light"><td>Čištění čalounění postele, matrace cca 1x2m jednostranně</td><td class="t-right">100 Kč /  ks </td></tr>
<tr><td>Čištění čalounění dvojitých postelí (letiště)</td><td class="t-right">250 Kč /  ks</td></tr>
<tr class="light"><td>Čištění sedací soupravy 311</td><td class="t-right">400 Kč /  ks </td></tr>
<tr><td>Čištění sedací soupravy 321</td><td class="t-right">500 Kč /  ks</td></tr>
<tr class="light"><td>Čištění rohové sedací soupravy bez křesla (4-místná)</td><td class="t-right">450 Kč /  ks</td></tr>
<tr><td>Čištění pohovky 3 místná</td><td class="t-right">250 Kč /  ks</td></tr>
<tr class="light"><td>Čištění pohovky 2 místná</td><td class="t-right">180 Kč /  ks</td></tr>
<tr><td>Čištění jednotlivého křesla</td><td class="t-right">80 Kč /  ks </td></tr>
<tr class="light"><td>Čištění kuchyňské lavice</td><td class="t-right">120 Kč /  ks </td></tr>
</table>

<p><br />
        <strong>Dopravné</strong> při čištění koberců v Ostravě, Havířově, Orlové, Karviné, Opavě, Novém Jičíně, Frýdku Místku a okolí <strong>není účtováno. Je zdarma!</strong>
</p>
<p>
Ceny jsou pouze orientační, cena je vždy upřesněna a dohodnuta před zahájením prací při konkrétní zakázce. Cenu ovlivňuje mnoho faktorů (stupeň znečištění, typ koberce, druh látky čalounění, členitost čištěné plochy apod.).
<br /><br />
Minimální cena za jednu zakázku činí 550 Kč.<br />
</p>

<br />

<script type="text/javascript">
<!--
function checkfill() {
        var xform = document.getElementById('cisteni')
        xform.jmeno.className = (xform.jmeno.value.length < 3) ? "empty":"intext";
        xform.mesto.className = (xform.mesto.value.length < 3) ? "empty":"intext";
        xform.ulice.className = (xform.ulice.value.length < 3) ? "empty":"intext";
        xform.termin.className = (xform.termin.value.length < 6) ? "empty":"intext";
        xform.kontakt.className = (xform.kontakt.value.length < 3) ? "empty":"intext";
        xform.cpc.className = (xform.cpc.value.length < 4) ? "empty":"intext";
}

function validate(){
        var xform = document.getElementById('cisteni')
        var filled = 0;
        for(i=1;i<12;i++)
        {
                eval("if (xform.c"+i+".checked) filled=1;");
        }
        if (filled==0) {
                alert('Zvolte minimálně jeden z úkonů v rozsahu prací');
                return false;
        }

        checkfill();

        if (xform.jmeno.value.length < 3 || xform.mesto.value.length < 3  || xform.ulice.value.length < 3 || xform.kontakt.value.length < 3 || xform.termin.value.length < 6 || xform.cpc.value.length < 4)
        {
                alert ("Vyplňte povinné údaje!");
                return false;
        }

        return true;
}
-->
</script>

<form method="post" id="cisteni" action="cisteni-kobercu-potvrzeni.php" onsubmit="return validate()">
<fieldset class="formfields"><legend>Objednávka čištění koberců a čalounění</legend>

<label>Službu využíváte jako:</label>
<input type="radio" name="osoba" value="organizace" checked="checked" />organizace<br/>
<input type="radio" name="osoba" value="fyzická osoba-občan" />fyzická osoba-občan<br/>

<label>Rozsah prací:</label>
<table>
<tr><td>
<input type="checkbox" name="c1" />
 odstranění hrubších nečistot vysavačem</td><td>
počet m2 <input type="text" name="v1" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c2" />
  čištění koberců</td><td>
počet m2 <input type="text" name="v2" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c3" />
 čištění sedací soupravy 3+1+1</td><td>
počet ks <input type="text" name="v3" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c4" />
 čištění sedací soupravy 3+2+1</td><td>
počet ks <input type="text" name="v4" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c5" />
 čištění kuchyňské, kancelářská židle</td><td>
počet ks <input type="text" name="v5" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c6" />
 čištění křesla</td><td>
počet ks <input type="text" name="v6" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c7" />
 čištění pohovky dvoumístné</td><td>
počet ks <input type="text" name="v7" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c8" />
 čištění pohovky třímístné</td><td>
počet ks <input type="text" name="v8" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c9" />
 čištění dvojité postele (letiště)</td><td>
počet ks <input type="text" name="v9" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c10" />
 čištění postele nebo matrace</td><td>
počet ks <input type="text" name="v10" maxlength="3" size="3" /></td></tr>

<tr><td>
<input type="checkbox" name="c11" />
 čištění kuchyňské lavice</td><td>
počet ks <input type="text" name="v11" maxlength="3" size="3" /></td></tr>

</table>

<label>Jiné úklidové služby</label>

Uveďte typ úklidové služby o kterou máte zájem:
<input type="text" name="jina_sluzba" size="50" class="intext" />

<label>Vaše kontaktní údaje pro místo určení:</label>
<div id="kontaktniudaje">
<label class="row">Jméno a příjmení:</label><input type="text" name="jmeno" class="intext" onfocus="checkfill()"/><div class="clear"></div>
<label class="row">Nazev firmy:</label><input type="text" name="firma" class="intext" onfocus="checkfill()"/><div class="clear"></div>
<label class="row">Ulice:</label><input type="text" name="ulice" class="intext" onfocus="checkfill()"/> ulice, č.p., poschodí<div class="clear"></div>
<label class="row">Město:</label><input type="text" name="mesto" class="intext" onfocus="checkfill()"/><div class="clear"></div>
<label class="row">Kontakt:</label><input type="text" name="kontakt" class="intext" onfocus="checkfill()"/> e-mail, telefon<div class="clear">&nbsp;</div>
<p>Pro rychlejší vyřízení uvádějte Váš email, děkujeme Vám.</p>
</div>


<label>Zadejte Váš návrh pro stanovení data a času realizace:</label>
<input type="text" name="termin" value="" onfocus="checkfill()" onblur="checkfill()" class="intext" /> dd.mm.rr hh:mm

<label>Opište kontrolní text:</label>
<img src="imgs/areyourobot.png" style="margin:0;vertical-align:middle" /><input type="text" name="cpc" value="" class="intext" onfocus="checkfill()" onblur="checkfill()" />

<hr class="clear"/><br />
<p>Po odeslání Vaší objednávky Vás budeme do 24 hodin kontaktovat a upřesníme datum i čas pro poskytnutí služby.</p>
<hr class="clear"/>
<p class="smaller">
Souhlas se zpracováním osobních údajů<br />
Podle zákona č. 101/2000 Sb. zákon o ochranně osobních údajů a o změně některých zákonů, v platném znění.
</p>
<p class="smaller">
Já výše jmenovaný(á) souhlasím s tím, že moje osobní údaje poskytované této firmě, mohou být zpracovávány v potřebném rozsahu.
Funkcí "odeslat" potvrzuji, že jsem byl ve smyslu ustanovení §11 zákona o ochraně osobních údajů informován o zpracování mých osobních údajů za výše uvedeným účelem, jakož i o svých právech souvisejících se zpracováním mých osobních údajů.
</p>

<input type="submit" value="Odeslat" />

</fieldset>
</form>

</div>

<div class="panel"><div class="paneltop"><div class="panelbottom">
<img src="imgs/puzzi300.jpg" alt="puzzi 300" style="margin-top: 20px;"/>
<h3>KÄRCHER PUZZI 300</h3>
</div></div></div>

<? include("kontakt-panel.inc") ?>

<? include("bottom.inc") ?>
 
Nahoru Odpovědět
18.8.2015 15:24
Avatar
smiesek
Člen
Avatar
Odpovídá na Radim Galíček
smiesek:18.8.2015 15:31

tak bohužel já ze své strany nedokážu tedy určit, co přesně obsahuje a nebo se tedy chová ta proměnná, třeba poradí někdo ze zkušenějších kolegů, mimo to v tom souboru taky není použita

 
Nahoru Odpovědět
18.8.2015 15:31
Avatar
Radim Galíček:18.8.2015 15:59

i tak dík, pokud se neozve někdo další, tak jednoduše přepíšu ten jeho e-mail a budu doufat,že to bude stačit. Budu muset spustit nový web co nejdříve,ať vyloučím riziko úniku dat.

 
Nahoru Odpovědět
18.8.2015 15:59
Avatar
Odpovídá na Radim Galíček
Uživatel sítě :18.8.2015 17:22
  1. Adresa (radim.galicek@seznam.cz) je kam se e-mail odešle.
  2. Adresa (From: info@zwa.cz) je odesílatel
  3. Adresa (Reply-To: $eXail) je adresa pro odpověď.

Ve tvém případě bych smazal \nReply-To: $eXail, není tam vůbec potřeba. Odesílatel, může být tvar třeba objednavka@tvo­jedomena.

Nahoru Odpovědět
18.8.2015 17:22
Chybami se člověk učí, běžte se učit jinam!
Avatar
smiesek
Člen
Avatar
Odpovídá na Uživatel sítě
smiesek:18.8.2015 17:59

taky jsem chtěla případně pak navrhnout, aby se to smazalo :-)

 
Nahoru Odpovědět
18.8.2015 17:59
Avatar
Radim Galíček:18.8.2015 21:25

myslím si, že to má souvislost s tím, že se ty objednávky ukládaly do textového souboru. Jelikož byly služby ze strany správce ukončeny už před několika týdny a nové objednávky se ukládaly pouze do doby funkčních služeb správcovství, tak něco umazali a upravili a proto možná ta proměnná $eXail,která vám tam nesedí

 
Nahoru Odpovědět
18.8.2015 21:25
Avatar
smiesek
Člen
Avatar
Odpovídá na Radim Galíček
smiesek:19.8.2015 3:14

v tom případě mě pak i napadlo, jestli to nyní zapomenutá proměnná, se kterou se dále nepracovalo a nebo záleží na programátorovi, zdali tehdy použil část kodu pro mail a tím pádem proměnnou bezhlavě překopíroval.

 
Nahoru Odpovědět
19.8.2015 3:14
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.