objednavkovy formular
Nefunguje to znamená čo? Čo si skúšal a čo to (ne)robí?
A k tomu druhému. Použi nejakú knižnicu na odosielanie emailov (napr. phpMailer). Vkladanie prílohy do emailu nie je jednoduché, takže knižnica bude rýchlejšie riešenie (ak sa teda nenájde niekto, kto ti to urobí aj bez tej knižnice, ale o tom dosť pochybujem).
A k tomu druhému. Použi nejakú knižnicu na odosielanie emailov (napr. phpMailer). Vkladanie prílohy do emailu nie je jednoduché, takže knižnica bude rýchlejšie riešenie (ak sa teda nenájde niekto, kto ti to urobí aj bez tej knižnice, ale o tom dosť pochybujem).
-
ThunderBoy
Light Expert
- Príspevky: 74
- Registrovaný: 09 nov 2005, 18:40
Kód: Vybrať všetko
if (isset($_POST['nieco']) && trim($_POST['nieco']) != "") $sprava .= "\nNieco: ".$_POST['nieco'];-
ThunderBoy
Light Expert
- Príspevky: 74
- Registrovaný: 09 nov 2005, 18:40
No neviem, nefunguje to. Stale mi zobrazuje vsetky polozky.chrono napísal:Kód: Vybrať všetko
if (isset($_POST['nieco']) && trim($_POST['nieco']) != "") $sprava .= "\nNieco: ".$_POST['nieco'];
Isto robim nieco zle.
Mozes mi, prosim ta priamo v tom celom kode urobit zmeny, bo uz neviem, co mam napisat do tych poloziek kde je ['nieco'], hlavne pri tom POSTe.
Dik
Vôbec netuším, ktoré položky sa ti môžu, ale nemusia zobrazovať a taktiež neviem, ako si tie prvky v tom formulári nazval.
Ak by ale bolo nepovinné napr. telefónne číslo, tak by si zmenil:na
Ak by ale bolo nepovinné napr. telefónne číslo, tak by si zmenil:
Kód: Vybrať všetko
$sprava .= "\nTelefón: ".$_POST['telefon'];Kód: Vybrať všetko
if (isset($_POST['telefon']) && trim($_POST['telefon']) != "") $sprava .= "\nTelefón: ".$_POST['telefon'];-
ThunderBoy
Light Expert
- Príspevky: 74
- Registrovaný: 09 nov 2005, 18:40
Eňo ňuňo.chrono napísal:Vôbec netuším, ktoré položky sa ti môžu, ale nemusia zobrazovať a taktiež neviem, ako si tie prvky v tom formulári nazval.
Ak by ale bolo nepovinné napr. telefónne číslo, tak by si zmenil:naKód: Vybrať všetko
$sprava .= "\nTelefón: ".$_POST['telefon'];Kód: Vybrať všetko
if (isset($_POST['telefon']) && trim($_POST['telefon']) != "") $sprava .= "\nTelefón: ".$_POST['telefon'];
Dik si borec. Teraz to funguje ako hodinky
Zle som to cele zadaval, preto to neslo. Menil som ten POST hned na zaciatku php kodu.
Este raz dik za snahu a cas.
PS: este by si ma potesil, keby si vymyslel daco s tou prilohou. Skusal som aj ten emailovy modul, ale z neho som bol este vacsi pako. Netusim ako to sklbit s tym kodom
-
jurko.info
Medium Expert
- Príspevky: 108
- Registrovaný: 22 nov 2006, 0:16
- Kontaktovať používateľa:
PHPmailer
Ako bolo vyššie napísané, skús to s PHPmailerom, je to jednoduché a máš po problémoch (osobne som s tým nadmieru spokojný)
Tu je krátky návod:
http://www.linuxsoft.cz/article.php?id_article=444
Tu je link na download/tutoriál a pod.:
http://phpmailer.codeworxtech.com/
Tu je krátky návod:
http://www.linuxsoft.cz/article.php?id_article=444
Tu je link na download/tutoriál a pod.:
http://phpmailer.codeworxtech.com/
-
ThunderBoy
Light Expert
- Príspevky: 74
- Registrovaný: 09 nov 2005, 18:40
Najde sa tu daky php programator, ktory mi implantuje do tohoto kodu
funkcie na odosielanie e-mailov s prilohami z tohto kodu
Tento kod funguje perfektne a pride aj priloha, ale potrebujem to dostat do kodu hore, aby to bolo v tom formulari. Nic ine tam netreba menit, len doplnit odosielanie priloh.
Daco som skusal, ale vzdy mi vyhodilo toto:
Parse error: syntax error, unexpected $end .....
Programovat v php neviem.
Najde sa tu dobra dusicka, co mi to spravi? Surne to potrebujem.
Thx
Kód: Vybrať všetko
<?
if(isset($_POST['Submit'])){
$predmet = "Objednávka";
$sprava = "Objednávací kód: ".$_POST['objednavaci-kod'];
$sprava .= "\nPočet kusov: ".$_POST['pocet-kusov'];
$sprava .= "\nRozmer: ".$_POST['rozmer_1'];
$sprava .= "\nPapier: ".$_POST['papier_1'];
$sprava .= "\nMeno a priezvisko objednávateľa: ".$_POST['meno-a-priezvisko-objednavatela'];
$sprava .= "\nTelefón: ".$_POST['telefon'];
$sprava .= "\nKontaktný e-mail: ".$_POST['e-mail'];
$sprava .= "\nPoznámka: ".$_POST['poznamka'];
echo $sprava;
if ( Mail("[email protected]", $predmet, $sprava, "From: " . $_POST['e-mail']) )
echo "Vaša objednávka bola úspešne spracovaná a odoslaná.";
else echo "Vašu objednávku sa nepodarilo spracovať.";
}
?> Kód: Vybrať všetko
<html>
<head>
<title>E-mail with Attachment</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
if ($_SERVER['REQUEST_METHOD']=="POST"){
// we'll begin by assigning the To address and message subject
$to="[email protected]";
$subject="E-mail with attachment";
// get the sender's name and email address
// we'll just plug them a variable to be used later
$from = stripslashes($_POST['fromname'])."<".stripslashes($_POST['fromemail']).">";
// generate a random string to be used as the boundary marker
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
// store the file information to variables for easier access
$tmp_name = $_FILES['filename']['tmp_name'];
$type = $_FILES['filename']['type'];
$name = $_FILES['filename']['name'];
$size = $_FILES['filename']['size'];
// here we'll hard code a text message
// again, in reality, you'll normally get this from the form submission
$message = "Here is your file: $name";
// if the upload succeded, the file will exist
if (file_exists($tmp_name)){
// check to make sure that it is an uploaded file and not a system file
if(is_uploaded_file($tmp_name)){
// open the file for a binary read
$file = fopen($tmp_name,'rb');
// read the file content into a variable
$data = fread($file,filesize($tmp_name));
// close the file
fclose($file);
// now we encode it and split it into acceptable length lines
$data = chunk_split(base64_encode($data));
}
// now we'll build the message headers
$headers = "From: $from\r\n" .
"MIME-Version: 1.0\r\n" .
"Content-Type: multipart/mixed;\r\n" .
" boundary=\"{$mime_boundary}\"";
// next, we'll build the message body
// note that we insert two dashes in front of the
// MIME boundary when we use it
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
// now we'll insert a boundary to indicate we're starting the attachment
// we have to specify the content type, file name, and disposition as
// an attachment, then add the file content and set another boundary to
// indicate that the end of the file has been reached
$message .= "--{$mime_boundary}\n" .
"Content-Type: {$type};\n" .
" name=\"{$name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
// now we just send the message
if (@mail($to, $subject, $message, $headers))
echo "Message Sent";
else
echo "Failed to send";
}
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"
enctype="multipart/form-data" name="form1">
<p>From name: <input type="text" name="fromname"></p>
<p>From e-mail: <input type="text" name="fromemail"></p>
<p>File: <input type="file" name="filename"></p>
<p><input type="submit" name="Submit" value="Submit"></p>
</form>
<?php } ?>
</body>
</html>
Daco som skusal, ale vzdy mi vyhodilo toto:
Parse error: syntax error, unexpected $end .....
Programovat v php neviem.
Najde sa tu dobra dusicka, co mi to spravi? Surne to potrebujem.
Thx
Nebolo by jednoduchšie použiť tú knižnicu phpMailer? V tom odkaze, čo ti poslal jurko.info je aj takmer kompletný návod (akurát sa ako príloha nebude posielať reťazec, ale súbor, takže sa zmení $mail->AddStringAttachment ($data, "zakaznik.txt", "base64", "text/plain"); na niečo takéto $mail->AddAttachment ($tmp_name, $name, "base64", $type); ).
PS: To, že to potrebuješ súrne je, podľa mňa, dosť malá motivácia na to, aby ti to niekto urobil.
PS: To, že to potrebuješ súrne je, podľa mňa, dosť malá motivácia na to, aby ti to niekto urobil.
-
ThunderBoy
Light Expert
- Príspevky: 74
- Registrovaný: 09 nov 2005, 18:40
ThunderBoy napísal:Este sa vraciam k tomuto kodu.Kód: Vybrať všetko
<? if(isset($_POST['Submit'])){ $predmet = "Objednávka"; $sprava = "Objednávací kód: ".$_POST['objednavaci-kod']; $sprava .= "\nPočet kusov: ".$_POST['pocet-kusov']; $sprava .= "\nRozmer: ".$_POST['rozmer_1']; $sprava .= "\nPapier: ".$_POST['papier_1']; $sprava .= "\nMeno a priezvisko objednávateľa: ".$_POST['meno-a-priezvisko-objednavatela']; $sprava .= "\nTelefón: ".$_POST['telefon']; $sprava .= "\nKontaktný e-mail: ".$_POST['e-mail']; $sprava .= "\nPoznámka: ".$_POST['poznamka']; echo $sprava; if ( Mail("[email protected]", $predmet, $sprava, "From: " . $_POST['e-mail']) ) echo "Vaša objednávka bola úspešne spracovaná a odoslaná."; else echo "Vašu objednávku sa nepodarilo spracovať."; } ?>
Viete niekto tento kod upravit tak, aby kopiu vytvorenej spravy odoslalo aj objednavatelovi, teda tomu, co objednavku poslal. Skratka na e-mail, ktory sa zadal do polozky: Kontaktný e-mail.
Takze odosle dva e-maily. Jeden na xxxxxx@ gmail.com a druhy na e-mail ktory bol zadany v polozke Kontaktný e-mail.
Dik za radu
-
killergage
Amateur
- Príspevky: 11
- Registrovaný: 18 nov 2005, 22:23
pomoc
a dalo by sa to nastavit aby to odosielalo na dva emaily sucastne ???
-
caesar1987
Addict
- Príspevky: 3001
- Registrovaný: 02 okt 2005, 0:57
- Bydlisko: Nové Zámky
- Kontaktovať používateľa:
ano
toto hore uprav takto
Kód: Vybrať všetko
if ( Mail("[email protected]", $predmet, $sprava, "From: " . $_POST['e-mail']) )
echo "Vaša objednávka bola úspešne spracovaná a odoslaná.";
else echo "Vašu objednávku sa nepodarilo spracovať.";
}
Kód: Vybrať všetko
if ( Mail("[email protected]", $predmet, $sprava, "From: " . $_POST['e-mail']) && Mail("[email protected]", $predmet, $sprava, "From: " . $_POST['e-mail']))
echo "Vaša objednávka bola úspešne spracovaná a odoslaná.";
else echo "Vašu objednávku sa nepodarilo spracovať.";
} -
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
-
ThunderBoy
Light Expert
- Príspevky: 74
- Registrovaný: 09 nov 2005, 18:40
No toto je to iste, co bolo predtym, len na dva e-maily, ktorych adresy viem.caesar1987 napísal:Kód: Vybrať všetko
if ( Mail("[email protected]", $predmet, $sprava, "From: " . $_POST['e-mail']) && Mail("[email protected]", $predmet, $sprava, "From: " . $_POST['e-mail'])) echo "Vaša objednávka bola úspešne spracovaná a odoslaná."; else echo "Vašu objednávku sa nepodarilo spracovať."; }
Ale ja ich potrebujem naraz poslat nielen na e-mail [email protected] alebo [email protected], ale aj na e-mail, ktory ziska odtialto $_POST['e-mail']), a tu adresu ja neviem. Ta bude ziskana z formulara.
Urobíš to presne tak, ako ti písal audiotrack. A teda pošleš ten email na nejakú adresu a ostatné adresy pridáš do BCC (asi by bolo rozumné, keby si použil nejakú knižnicu, ktorá sa postará o vytvorenie potrebných hlavičiek, takže môžeš vyskúšať napr. phpMailer).
//audiotrack: ty máš asi velmi rád toho phpMailera
už si ho odporučil asi každému okrem mňa 
// chrono: Ani nie, ale pri pohľade na všetko to odosielanie emailov pomocou funkcie mail sa nič iné odporučiť nedá (málo kto odošle aspoň základné hlavičky, takže taký email skončí zvyčajne ako spam a takisto takmer nikoho netrápi kódovanie znakov...).
Je ale pravda, že CC a BCC funguje pravdepodobne len vtedy, keď sa to posiela cez SMTP, takže ak nie je dostupné SMTP, bude treba ten email odoslať dva krát.
//audiotrack: ty máš asi velmi rád toho phpMailera
// chrono: Ani nie, ale pri pohľade na všetko to odosielanie emailov pomocou funkcie mail sa nič iné odporučiť nedá (málo kto odošle aspoň základné hlavičky, takže taký email skončí zvyčajne ako spam a takisto takmer nikoho netrápi kódovanie znakov...).
Je ale pravda, že CC a BCC funguje pravdepodobne len vtedy, keď sa to posiela cez SMTP, takže ak nie je dostupné SMTP, bude treba ten email odoslať dva krát.
Čo máš proti tej knižnici?ThunderBoy napísal:jaj, zas ten phpMailer
Kód: Vybrať všetko
<?php
include_once('class.phpmailer.php');
function posliEmail($to, $message, $subject, $from)
{
if (is_array($to)) {
$adresy = $to;
} else {
$adresy = array($to);
}
foreach ($adresy as $adresa) {
$mail = new PHPMailer();
$mail->CharSet = "utf-8";
$mail->Body = $message;
$mail->From = $from;
// $mail->FromName = $from_name; // toto nie je pouzite (neviem, ci tam mas aj meno odosielatela)
$mail->Subject = $message;
$mail->AddAddress($adresa);
if (!$mail->Send()) return false;
}
return true;
}
$sprava = "pokusna sprava";
$predmet = "test";
$_POST['e-mail'] = "[email protected]";
if (posliEmail(array("[email protected]", "xxxxx.example.com"), $sprava, $predmet, $_POST['e-mail'])) {
echo "Vaša objednávka bola úspešne spracovaná a odoslaná.";
} else {
echo "Vašu objednávku sa nepodarilo spracovať.";
}
?>Inak práve teraz mi napadlo, že ak ten email pošleš aj tomu, čo si niečo objednáva, tak nie je rozumné mu poslať email, v ktorom je ako adresa odosielateľa jeho email (mal by tam byť tvoj).
PS: Ošetriť by si mal aj $_POST['e-mail'].
PPS: Ten objekt $mail sa dá v tej funkcii "recyklovať". Stačí vymazať adresátov a nastaviť ich znova (netreba ten objekt vytvárať pri každom emaily).
PPPS: Skús porovnať email, ktorý vygeneruješ pomocou tej funkcie mail() s tým, ktorý vygeneruje PHPMailer.