Autor Zpráva
Payrac
Profil *
Vazeni, prosim pomozte i odhalit proc mi tento script nezasila do emailu obsah - dekuji

                    <form action="contact.php" method="post">
                            <div class="row form-group">
                                <div class="col-md-12">
                                    <label for="fname">Ihr Name</label>
                                    <input type="text" name="fname" class="form-control">
                                </div>
                                
                            </div>

                            <div class="row form-group">
                                <div class="col-md-12">
                                    <label for="email">Email</label>
                                    <input type="text" name="email" class="form-control">
                                </div>
                            </div>

                            <div class="row form-group">
                                <div class="col-md-12">
                                    
                                    <label for="message">Bericht</label>
                                    <textarea name="message"  cols="30" rows="10" class="form-control"></textarea>
                                </div>
                            </div>
                            <div class="form-group">
                                <input type="submit" value="Senden" class="btn btn-primary">
                            </div>

                        </form>        
    
<?php

$to = "mail@seznam.cz";
$extra = "From: $email\r\n";
$subject = "Vzkaz od ".$email."";
$mess = "Jmeno: ".$fname."\nZprava:".$message."\nEmail: ".$email." \n";

mail ($to, $subject, $mess, $extra);

?>
Enko
Profil
Máš to opsané z nějakého pravěkéhonávodu ještě pro PHP4. Jen v rychlosti přepsané takto:
$to = "mail@seznam.cz";
$extra = "From: {$_POST["$email"]}\r\n";
$subject = "Vzkaz od ".$_POST["$email"]."";
$mess = "Jmeno: ".$_POST["fname"]."\nZprava:".$_POST["message"]."\nEmail: ".$_POST["email"]." \n";
 
mail ($to, $subject, $mess, $extra);
Ovšem takto ti nebude fungovat správně čeština v předmětu a není to ošetřené oproti injection. Více viz tady: Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky.
Tomášeek
Profil
Enko:
$_POST["$email"] určitě ne...
Na co je na konci třetího řádku sekvence znaků .""?
Proč odřádkováváš na druhém řádku pomocí \r\n a o dva řádky níže pouze \n?

Myslím, že ten kód není o moc lepší :-)
Payrac
Profil *
Tomášeek:
Ahoj , prosim te jak by mel spravne vypadat ten kod...?? Muzu pozadat o radu tedy prosim.. Nejak to jde ale.... nedosazuje se mi Vzkaz OD ...a from... Nevim si s tim rady a nejsem vlastne programator ... stranky si napsat v css zvladnu atd.. HTML ale to php se mi nyni nedari.

dekuju
Keeehi
Profil
Payrac:
nedosazuje se mi Vzkaz OD ...a from.
To bude proto, že se ten email nejspíše zobrazuje jako HTML. A tam, jak určitě víš, se odřádkování bere jako obyčejná mezera. Je tedy potřeba převést odřádkování na <br> tagy. Na to je v PHP funkce nl2br.
Payrac
Profil *
Keeehi:
jeste i prosim péradte avy mi tato radka $extra = "From: {$_POST["$email"]}\r\n"; posilala konkretene web@mail,com.

A bude mi to stacit.

dekuji
Keeehi
Profil
$extra = "From: web@mail.com\r\n";
Zas tak těžké to nebylo, že?
Payrac
Profil *
Vážení, jak docílím toho aby mi po odeslání emailu resp formuláře vyskočilo na stránce echo že byl email odeslán? Jak napsat podminku k tomuto scriptu viz - vyse ale text ktery se ma objevit - echo aby bylo na strance kde si urcim ja:

Dekuji za rady jsem opravdu v php laik a potrebuji toto nejak dodelat v tomto pripade.

nezlobte se
Keeehi
Profil
Payrac:
Tak ten PHP script posuň na místo, kde chceš aby se to vypisovalo.
if (isset($_POST["email"])) { // zajistí odeslání emailu jen při odeslání formuláře

    // kód pro přípravu zprávy

    if (mail( .....)) {
        echo "Message sent";
    }
}

Funkce mail vrací true, když úspěšně předá email k odeslání. To ale neznamená, že se musí i vždy doručit.
Ono je dokonce i možné, že se vůbec neodešle. Je to lepší než nic, ale moc se na to spoléhat nedá.
Tomášeek
Profil
Keeehi:
V #5 jsi reagoval na něco jiného, nedosazuje vs. neodsazuje :-) Pole "od" je subject, nikoliv součást contentu.

Problém v #5 i následně v #9 (a vlastně i #7) je v uvedení klíče, $_POST[$email] vs $_POST['email'].
Keeehi
Profil
Tomášeek:
Díky, nějak jsem to při kopírování přehlédl. Už je to správně.
Payrac
Profil *
Keeehi: dekuji zda se ze to jede bez problemu.... Jeste bych sed jen zeptal cim by mohlo byt to, ze kdyz odeslu formular, vysedek mi dorazi na email , ale 2x to same ve stejny cas.
Keeehi
Profil
Payrac:
No, protože to nespíše nějak dvakrát odesíláš. Nemáš tam tu funkci mail dvakrát? Nebo v nějakém cyklu?
Payrac
Profil *
Keeehi:
<div class="php_scr"><?php

$to = "jiri.michalek@seznam.cz";
$extra = "From:web@b3btravel.com \r\n";
$subject = "Vzkaz od ".$_POST["$email"]."B3BTRAVEL";
$mess = "Jmeno: ".$_POST["fname"]."\nZprava:".$_POST["message"]."\nEmail: ".$_POST["email"]."\n";
 mail ($to, $subject, $mess, $extra);
if (isset($_POST["email"])) { // zajistí odeslání emailu jen při odeslání formuláře
 
    // kód pro přípravu zprávy
 
    if (mail($to, $subject, $mess, $extra)) {
        echo "Message sent";
    }
}
?></div>
Keeehi
Profil
Vždyť tam tu funkci mail máš dvakrát. To jako čekáš, že ta první funguje jen v pracovní dny a ta druhá o víkendech? Když ji tam máš dvakrát, tak se přece odesílá dvakrát. Příště prosím použij hlavu.
Navíc při každém načtení stránky by ti měl chodit i jeden prázdný email (když si stránku zobrazíš, ještě než odesíláš formulář). Což možná nevíš, jelikož je bude asi filtrovat spammový filter.

<div class="php_scr"><?php
if (isset($_POST["email"])) {
    $to = "jiri.michalek@seznam.cz";
    $extra = "From:web@b3btravel.com \r\n";
    $subject = "Vzkaz od ".$_POST["email"]." B3BTRAVEL";
    $mess = "Jmeno: ".$_POST["fname"]."\nEmail: ".$_POST["email"]."\nZprava:".$_POST["message"]."\n";
 
    if (mail($to, $subject, $mess, $extra)) {
        echo "Message sent";
    }
}
?></div>
Payrac
Profil *
Keeehi: Opravdu ti diky,,,, super a nezlob se

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: