Mezofi Posted June 24, 2006 Posted June 24, 2006 Megnéztem, mûködik tamasir-é is! Annak ellenére, hogy tele van sallanggal.
tamasir Posted June 24, 2006 Author Posted June 24, 2006 Sajnos a kettő közül egyik sem működik. ír: A kódban, amit átírtál az én e-mail címem van. Tehát nem kell át írnom. A válasz megérkezett a fiamnál, nyugtázta az elküldést, de az e-mail nem érkezett meg hozzám. Ezután átírtam a kódot, a posta címet kiszedtem, újra feltettem. Semmi! Így néz ki a kód: <?php if(isset($_POST["nev"])){ if( trim($_POST["nev"]) !=="" AND trim($_POST["posta"]) !=="" AND trim($_POST["email"]) !==""){ //Írd be az email-címedet: $mymail = "freewebsablon@cjb.hu"; /* HTML levél küldése a Content-type fejléc megadásával */ $targy = "Értesítés"; $fejlec = "MIME-Version: 1.0\n"; $fejlec .= "Content-type: text/html; charset=iso-8859-2\n"; /* további fejlécek Itt beállithatod mit írjon feladónak */ $fejlec .= "From: ".trim($_POST["nev"])."<".trim($_POST["email"]).">\n"; /* üzenet */ $uzenet= '<HTML><HEAD><TITLE>Üzenet</TITLE> <STYLE type=text/css> body { font-family: Arial, Verdana, Tahoma; font-size: 13px; text-align: justify; margin-left: 20px; padding: 10px 0 10px 0; .center{ vertical-align:top; } } </STYLE> <META http-equiv=Content-Type content="text/html; charset=iso-8859-2"> <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD> <BODY>'; //Az üzenet tartalma //Megszólítás $uzenet.="Hali!<br/><br/>"; $uzenet.="Oldaladról a következő email érkezett.<br/>Szöveg: ".trim($_POST["szöveg"]); $uzenet.="<br/>Küdte: ".trim($_POST["nev"])."<br/>"; $uzenet.="<br/>Email címe :".trim($_POST["email"]); $uzenet.="</BODY></HTML>"; if(@mail($mymail,$targy,$uzenet,$fejlec)) { $uzenet="A levél sikeresen elment."; } else { $hiba="Szerver hiba! A levelet nem sikerült elküldeni!"; } }else{ $hiba="Sajnos valamely mező üresen maradt!"; } } ?> <!-- ****************************************** * A php és mysql scripteket írta: * * Mezőfi István * * http://www.mezofi.com/segedletek.htm * ****************************************** --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> <script type="text/javascript" language="javascript"> function checkmail(hol) { if(hol.nev.value ==""){ alert('Üres a név mező'); hol.nev.focus(); return false; } if(hol.posta.value ==""){ alert('Üres a posta mező'); hol.posta.focus(); return false; } var re_mail=/^([a-zA-Z0-9_\.\-])+@([a-zA-Z0-9_\-\.])+(\.[a-zA-Z]{2,4})$/; var mailfield = document.getElementsByName("email"); if(!re_mail.test(mailfield[0].value)) { alert('Nem megfelelő az e-mail cím, vagy üresen hagytad a beviteli mezőt! !'); hol.email.focus(); return false; } } </script> </head> <body> <?php if(!isset($_POST["nev"]) || isset($hiba)){ if(isset($hiba)){ echo $hiba; } ?> <form action=" index.php?oldal=sikeresmail " method="post" name="mailer" onsubmit="return checkmail(this);"><br/> <fieldset><label accesskey="n" for="id_nev"><strong>Ide írja a nevét:</strong><br /> <input id="nev" type="text" name="nev" value="<?php echo $_POST["nev"]; ?>" /><br /><br /> </label><label accesskey="e" for="id_email"><strong>Ide írja az e-mail címét:</strong><br/> <input id="email" type="text" name="email"value="<?php echo $_POST["email"]; ?>" /><br /><br /> </label><label accesskey="u" for="id_uzi"><strong>Ide írja az esetleges üzenetét:</strong><br /> <textarea id="uzi" name="uzi" rows="5" cols="30" /><?php echo $_POST["uzi"]; ?></textarea><br /></label><br /> <input type="submit" name="rendeles" value="Üzenet küldése" accesskey="s" /><br/> </fieldset> </form> <?php }else{ print($uzenet); } ?> A végéről leszedtem </body></html> mert a validator hibát írt. Hol a hiba!? A másikat is feltettem, az jobb, mert a validator csak egy hibát jelez és a kinézete is jobb. Csak e-mailt nem küld, más gépéről sem. Most az van fent. Itt a lapomon.
Mezofi Posted June 24, 2006 Posted June 24, 2006 Amit linket megadtál, ott nem ez a kód van, mert pl a form át van irányítva a mail.php-re. Ha az általam leírt kódot berakod egy üres lapra, aminek index.php nevet adsz, és kipróbálod, akkor észreveszed, hogy működik a lap. De szétszeded és az alakotó részeit külön külön lapokon tartod, de nem is tudod mi miért van, akkor valószínüleg nem fog működni, mint ahogy a példa mutatja. Ezért én mindig önállóan próbálok ki dolgokat és csak az után integrálom egy nagy lapra, mert ha ott nem megy, akkor biztos hogy nem a scriptnek van baja, hanem a kettő együtt valami gondot okoz. De a scriptben megtalálod a segédleteim internetes címét, ott találsz két egyszerű email küldési leírást is.
tamasir Posted June 25, 2006 Author Posted June 25, 2006 Mezőfi ! Azért adtam meg a linket, mert megjelenésében és Validitásban is az lenne a jobb. De nálam az sem müködik. Ezért van a mail.php-ra irányítva a form. Megnéztem a lapodat, de ott csak olyan leírásokat találtam, amelyek nem weblapba beépítésre valok. Vagy én nem ismertem fel, hogy melyik az?
tamasir Posted July 1, 2006 Author Posted July 1, 2006 Sikerült megoldanom! Találtam egy komplett e-mailküldő html és php kódot. Csak saját adataimat kellett kitöltenem és a html kódot bemásolnom a weblapom php oldalára. Az e-mail rendre megérkezik. Siker! Itt megtalálható és ingyen letölthető a script ha valakit érdekel. És még Validdá is lehet tenni. Link
csutka Posted September 27, 2006 Posted September 27, 2006 Sziasztok! Nekem az a gondom, hogy elkészítettem egy weboldalt, ahol van ûrlap küldésére lehetõség. Nem e-mailben, hanem php-ben szeretném feldolgozni. El is készítettem a php oldalt, de amikor rámegyek a Küldés gombra, nem küldi el, hanem kiírja a php oldal tartalmát. Mi lehet vele a gond? Már mindent átnéztem, de egyszerûen nem találom a hibát. A másik pedig az, hogy az ûrlapküldõ oldalon mindig felhozza a blokkolt tartalom engedélyezése csíkot. Bemásolom a php-t, hátha valaki tud segíteni. <HTML> <BODY> <CENTER> <H1 ALIGN=center>Köszönjük, hogy elküldte üzenetét!</H1> <?php echo "Kedves <B>".$_POST["nev"]."!</B><BR>"; echo "<BR>"; echo "Öntôl a következô adatok érkeztek be hozzánk:<BR>"; echo "<B>Név: </B><I>".$_POST["nev"]."</I><BR>"; echo "<B>E-mail cím: </B><I>".$_POST["mail"]."</I><BR>"; echo "<B>Egyéb: </B><I>".$_POST["egyeb"]."</I><BR>"; function levelkuld() { $cimzett = "e-mail cimem@xy.hu"; $targy = "Levél jött"; $uzenet = "Levél érkezett a weblapról!\n"; $uzenet .= "A feladó neve: ".$_POST["nev"]."\n"; $uzenet .= "A feladó email címe: ".$_POST["mail"]."\n"; $uzenet .= "A feladó közleménye: ".$_POST["egyeb"]."\n\n"; mail($cimzett, $targy, $uzenet,"From:i<i@i.hu>"); } levelkuld(); //az új adatok hozzáfûzése a szövegfájlhoz $f=fopen("adatok.txt","a"); $sor=$_POST["nev"]."\n".$_POST["mail"]."\n".$_POST["egyeb "]."\n"; fputs($f,$sor); fclose($f); ?> </BODY> </HTML> Üdvözlettel.
zsoltchelsea Posted September 27, 2006 Posted September 27, 2006 Nem tiltja ezt véletlenül a szolgáktató???
csutka Posted September 27, 2006 Posted September 27, 2006 Szia! Köszi a választ. A szolgáltató a vnet. Ill. ez a kiszolgáló neve. Hol lehet ezt megnézni? Ill. mit lehet ilyenkor csinálni?csutka.
level Posted September 27, 2006 Posted September 27, 2006 A szkript teljesen jó. Nem volt egyszerű rájönni, de a hibát az okozhatja, hogy nem jó karakterkódolással van a fájl elmentve. Notepadban ANSI-ra állítva nekem teljesen működik, de ha unicode készlettel mentem el, akkor a szkript nem fut le a szerveren, hanem megjelenik a böngészőben a tartalma. Nem tudom milyen szerkesztőt használsz, de valami ilyesmi változtatásokkal próbálkozz, mert tartalmilag a szkript jó. A mail() függvény használata le lehet tiltva az ingyenes szolgáltatóknál, és jobb esetben ezt nem is mondják meg, csak empirikus úton jössz rá. De ezzel most még ne foglalkozz, mert előbb azt kell elérni, hogy a szkript egyáltalán lefusson a szerveren.
csutka Posted September 27, 2006 Posted September 27, 2006 Kedves Level! Köszönöm a választ, csak olyan mintha kinaiul írtad volna. Megpróbálom felfogni és kipróbálni. Mit értesz karakterkodoláson? A php megírásához a NuSphere PhpED-et használom. Az oldalt pedig frontPage-ben szerkesztettem. Itt kell megváltoztatnom a kódolás módját? Bocs.
level Posted September 27, 2006 Posted September 27, 2006 Sose láttam még FrontPage-t, úgyhogy erre sajnos nem tudok érdemi választ adni, csak azt, hogy próbálgasd. De szerintem ott lehet ezen állítani. A többi php szkripted, amiket korábban csináltál, azok mûködnek gond nélkül? Esetleg megpróbálhatod azt is, hogy a problémás fájlt megnyitod Notepadban, és a Mentés másként alatt felkínál néhány lehetõséget a karakterkódolásra, ott állítsd át, mentsd el, töltsd fel, és meglátod. Még egy kérdés, a fájl ugye .php kiterjesztésben van elmentve?!
csutka Posted September 27, 2006 Posted September 27, 2006 Szia! Ez az elsõ. Ezért is vagyok ilyen nagy gondban.A php az php Köszönöm az ötleteket. Mindjárt kipróbálom.
zsoltchelsea Posted September 27, 2006 Posted September 27, 2006 @ Level: A FrontPage olyan szerkesztõ, mint a DreamWaver, ha ez segít. @csutka: Ez így elég nehéz lesz. A karakterkódolásokat nagyon nem értem (nem ismerem a PHP-t, csak pár dolgot), de az a lényege, hogy másféleképpen kódolja a karaktereket a PHP scripted, mint a szabvány. Az ANSI az elfogadottabb. Ha te szerkesztetted a kódot, akkor nézd át újra, ha nem, akkor olvasd el a hozzá tartozó szöveget a letöltés helyén. Próbáld meg a HTML részbe beírni a kódtábla típusát (UTF . Akkor talán le fog futni...
csutka Posted September 27, 2006 Posted September 27, 2006 Köszi szépen. Próbálkozok és jelentkezek, ha van valami.
Mezofi Posted September 28, 2006 Posted September 28, 2006 @csutka Bár nekem is Mûködik így ahogy van a script. azért érdemes megpróbálni a következõ sort lecserélni: mail($cimzett, $targy, $uzenet,"From:i<i@i.hu>"); Erre: mail($cimzett, $targy, $uzenet,"From:i<i@i.hu>\n\r"); Próba szerencse. Tárhelye változtatja. De az is lehet, hogy nincs is engedélyezve a Php futtatása a szervereden.
csutka Posted September 28, 2006 Posted September 28, 2006 Szia! Megpróbálom. Köszi. csutka Tudom,hogy írtó béna vagyok, de ezt írja ki. Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Melinda\Oszi\visszaig.php on line 22 Az smtp-hez az én szolgáltatómat kell beírni, vagy pedig ahova fel akarom tölteni?
arpsoft Posted September 28, 2006 Posted September 28, 2006 A tárhely szolgáltatód smtp szerverének a címe kell oda.
Mezofi Posted September 30, 2006 Posted September 30, 2006 @csutka Azért azt nem árt tisztázni, hogy nem saját géprõl szeretnél emailt küldeni, ugye? Hanem a neten egy szolgáltató szerverérõl próbálkozol. Bár szerintem sajátgéprõl akarod nyomni, és ez lesz a hiba.
csutka Posted October 1, 2006 Posted October 1, 2006 Szia! De bár próbáltam azt is, hogy feltöltöm a netre és ott próbálkozom, de ott sem jött össze. Nem tudod honnan lehetne letölteni olyan oldalt, ahol nme is az hogy kész kód legyen, csak legalább megértsem mi a probléma vele.Üdv.
Mezofi Posted October 1, 2006 Posted October 1, 2006 Sajátgéprõl ne is próbáld. Ingyenes szerverrõl próbáld ki. Pl: www.uw.hu Ilyen scriptet, leírást találsz az én oldalamon is. Itt a cím.
level Posted October 1, 2006 Posted October 1, 2006 Igen, az nem olyan fontos, hogy mi van saját gépen. (Az enyémen pl. a mail függvény visszatérési értéke mindig TRUE, pedig a gép nincs is rákötve az internetre. ) A szkript, amit fent bemásoltál, többünknek mûködött, tehát jónak kell lennie. Jó lenne, ha kicsit konkrétabban is leírnád, mit jelent az, hogy "nem jött össze".
csutka Posted October 1, 2006 Posted October 1, 2006 Sziasztok! Kipróbálom mégegyszer és megírom mi is a gondom. köszi a figyelmet és a segítséget.
csutka Posted October 1, 2006 Posted October 1, 2006 Tehát: van egy html oldalam aminek a HEAD részében van ez a script <script language=JavaScript> <!-- function adatell(obj) { if (obj.nev.value == "") { window.alert("Név kitöltése kötelezõ!"); obj.nev.select(); return; } if (obj.mail.value == "") { window.alert("email cím kitöltése kötelezõ!"); obj.nev.select(); return; } if (obj.egyeb.value == "") { window.alert("Egyéb kitöltése kötelezõ!"); obj.nev.select(); return; } obj.submit(); } //--> </SCRIPT> Majd a alatta a BODY részben van ez: <FORM name=jelentkez action=visszaig.php method=post> <div align="center"> <TABLE bgColor=#ECE9D8> <TBODY> <TR> <TD> <h1><font color="#003399" size="3">Név:</font></h1> </TD> <TD><INPUT size=40 name=nev></TD></TR> <TR> <TD> <h1><font color="#003399" size="3">E-mail:</font></h1> </TD> <TD><INPUT size=40 name=mail></TD></TR> <TR> <TD> <h1><font color="#003399" size="3">Üzenet:</font></h1> </TD> <TD><TEXTAREA name=egyeb rows=5 cols=40></TEXTAREA></TD></TR></TBODY></TABLE> </div> <BR><BR> <P align=center> <INPUT onclick=adatell(jelentkez) type=button value="Küldés" style="color: #003399; font-weight: bold"> <INPUT type=reset value=Törlés style="color: #003399; font-weight: bold"></P></FORM> És van a visszaig.php <HTML> <BODY> <CENTER> <H1 ALIGN=center>Köszönjük, hogy elküldte üzenetét!</H1> <?php echo "Kedves <B>".$_POST["nev"]."!</B><BR>"; echo "<BR>"; echo "Öntôl a következô adatok érkeztek be hozzánk:<BR>"; echo "<B>Név: </B><I>".$_POST["nev"]."</I><BR>"; echo "<B>E-mail cím: </B><I>".$_POST["mail"]."</I><BR>"; echo "<B>Egyéb: </B><I>".$_POST["egyeb"]."</I><BR>"; function levelkuld() { $cimzett = "e-mail cimem@xy.hu"; $targy = "Levél jött"; $uzenet = "Levél érkezett a weblapról!\n"; $uzenet .= "A feladó neve: ".$_POST["nev"]."\n"; $uzenet .= "A feladó email címe: ".$_POST["mail"]."\n"; $uzenet .= "A feladó közleménye: ".$_POST["egyeb"]."\n\n"; mail($cimzett, $targy, $uzenet,"From:i<i@i.hu>"); } levelkuld(); //az új adatok hozzáfûzése a szövegfájlhoz $f=fopen("adatok.txt","a"); $sor=$_POST["nev"]."\n".$_POST["mail"]."\n".$_POST["egyeb "]."\n"; fputs($f,$sor); fclose($f); ?> </BODY> </HTML> Bocsánat, ha hosszú voltam, de csak így tudtam érzékelteni a problémámat. Remélem, hogy valaki tud segíteni.csutka
Mezofi Posted October 1, 2006 Posted October 1, 2006 Lehet nem voltam világos? Reggelj egy tárhelyet az uw.hu-ra. Ingyenes. Tedd fel a lapodat amin van az email küldés. És futtasd. Ekkor megkapod az emailed. Nemtudom melyik szerveren próbálkozol.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now