Mi lehet a gond a php email-lel?
Ha a head részbe beírom, hogy :
$headers[] = 'From: <valami@valami.hu>';
Persze valós emailt adok meg, akkor nem érkezik meg sehova, semmilyen email címre. Próbáltam már a php dokumentációban lévő html email-t is, de azzal teljesen ugyanez a helyzet. Az ininet tárhelyéről próbálom küldeni a levelet regisztráció megerősítésére.
Tudnátok valami helyes formátumot bemásolni, linkelni ide, ami mindenhol működik, és tudom vele jelezni, hogy honnan a francból kapta a levelet a delikvens? Kicsit idegesítő, hogy a php manualban lévő sem működik. Van erre bármi megoldás?
konkrétan ezt is bemásoltam már (az Example #4 Sending HTML email címszó alatt):
Köszi előre is!
"Egyáltalán működik az smtp, amit használni óhajtasz?"
Működik, csak a headers részbe nem tudom beírni a from-ot. Akkor nem megy.
hát ugyanazt a szervert a te esetedben is meg kell adni, akkor az a baj.
A main SMTP szerver az az a szerver, ami az e-mailt kiküldi. Secondary nem szükséges, az arra jó, ha az első nem megy, akkor a másodikon próbálja.
"Te nem programozol, te csak kókányolsz."
Ezt most konkrétan honnan szűrted le?
Hol próbálod futtatni a php kódot!?
Ha webtárhelyen, akkor az adott tárhely súgója mit mind!?
Van tárhely ahol csak SMTP -vel lehet küldeni, vagy olyan ahol a mail() header -ben megvan kötve minek kel lennie a küldőnek.
Ha esetleg otthonról próbálod, az SMTP szerver bevan -e állítva!?
Egyáltalán a szolgáltató engedélyezi-e a 25 -ös porton történő kommunikációt!?
(Lakossági internetnél a SPAM -elés szűrése érdekében blokkolni szokták)
Ha eddig minden stim, akkor nézzük a kódot.
Ha 1-1 ben másolod csak a to és from címet cseréled akkor működnie kell!
Tehát lehet valami nem stimmel, hiányzik... mail() hívás előtt írasd ki a változókat, és lásd hogy mivel próbálná megívni.
Ja'h és még a tárhelyekhez, jó pár ingyenes webtárhely korlátozza a napi email küldést.
Tehát ha elrontottan próbáltál már vagy 20 -at akkor lehet elérted a napi kvótát.
"Ezt most konkrétan honnan szűrted le?"
Onnan szűrte le, hogy ha fogalmad sincs, mi az az SMTP szerver, vagy hogy hogyan lehetne kideríteni, akkor jó programozó biztosan nem lehetsz. Egyetértek vele.
Itt egy kis teszt
- Szoktál globális változókat használni? Igen - 2p Nem - 0p
- Objektumorientált kódot írsz? Az mi? - 2p Nem - 1p Igen - 0p
- A PHP kódot a HTML kóddal... Együtt lehet használni - 1p Külön kell választani 0p
- A <table> taget használni... Bárhol lehet, designolásra - 1p Csak táblázatos adatokhoz - 0p
- Mi a gond az alábbi kóddal?
mysql_query('SELECT * FROM users WHERE username = ' . $_POST['username']);
Nincs vele semmi baj - 2p Nem az elavult mysql függvény kellene - 1p Hatalmas biztonsági kockázat - 0p
Írd le hány pontod van és megmondom mennyire vagy jó programozó!
Belemegyek a játékba, miért is ne???
- Szoktál globális változókat használni? Igen - 2p Nem - 0p
Pl a SESSION az globális változó, anélkül nem tudom hogy lehetne megoldani egy sima bejelentkezést.
- Objektumorientált kódot írsz? Az mi? - 2p Nem - 1p Igen - 0p
Ha szükség van rá, és ésszerű. Van, mikor egy sima function kevesebb kódot jelent. Például írtam már sql script-et Class-ben. Nem annyira bonyolult, és egy objektumot definiálni utána jóval átláthatóbb, mint leírni ötször ugyanazt az sql lekérdezést.
- A PHP kódot a HTML kóddal... Együtt lehet használni - 1p Külön kell választani 0p
Ez egy érdekes kérdés, például nemrég írtam egy keresés kódot, ami bizonyos kulcsszavakra hív le adatokat adatbázisból. Nyilván meg lehet oldani, hogy ne a teljes html struktúrát kelljen echo-zni, csak a szükséges adatokat, csak le kell zárni a php kódot, és újra meg kell nyitni az adat kiolvasásánál. Mondjuk:
while(akármi) ?>
<li><?php echo row_["sql_adat"] ?></li>
- Mi a gond az alábbi kóddal?
mysql_query('SELECT * FROM users WHERE username = ' . $_POST['username']);
Sose használtam mysql_query-t bár tudom, hogy van ilyen. Először is, már 20-30 adatrekord lehívásakor érdemes inkább paraméteres lekérdezést alkalmazni, mert gyorsabb, másodszor is elrontottad a szintaktikát, harmadszor pedig ez így sql injection veszélyes.
Amúgy a szintaktikailag helyes ez lenne:
mysql_query('SELECT * FROM users WHERE username = '".$_POST['username']."');
Nekem van egy script-em, ami array_keys-zel meghatározza a POST tömbben érkező kulcsokat, a kulcsok szerint definiálok egy reguláris kifejezésekből álló asszociatív tömböt, majd egy function-nel és egy ciklussal automatikusan egyeztetem a post adatokat és a regexp tömb kulcs szerinti reguláris kifejezését, így validálom a bejövő adatokat automatikusan. Így nem kell ezerszer leírnom a preg_match függvényt, a végeredményt pedig a post key-k szerinti asszociációs tömbben tárolom. Ebben az esetben mysqli_real_escape_string-re sincs szükség.
Meg vagy elégedve? :) De gondolom hozzád képest mindenki vérpistike, és a világon csak te tudsz jól kódolni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!