Chybová hláška při odesílání formuláře

13 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Ahoj všichni, jsem naprostý začátečník s php, poradíte mi prosím, co znamená tohle Warning: mail() expects at most 5 parameters, 11 given in /3w/wz.cz/j/jitule-f/obchod/potvrzeni.php on line 48 nebo spíš co s tím udělat .. chtěla jsem stvořit jednoduchý objednávkový formulář na téhle stránce http://www.jitule-f.wz.cz/obchod/objednavka.htm a jsem samouk amatér, tak prosím berte
  2. No, predpokladam ze umis anglicky tak ti asi dojde ze jsi funkci mail() dala 11 parametru a ona ma podle dokumentace maximalne 5. ;) Pokud chces efektivne poradit, je vzdycky lepsi zkopirovat cast zdrojoveho kodu ... (tady nejlepe 48 radek).
  3. cz.php.net/mail - dokumentace online k php
  4. Freeze, anglicky sice umím, jen jsem si nebyla jistá, co to očekává maximálně 5 parametů, protože to byl můj úplně první pokus o php. Peto, díky za navedení Stávila jsem nad tím spoustu hodin a stvořila tohle, možná se zhrozíte, ale pro mě je to úspěch <?php if (isset($_POST['odeslano'])) { $zbozi = $_POST['zbozi']; echo "Zboží:<br />".$zbozi; $jmeno = $_POST['jmeno']; echo "<br />Jméno:".$jmeno; $prijmeni = $_POST['prijmeni']; echo "<br />Příjmení:".$prijmeni; $ulice = $_POST['ulice']; echo "<br />Ulice:".$ulice; $PSC = $_POST['PSC']; echo "<br />PSČ:".$PSC; $mesto = $_POST['mesto']; echo "<br />Město:".$mesto; $telefon = $_POST['telefon']; echo "<br />Telefon:".$telefon; $email = $_POST['email']; echo "<br />email:".$email; $platba = $_POST['platba']; echo "<br />Platba:<br />".$platba; $message .="$jmeno\n"; $message .="$prijmeni\n"; $message .="$ulice\n"; $message .="$cislo\n"; $message .="$PSC\n"; $message .="$mesto\n"; $message .="$telefon\n"; $message .="$email\n"; $message .="$platba\n"; $odeslani = mail("jitule-f@email.cz", "Objednavka z webu od: ".$email, $message, $zbozi); if ($odeslani) { echo "Objednávka byla odeslána."; } else { echo "Objednávku se nepodařilo odeslat"; } } ?> Ještě v pondělí mi to na mail posílalo, sice formát nic moc, ale posílalo. Dnes se to odešle ale na mail nic nepřijde. Mám tam chybu, nebo je ten problém někde jinde? V podobném tématu psal Tom o zdvojování proměnných - mám to tam taky - takhle jsem to vycucala z webu polopatě Díky moc Jitka
  5. $odeslani = mail("jitule-f@email.cz", "Objednavka z webu od: ".$email, $message, $zbozi); A co znamena posledni parametr $zbozi? Usuzuji, ze to nebude to, co zrovna funkce mail ocekava. Ctvrty parametr ocekava hlavicky a ne nejake zbozi.
  6. to určitě nebude. Co očekává funkce mail, jsem se zatím nikde nestačila dočíst. Ale i tak mi to ještě vpondělí posílalo.
  7. zbozi jsem tedy přesunula do message k ostatním, ale to nebyl ten zádrhel, proč to nechodí
  8. Jitule-f: co SPAM? Není to někde mezi ním? Btw: k tomu zdvojování proměnných - vážně je tak složité místo $platba = $_POST['platba']; echo "<br />Platba:<br />".$platba; použít: echo '<br />Platba:<br />'.$_POST['platba']; ? + vzhledem k tomu, že email není zrovna dvakrát spolehlivý (hádej co všechno se může po cestě pokazit?), měl bych jeden tip na zlepšovák: ukládej si objednávky někam do souborů nebo do databáze a ještě si k tomu připiš skript generující RSS kanál a odebírej to jako novinky. Práce maximálně tak na hodinku ;)
  9. Tome, mezi spamem to není to echo... s tím bych si poradila, ale já jsem fakt začátečník, a moc tomu nerozumím, jsem si nebyla jistá, co u toho message a funkce mail, všude pak puužiju např místo $platba .$_POST['platba'] No, to že by to chtělo posílat jěště někam jinam, to mě taky napadlo, ale co si mi napsal ty, je pro mne fakt španělská vesnice. Tamto jsem tvořila 10 hodin, než jsem k tomu všechno našla a opravila všechny chyby, na něco dalšího už momentálně nemám sílu.
  10. $odeslani = mail("jitule-f@email.cz", "Objednavka z webu od: ".$email, $message, $zbozi); jak uz rikali... $message . $zbozi a je treba po napsani opravila napsat i cely radek $odeslani = mail("jitule-f@email.cz", "Objednavka z webu od: ".$email, $message); Pak je treba si kontrolovat obsah, co ti posilaji z formularu. Spam boti ti poslou nelegalni znaky a kdyz to nekontrolujes, tak ti to smaze celou webku, treba. Pak je problem v omezeni funkce mail na wz.cz . Proste po nekolika mailech za hodinu dalsi neposle, dokud hodina nepostoupi. Dalsi problem je antispam. Jestlize se neco posle nekolikrat z nejake webky se s tejnym mailem a stejnym predmetem, cekal bych, ze antispam tuhle zpravu zaradi mezi spam, pokud nema nastaven filtr primo na uvedeny mail, ze vzdy prijimat. $platba .$_POST['platba'] se da vyresit... $x = array("platba","zbozi","ulice","PCS") foreach ($x as $key=>$value) {${$value} = isset($_REQUEST[$value]) ? $_REQUEST[$value] : ""; } totez $$value = ... nebo foreach ($_REQUEST as $key=>$value) {$$key = $value;} ale tady uz nemusis odeslat nejake policko a program zkape na undefined $message .="$jmeno\n"; ... no jo, ale nikde pred tim nevidim $message = ""; Cili pocatecni hodnota je undefined a pak k ni pridavas jmeno a pod a muzes opet vyuzit cyklu jako s request $message = ""; foreach ($x as $key=>$value) {$message.= "\n". $value .": ". (isset($_REQUEST[$value]) ? $_REQUEST[$value] : ""); } ... misto BR teda \n do mailu, jestli nemas nastavenu hlavicku na HTML, ale na TEXT mail. mozna by bylo fajn pri odeslani k hlasce odeslano/neodeslano zobrazit i obsah mailu: echo "<pre>".$message."</pre>";
  11. Peto, jo, jo, to opravení toho řádku $odeslání... to mi došlo, že u $message v prvním řádku nemá být tečka to už taky vím, díky za to zobrazení obsahu mailu, a to ostatní se budu muset teprve podívat, co co znamená - opradu jsem úplný začátečník. Ted jsem hledala jak poslat ta data z formuláře jak na mail, tak i do nějakého souboru, ale neúspěšně, asi špatně hledám Ocenuji tvou snahu
  12. To, že odešleš data z forumáře znamená, že je předáš dalšímu skriptu, který si nimi dále pracuje tak, jak je libo. Data se do souboru neodesílají, ale zapisují, tedy: $fp = fopen('cesta/nazev_souboru','příznak'); // otevřu soubor (http://php.net/fopen) frwite($fp, 'Text, který chci uložit'); // zapíšu data (http://php.net/fwrite) fclose($fp); // uzavřu soubor Toto je nejjednodušší způsob, jak nacpat data do souboru.
  13. huráá, povedlo se. Jen jsem blbec strávila spoustu času hledáním chyby ve scriptu, nakonec jsem ji našla - ve formuláři. Díky moc!

← Zpět na všechna témata