Arkivi për php

Si të Shto një Lini një Formular për një Website

Posted në php nga ShortLikeAFox më 30 Maj 2009

Pra, ju doni të shtoni Lini, AKA Plotësisht të automatizuara Publik Turing test për të të treguar Kompjuter dhe Njerëzve Përveç, AKA squiggly shkronjat dhe numrat në një formë elektronike.

Kjo nuk është e vështirë në të gjithë duke supozuar se e di pak e PHP. Unë do të shkoj në detaje duke shpjeguar se si të bëhet kjo, por mbi te Boutell.com ka një qesharake edhe me shkrim, e lehtë të ndjekin hap pas hapi udhëzues shpjeguar se si të bëhet kjo. Shko check it out.

Si do të dërgojë një Email Mass Përdorimi PHP

Posted në php nga ShortLikeAFox më 19 shtator, 2008

Kështu që ju dëshironi të dërgoni një email në masë ose doni të krijoni një program që mund të shpejt të ndryshohet për të dërguar postë elektronike në masë të shumta. PHP bën këtë lehtë. Në këtë shembull unë do të supozojmë se ju keni një listë e adresave email që dëshironi të dërgoni një email të caktuar për të. Unë gjithashtu do të supozojmë se ju jeni të mbajtur këtë listë në një bazë të dhënash, por ky kod lehtë mund të rregullohet për të përdorur ose një hardcoded e adresave email ose lista nga një burim tjetër.

<? Php

/ / Së pari lidhet me bazën e të dhënave që përmban të dhënat adresë e-mail.
$ user = "Përdoruesi";
$ host = "HOST";
$ password = "Fjalëkalimi";
bazën e të dhënave $ = "database";

( "Couldn't connect to server" ); cxn $ = mysql_connect ($ host, user $, $ password) ose vdes ("Nuk mund të lidheni me serverin");
mysql_select_db ($ bazës së të dhënave);

/ / Query tabelës që përmban adresat e emailit. Plotësoni tabelën e vet emrin tuaj këtu ...
$ query = "SELECT * theEmailAddresses NGA";
( mysql_error ($cxn)); $ rezultati = mysql_query ($ query, $ cxn) ose të vdesin (mysql_error ($ cxn));
nrows $ = mysql_num_rows ($ rezultati);

/ / Kush dërguesit do të identifikohet si. Ju mund të bëjnë çfarë të doni këtu, por me të vërtetë nuk është shumë e etike për të vënë një adresë e-mail që ju nuk e kontrollit këtu.
$ Nga = "From: me@mydomain.com";
/ / Email standarde Një subjekt linjë
subjekt $ = "Çka ka të re në mydomain.com";
/ / Mesazh
$ mesazhi = "Hi mik i çmuar,

Ne tani e shesin cookies në mydomain.com. Të jetë e sigurtë për të kontrolluar atë!
Sinqerisht,
mua ";

/ / Ne kemi queried tashmë të gjithë e-mail adresën. Tani ne duhet vetëm të dërgoni e-mail
0 ; $i < $nrows; $i ){ për ($ i = 0; $ i <$ nrows; $ i ) (

$ Rreshti = mysql_fetch_assoc ($ rezultati);
ekstrakt ($ rreshti);
/ / Replace $ email me çfarëdo kolonën e adresave email quhet
të = "$ $-mail";
/ / Dërgo e-mail për çdo email në bazën e të dhënave
if (mail ($ të, $ subjekt, $ mesazh, nga $)) (

/ / Shtyp emrin e postë elektronike që janë dërguar me sukses. Ta përdor këtë vetëm për të siguruar që programi nuk ka ngrirë. Në teori e tyre duhet të jetë një rrjedhë e qëndrueshme e emrave të shtypet>

); echo ("$ për <br/>");

)

)




?>

Kjo pak i kodit merr përparësi të php mail () funksion. Kjo është një shumë të fuqishme dhe të lehtë për t'u përdorur funksionin. Mos harroni se me pushtet të madh vjen përgjegjësi të madhe. Mundohuni të mos përdorni këtë funksion për të keqen.

Si të thoni ku vizitorët tuaj Gjeografikisht Përdorimi PHP

Posted në dardhë , php nga ShortLikeAFox më 13 shtator, 2008

Nëse ju keni një website dhe dua të them se ku përdoruesit e juaj po vijnë nga PHP gjeografikisht dhe dardhë e bëjnë këtë të mundshme. Për ta IP një mysafir për në një vend fizik gjëja e parë që do të duhet të bëni është që të sigurohemi që ju keni modul dardhë Net_Geo. Nëse ju nuk keni modul dardhë Net_Geo, ju do të keni nevojë të përdorni Paketa dardhë Manager, për të fituar atë.

Nëse ju nuk mendoj se ju keni qasje në Dardhë, sepse i pret paketën tuaj, shikoni këtë shpjegim se si ta instaloni Dardhë në një llogari që nuk lejon qasje by default. Ajo është shkruar me GoDaddy përbashkët llogaritë në mend, por duhet të punojë për më hosting paketa që nuk vijnë me dardhë ngritur.

Pasi ta keni instaluar paketën Net_Geo, ajo merr vetëm disa rreshta të kodit për të marrë të dhëna gjeografike:

<? Php

); require_once ("Net / Geo.php");
]; = $ _SERVER [Ip 'REMOTE_ADDR $'];
/ / $ Ip = "64.246.30.37";
firstNetGeo $ = Net_Geo ri ();
geoData $ = getRecord $ firstNetGeo-> ($ ip);

?>

($ip); ?> <br/> IP: <? Php echo ($ ip);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Latitude: <? Php echo ($ geoData ']' Lat [);?> <br/>
($geoData[ 'LONG' ]); ?> Gjatësi: <? Php echo ($ geoData ']' Long [);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Shteti: <? Php echo ($ geoData ']' VEND [);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Shteti: <? Php echo ($ geoData ']' SHTETËRORE [);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Qyteti: <? Php echo ($ geoData ']' CITY [);?> <br/>

Kodi Në Puna:

IP: 74.125.75.19

Latitude:

Gjatësi:

Shteti:

Shteti:

Qyteti:

Si të Ndani Një imazhin në imazhe të shumta Përdorimi PHP

Posted në funksionet , php nga ShortLikeAFox më 26 gusht, 2008

Kështu që ju dëshironi për të thyer një imazh të mëdha në imazhe të shumta të vogla? Nuk ka problem. Kjo mund të duket si një problem i errët, por ka arsye të shumta që ju do të doni ta bëni këtë. Ndoshta ju doni të krijoni një vizuale mister rrëshqitje . Apo ndoshta ju po perdorni nje WordPress temë unike . Apo ndoshta ju doni të krijoni një kolazh të këtij lloji. Me të vërtetë nuk ka rëndësi pse ju dëshironi të ndarë një imazh në imazh të vogla, PHP bën këtë detyrë e lehtë. Shembulli më poshtë merret vetëm me jpegs. Ndryshimi i funksionit të merret me llojet e tjera të imazheve nuk do të jetë e vështirë.

<? Php
/ / Ky funksion do të ndahet një figurë në një numër të mesme e kolonave dhe rreshtave në mënyrë të barabartë.
split_image funksion ($ number_of_rows, $ number_of_cols, path_to_image $, $ FILE_NAME) (

/ / $ = # Number_of_rows i rreshtave të doni;
/ / $ Number_of_cols = # e cols doni
/ Path_to_image / $ = rrugën për dosjen e imazhit është në, diçka si: / home / content / username / html / lista / Ngarkimet /
/ FILE_NAME / $ = "Emri i file i figurës: archery.jpg, etj

/ / Rruga analizimi për zgjerimin
$file_name); Info = $ pathinfo ($ path_to_image. $ FILE_NAME);

/ / Sigurohuni që kemi të bëjmë me një jpeg
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ nëse ((strtolower ($ info 'extension [']) == 'jpg') | | (strtolower ($ info extension ''] [) == 'jpeg')) (

/ / Imazh të ngarkesës dhe madhësinë e imazhit të marrë
); burim $ = imagecreatefromjpeg ("($ path_to_image) ($ FILE_NAME)");
$ Width = imagesx ($ burim); / / Gjeni width
lartësi $ = imagesy ($ burim); / / Gjeni lartësinë
segment_width $ = $ gjerësi / number_of_cols $; / / Përcaktoni gjerësinë e segmenteve të veçanta
segment_height $ = $ lartësi / number_of_rows $; / / përcaktojë lartësinë e segmenteve të veçanta

për ($ col = 0; $ col <number_of_cols; $ col $ + +)
(

për ($ rreshti = 0; $ rresht <number_of_rows $; rresht $ + +)
(

, $col, $row ); $ Fn = sprintf ("img 02d_%% 02d.jpg", e sjell $ $ rreshti);
); //I print the image name here, so that the process shows itself as it runs echo ("$ fn"); / / kam shkruar emrin imazh këtu, në mënyrë që procesi tregon veten si ajo shkon
$ Im = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, burim $, 0, 0, Kolonel $ * $ segment_width, rreshti $ * $ segment_height, segment_width, segment_height $ $, segment_width, segment_height $ $);
$ File = "test.jpg";
/ / Save images
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn nëse (imagejpeg ($ im, "INSERT destinacion KETU", 100)) / / destinacionit do të jetë diçka si / content home / c / / h / d / images / $ fn

echo ("ka qenë bërë! <br/>");

)

)

)

)

?>

Si do të përfshijë Funksionimin PHP Kodi në WordPress Postime juaj

Posted në WordPress , php nga ShortLikeAFox më 17 gusht, 2008

Kështu që ju duan të jenë në gjendje të përdorin PHP ne postimet tuaj WordPress blog dhe faqet. Kjo është e nuk ka problem. Vetëm duke përdorur <? ... ... Php ..?> Do të bëjë WordPress zemëruar po të instaloni një plugin për të parë. Ka disa plugins atje që pretendojnë të ofrojnë këtë aftësi, por ajo që unë kam gjetur punon mirë është Exec-PHP . Për të filluar duke përdorur kodin PHP, ndiqni këto hapa:

  1. Shkarko Exec-PHP
  2. Instalo se si ju do asnjë plugin (lidhjen më poshtë dhe kartelën README ju do të ecin nëpër këtë)
  3. Nëse jeni duke e përdorur atë, ju duhet të fikur WYSIWYG. Për ta bërë këtë, shkoni në Perdorues -> Profili juaj dhe zgjidhni përdorimin e redaktorit checkbox vizuale kur shkrim
  4. Filloni të shkruani kod PHP si zakonisht do të: <? Php .... Kodi shkon këtu?>

Kjo është e gjitha nuk është për atë!

Si të krijojnë dhe të përdorin variablat dinamike emërohet me PHP

Posted në php nga ShortLikeAFox më 17 gusht, 2008

Pra, ju doni të përdorni emra dinamike ndryshueshme në kodin tuaj. Nuk ka problem. Le të thonë se ju keni 100 variablave quajtur dog0, dog1, dog2, ...., Dog98, dog99. Pse ju do të dëshironi të përdorni 100 variablave si kjo në vend të një rrjet është përtej mua, por kjo nuk ka rëndësi për këtë shembull. Për të vendosur këto ndryshore në një lak të shpejtë ju mund të përdorni të mëposhtme:

0 ; $i < 100 ; $i ++ ){ për ($ i = 0; $ i <100; $ i + +) (

; variableName $ = "qen $ i";
$ $ VariableName = $ i; / / vendos $ dog1 të 1, $ dog2 në 2, $ qen 34-34, etj ....

)

Tani le të thonë se ju keni kërkuar të ketë qasje në të gjitha këto variablave. Ju mund të përdorni të mëposhtme:

0 ; $i < 100 ; $i ++ ){ për ($ i = 0; $ i <100; $ i + +) (

; variableName $ = "qen $ i";
echo ("<br/>");
echo ("$ variableName:");
echo ($ $ variableName);

)

Kjo lak printime:

dog0: 0
dog1: 1
dog2: 2
dog3: 3
dog4: 4
dog5: 5
dog6: 6
dog7: 7
dog8: 8

etj ... te gjitha mënyra për të
dog99: 99

Si të intergrate Qasja ISBN më Webfaqe Përdorimi PHP

Posted në php nga ShortLikeAFox më 12 gusht, 2008

ISBNs ose Standard Ndërkombëtar i Librit Numrat janë identifikues të dobishme që mund të përdoret për të gjetur informacion në lidhje me libra individuale. Nëse doni të integrohen Lookups ISBN në të gjitha kërkesat e tua Web PHP e bën atë që mund të bëhet.

Hapi i parë: ISBNdb.com është një ka krijuar një API që lejon përdoruesit nga rreth web për të hyrë në bazën e të dhënave të tyre e të dhënave ISBN. Këtu është përshkrimin e tyre të API:

ISBNdb.com e largët programimit qasje ndërfaqe e aplikimit (API) është projektuar për të lejuar faqet e internetit të tjera dhe aplikacione të pavarur të përdorur mbledhjen e madhe e të dhënave të mbledhura nga ISBNdb.com që nga viti 2003. Si të këtij shkrimi, në korrik 2005, të dhënat e përfshin rreth 1.800.000 libra, gati 3.000.000 milion dhënat e bibliotekës, afër një milion subjektet, qindra e mijëra të autorit dhe botuesit analizohet nga të dhënat e të dhënave të bibliotekës; më shumë se 10.000.000 dhënat aktuale dhe historike çmimet.

Për të përdorur këtë API ju duhet së pari të regjistroheni. Regjistrimi merr fjalë për fjalë sekonda për të kompletuar. Pas kësaj, ju keni nevojë për të ngritur një kyç. Keys ju lejojnë të hyni direkt nga baza e të dhënave ISBN kodin tuaj. Faqja e internetit ISBNdb.com bën ngritjen çelësat e lehtë.

Hapi i dyte: Tani ju jeni filloni të shkruani kod për të bashkëvepruar me bazën e të dhënave. Një kërkesë për një lookup ISBN do të shihni diçka si kjo:

Ju do të futur aksesin çelësi yt në vend të XXXXXX. $ IsbnQuery do të jetë numri ISBN jeni të interesuar in $ isbnData është një file XML. Për të hyrë në këto të dhëna ju duhet të le kodin tuaj të dinë se çfarë është ajo që kanë të bëjnë me të. Diçka e tillë do të punojnë:

) ; xmlData $ = @ simplexml_load_file ($ isbnData) ose të vdesin ("nuk ka të ngarkuar file");

Tani ju mund të hyni variablave individuale me thirrje të ngjashme me këtë:

]->Title ; $ titulli = $-> BookList xmData [0] -> BookData [0] -> Titulli;

Këtu është një shembull të plotë të punës:

<? Php

searchQuery $ = "9780684801223"; / / ISBN për's Old Man Ernest Hemingway dhe Deti
= IsbnData "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ searchQuery $"; / / Mos harroni të zëvendësojë XXXXXX me qasje të vet kryesore tuaj
) ; xmlData $ = @ simplexml_load_file ($ isbnData) ose të vdesin ("nuk ka të ngarkuar file");
]->Title ; $ titulli = $-> BookList xmlData [0] -> BookData [0] -> Titulli;
]->AuthorsText ; Autorët $ = $-> BookList xmlData [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; botues $ = $-> BookList xmlData [0] -> BookData [0] -> PublisherText;

); echo ("$ <br/> titullin");
); echo ("$ Autorët <br/>");
); echo ("$ botuesit <br/>");

/ / Ky shembull printime:
/ / Plaku dhe deti
/ / Hemingway Ernest
/ / New York: paperback Scribner fiction, 1995.

?>

Si të konfirmojë një Email Address Përdorimi PHP

Posted në php nga ShortLikeAFox më 5 gusht, 2008

Kështu që ju duhet konfirmimin e adresës një përdorues të e-mailit? Nuk ka problem. Ka shumë arsye për të kërkuar konfirmimin e-mail, dhe PHP e bën të thjeshtë.

konfirmimi Email mund të përfundojë është këto hapa:

  1. Prompt përdorues për çfarëdo informata ju duhet prej tyre (duke përfshirë adresën e-mail)
  2. Të dhëna këto të dhëna në një bazë të dhënash
  3. Dërgo një email përdoruesit me një vërtetim kyç të veçantë
  4. "Hape" e të dhënave në bazën e të dhënave dikur kyç konfirmim është futur.

Si të bëhet kjo:

<? Php

/ / Së pari, le të lidhur në bazën e të dhënave

user_name $ = "dbUserName";
$ host = "dbHost";
my_password $ = "dbPassword";
db_name $ = "dbName";

/ / Lidhja me serverin e bazës së të dhënave zgjidhni.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ("host" $, "$ user_name", "$ my_password") ose të vdesin ("nuk mund të lidheni me serverin");
) or die ( "cannot select DB" ); mysql_select_db ("$ db_name") ose të vdesin ("nuk mund të zgjidhni DB");

/ / Line e mëposhtme në thelb pyet nëse përdoruesi duhet të ketë formën e shfaqur. Lexoni pak poshtë, nëse ju doni të shihni se ku e variablave të vijë nga

(@ $_GET [ 'first' ] == "no" ) " ! (@ $_GET [ 'confirm' ] == "yes" ){ në qoftë se (! (@ $ parë '] [' _GET == "jo") & &! (@ $ _GET ['konfirmuar'] == "po") (
/ / Pasi që kjo është e para ekranit faqe dhe nuk ka kodin e konfirmimit është i përfshirë ne duhet të shfaqin formën për përdoruesin të plotësoni
/ / Ky formular merr vetëm një argument (user's e-mail adresën).
?>

method= "post" action= "index.php?first=no" > <form name= "emailConfirmation" method= "post" action= "index.php?first=no">

align="center"> <table
<tr>
<td>
type= "text" id= "email" size= "30" /> Email: <input name= "email" type= "text" id= "email" size= "30" />
</ Td>
</ Tr>
<tr>
align="center"> <td
name= "Submit" value= "Submit" /> <input type= "submit" name= "Submit" value= "Submit" />
</ Td>
</ Tr>
</ Table>
</ Form>

<? Php

)

/ / Nëse formë ka qenë e mbushur jashtë, ne kemi nevojë për të krijuar një kod konfirmim, futni kodin e konfirmimit dhe email përdorues në një bazë të dhënash, dhe dërgoni një email në adresën e-mail.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif ($ @ parë '] [' _GET == "jo") (/ / nese formë ka qenë e mbushur nga ...

/ / Is_valid_email_address nuk është një php funksion të vlefshme. Fut email adresën tuaj duke kontrolluar funksion këtu ...
is_valid_email_address( $_POST [ 'email' ])) në qoftë se (! is_valid_email_address ($ ['email _POST']))

); echo ("Na vjen keq! Adresa email që keni futur nuk është i vlefshëm.");

/ / Nëse adresë e-mail duket e vlefshme dhe të sigurt ...
tjetër (

]); email = $ ($ ['email _POST']);
/ / Gjenerojë një kod konfirmim këtu. Kjo është mënyra e kam zgjedhur për të bërë atë, por ka mënyra të panumërta që do të punojnë.
( rand ())); CONFIRMATION_CODE $ = MD5 (uniqid (())); rant
/ / Çdo gjë është më shumë ose më pak në rregull për të hyrë në bazën e të dhënave dhe pastaj e dërgoni një email të përdoruesit
Query = "INSERT NË emailConfirmationTable (user_email, con_code) VLERAT ('$-mail', '$ CONFIRMATION_CODE $')";
("Config Error 2223 "); $ rezultati = mysql_query ($ query) ose të vdesin ("Config Error 2223");
/ / Dërgo e-mail
$ = $ Email-it për të;
subjekt $ = "shortlikeafox shembull juaj për konfirmim"; / / Nga
$ header = "From: <info@shortlikeafox.com> shortlikeafox";
/ / Mesazhi juaj
$ mesazhi = "Comfirmation lidhjen e juaj! r \ \ n";
$ mesazhi .= "Kliko në këtë link të aktivizoni llogarinë tuaj \ r \ n";
$ mesazhi .= "Kjo lidhje me përfundojë sa herë që ndjehem si pastrim nga email pakonfirmuara (çdo javë apo më shumë), \ \ r n";
$ mesazhi .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ \ CONFIRMATION_CODE r \ n";
Mesazh i dërguar mail = $ ($ të, $ subjekt, $ mesazh, $ header);

); echo ("ka Konfirmimi Email juaj është dërguar!");

)

)
/ / Nëse shfrytëzuesi gjetur këtë skenar nga një lidhje në email e tij, të konfirmojë atë ....
[ 'confirm' ] == "yes" ){ elseif ($ _GET @ ['konfirmuar'] == "po") (
/ / Bëni confirmCode relativisht të sigurt për t'u përdorur

[ 'confirmCode' ]); = ConfirmCode mysql_real_escape_string $ (@ $ ['confirmCode _GET']);

$ query = "SELECT * KU con_code emailConfirmationTable NGA '$ confirmCode =' DHE is_confirmed = '0 '";
( "Error 234234" ); $ rezultati = mysql_query ($ query) ose të vdesin ("Gabim 234234");
nrows $ = mysql_num_rows ($ rezultati);
1){ if ($ nrows == 1) (
$ query = "emailConfirmationTable SET UPDATE = '1 'KU con_code is_confirmed $ confirmCode' '" =;
( "Config Error 222231231233 " ); $ rezultati = mysql_query ($ query) ose të vdesin ("Config Error 222231231233");
në qoftë se ($ rezultati)
); echo ("EMAIL konfirmuar!");

)
tjetër

); echo ("Nuk mund të konfirmojë Email");

)

?>

Është shumë e rëndësishme të kujtoni për të vërtetuar të dhënat që e fut përdorues në çdo formë. Unë nuk përfshijë një funksion për vlefshmërinë e-mail adresën e mësipërme, por një vend i mirë për të filluar është Henderson's e-mail validation Cal funksion gjendet këtu.

Nëse dëshironi të shikoni këtë dorëshkrim në veprim, ju mund ta bëni këtë këtu.

Si të manualisht Fut një grup të përdoruesve në një forum SMF Përdorimi PHP

Posted në SMF (Simple Machine Forum) , php nga ShortLikeAFox më 30 korrik, 2008

Ky tutorial merr jeni të njohur me postin tim: Si të manualisht Fut një Into User një forum SMF Përdorimi i PHP .

Kohët e fundit kam përballur me sfidën e lëviz 800 apo më shumë grupe nga një bazë të dhënash në një forum të SMF. I përballur me disa probleme, kur bën veprim që nuk e kam mbuluar në mesazhin e parë:

  1. Emrat e grupit nuk ishin të garantuara për të qenë të sigurt për një karakter me karakter të hyni në bazën e të dhënave SMF. Pra, një lloj i emrit modifikimit funksionit duhej të punësuar.
  2. Grupe nuk kanë passwords. Pra, disa lloj të gjenerimit fjalëkalimin duhet të jenë të punësuar.

Hapat e unë shkova për të regjistruar të gjitha grupet në forum shkoi pak si ky:

Hap Database Band

për çdo (Band) (

Generate Password

Riemërtoj Band me "Emri i sigurt"

Kap dhe të gjenerojë dhënat e nevojshme për të futur përdorues

Fut në smf_members Band

Dërgo Band një email me fjalëkalimin

)

Informacione kam pasur në dispozicion nga databaza grupi që ishte e dobishme përfshirë: bandName, bandEmail, dhe bandWebsite

Këtu është brezi i fjalëkalimin funksion I përdorur (marrë blatently nga totallyphp.co.uk ):

funksion createRandomPassword () (

$ chars = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((dyfishtë) microtime () * 1000000);

$ I = 0;

$ Kalojë = ";



ndërsa ($ i <= 7) (

33; $ Num = rand ()% 33;

$ Tmp = substr ($ chars, $ num, 1);

$ = $ Kalojë të kalojë. $ Tmp;

$ I + +;

)

kthim $ kalojë;

)

Fjalëkalimi krijuar këtu është relativisht i dobët, por kjo ishte mjaft e mirë për qëllime tim. Çdo brez fjalëkalimin funksion do të punojnë gjobë këtu. Unë zgjodha këtë sepse kjo do të jetë e lehtë për anëtarët për të kujtuar në qoftë se ata nuk e zgjodhi për të ndryshuar atë.

Si të bëhet kjo:

/ / Së pari lidhet me bazën e të dhënave band
$ username = "bandUsername";
$ host = "bandHost";
mypassword $ = "bandPassword";
db_name $ = "bandDatabase";

("cannot connect to server"); mysql_connect ("host" $, "$ username", "$ mypassword") ose të vdesin ("nuk mund të lidheni me serverin");
("cannot select DB"); mysql_select_db ("$ db_name") ose të vdesin ("nuk mund të zgjidhni DB");

/ / Tani kap të gjitha grupet nga baza e të dhënave
$ query = "SELECT allBands NGA *";
mysql_query bende $ = ($ query) ose të vdesin ("Config Error 2222b");
$ UserRows = mysql_num_rows ($ shirita);

/ / Tani lejon të lidheni me SMF DB
$ host = "smfhost"; / / Emri i Host
$ username = "smfuser; / / username MySQL
mypassword $ = "smfpassword"; / / MySQL password
db_name $ = "smfdatabase"; / / emri i të Dhënave

("cannot connect to server"); mysql_connect ("host" $, "$ username", "$ mypassword") ose të vdesin ("nuk mund të lidheni me serverin");
("cannot select DB"); mysql_select_db ("$ db_name") ose të vdesin ("nuk mund të zgjidhni DB");

/ / $ Vaild_chars do të jetë grup të karaktereve të lejuara për të përdoruesve. I vendosur për të lejuar vetëm shkronja dhe numra. Ka karaktere të tjera që mund të përdoren se nuk do të shkaktonte një problem, por për arsye stili kam vendosur të shkoj me vetëm shkronja dhe numra
valid_chars $ = "vwxyz abcdefghijklmnopqrstu 0 1 2 3 4 5 6 7 8 9";
valid_chars $ = shpërthejnë ("", $ valid_chars);

/ / Tani ne kemi nevojë për lak nëpërmjet çdo grupi

){ për ($ i = 0; $ i <$ userRows; $ i + +) (

($bands)){ if ($ rreshti = mysql_fetch_assoc ($ grupe)) (

/ / Hap grupi informacion
ekstrakt ($ rreshti);
/ / Krijo një fjalëkalim për të grupit
realPassword createRandomPassword $ = ();
/ / Unë zgjedh për të jehonë bandname dhe fjalëkalimin si pjesë e debugging tim dhe kështu unë mund të shoh të funksionojë si funksionon
echo ("<br/> bandName - realPassword $ $");
$ NewBand = "";
/ / Për çdo letër në emër të grupit ne do të shikojmë për të parë nëse ajo ndeshje një simbol i vlefshëm nga $ valid_chars. Ajo nuk ka ne do të të shpëtoj prej tij dhe të shkurtoj emrin e grupit
($bandName); $j ++ ){ për ($ j = 0; $ j <strlen ($ bandName); $ j + +) (

($band[$j])); $ temp = str_replace ($ valid_chars, "X", strtolower ($ band [$ j]));
if ($ temp == "X")

grupi newBand newBand $ = $. $ [$ j];

)
/ / Unë jehonë emër të ri për të njëjtën arsye unë jehonë emrin e vjetër dhe fjalëkalimin
echo ("- $ newBand");
/ / Ne kemi Band emrin e ri .... tani le të fillojë buliding info ne kemi nevojë për të futur në db ...
memberName $ = $ newBand;
realname $ = $ newBand; / / kam vendosur emrin e vërtetë dhe emri i anëtarit të njëjtën gjë. Grupe mund ta ndryshoni atë, nëse dëshirojnë
emailAddress $ = $ bandEmail;
websiteUrl $ = $ bandWebsite; / / Që kur kam banda 'faqet e internetit mund edhe të hyjnë në to
websiteTitle $ = $ newBand;
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ password = sha1 (strtolower ($ memberName). realPassword $), / / Fjalekalimi duhet të jetë i

/ / Sigurohuni isn'ta anëtare e tyre me të njëjtin emër në bazën e të dhënave SMF. Ne nuk duam që të hyjë dikush rastësisht dy herë
$ query = "SELECT * smf_members NGA KU memberName" memberName = '$';
("Config Error 2222343242b"); $ rezultati = mysql_query ($ query) ose të vdesin ("Config Error 2222343242b");
nrows $ = mysql_num_rows ($ rezultati);

/ / Nëse emri anëtari është gjetur të bëjë asgjë
if ($ nrows> 0) ()

tjetër (

/ / Nëse shfrytëzuesi nuk është nënshkruar tashmë për të forumeve, një gjë të tillë dhe për të dërguar një email ....
$ query = "INSERT NË smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VLERAT ('$ memberName', '$ realname', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP' , '$ fjalëkalimin', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ rezultati = mysql_query ($ query) ose të vdesin ("Config Error 2232");

/ / Tani ne kemi nevojë për të dërguar një email të grupit
$ = $ EmailAddress për të;
subjekt $ = "Emri juaj forum dhe fjalë-kalimit";

/ / Nga
$ header = "From: Mua <me@mysite.com>";

/ / Mesazhi juaj
$ mesazhi .= "Your login dhe password janë të shënuara më poshtë. Ju mund t'i ndryshoni ose në çdo kohë. Nëse ju nuk duan të marrin pjesë në forumet tona, se ka problem. Vetëm nuk hyni dhe ajo do të jetë si asgjë nuk ka ndodhur ndonjëherë. \ r \ n ";
n Fjalëkalimi mesazh $ .= "Përdoruesi: $ memberName: $ realPassword \ r \";

/ / Dërgoni email
Mesazh i dërguar mail = $ ($ të, $ subjekt, $ mesazh, $ header);
në qoftë se ($ mesazh i dërguar)

echo ("- PO!");
/ / Kjo është pjesa e fundit e ynë jehonë. "PO!" do të jenë të shtypura në qoftë se një e-mail është dërguar. Pra, një kopje linjë të plotë do të shihni diçka si kjo:
/ / Grindjet Adam - 4s6vsxag - AdamStrife - PO!

)

)
)

Si të manualisht Fut një User në një forum SMF Përdorimi PHP

Posted në SMF (Simple Machine Forum) , php nga ShortLikeAFox më 28 korrik, 2008

Ky shembull i veçantë është për SMF 1.1.5. Unë nuk mund të garantojë se do të punojë me ndonjë version tjetër.

Kështu që ju drejtuar Simple Machine Forum Software dhe duan të dorë të hyrë në një përdorues? Nuk ka problem. Unë e di këtë problem duket shumë specifike, por idetë shpjegoi këtu mund të përshtatet për lloje të tjera të forumeve dhe bazës së të dhënave të tjera të paketave software shtyrë të tilla si Wordpress. Para se të marrim në saktësi se si ta bëni këtë, le të marrin një sy se si Simple Machine Forum mban gjurmët e përdoruesit. Në bazën e të dhënave SMF ka një tabelë të quajtur smf_members. Smf_members Struktura duket si ky:

Fushë Lloj I pavlefshëm

Kyç Default Shtesë
ID_MEMBER mediumint (8) unsigned JO PRI NULL auto_increment
memberName VARCHAR (80) JO Mul
dateRegistered int (10) unsigned JO Mul 0
Postimet mediumint (8) unsigned JO Mul 0
ID_GROUP smallint (5) unsigned JO Mul 0
lngfile tinytext JO Mul
lastLogin int (10) unsigned JO Mul 0
realname tinytext JO
instantMessages smallint (5) JO 0
unreadMessages smallint (5) JO 0
buddy_list tekst JO
pm_ignore_list tekst JO
messageLabels tekst JO
passwd VARCHAR (64) JO
emailAddress tinytext JO
personalText tinytext JO
gjini tinyint (4) unsigned JO 0
Ditëlindja data JO Mul 0001-01-01
websiteTitle tinytext JO
websiteUrl tinytext JO
vend tinytext JO
ICQ tinytext JO
AIM VARCHAR (16) JO
YIM VARCHAR (32) JO
MSN tinytext JO
hideEmail tinyint (4) JO 0
showOnline tinyint (4) JO 1
timeFormat VARCHAR (80) JO
nënshkrim tekst JO
timeOffset nxjerr në shitje JO 0
avatar tinytext JO
pm_email_notify tinyint (4) JO 0
karmaBad smallint (5) unsigned JO 0
karmaGood smallint (5) unsigned JO 0
usertitle tinytext JO
notifyAnnouncements tinyint (4) JO 1
notifyOnce tinyint (4) JO 1
notifySendBody tinyint (4) JO 0
notifyTypes tinyint (4) JO 2
memberIP tinytext JO
memberIP2 tinytext JO
secretQuestion tinytext JO
secretAnswer VARCHAR (64) JO
ID_THEME tinyint (4) unsigned JO 0
is_activated tinyint (3) unsigned JO 1
validation_code VARCHAR (10) JO
ID_MSG_LAST_VISIT int (10) unsigned JO 0
additionalGroups tinytext JO
smileySet VARCHAR (48) JO
ID_POST_GROUP smallint (5) unsigned JO Mul 0
totalTimeLoggedIn int (10) unsigned JO 0
passwordSalt VARCHAR (5) JO

Fushat e ne duhet t'i kushtojnë vëmendje të:

  • memberName - Explanitory Vetë.
  • dateRegistered - A nuk është e nevojshme, por në qoftë se nuk plotësohet nga data e regjistruara tregon si 31 dhjetor 1969. Data e ruhet si një Ndërmjetës epoke. A nuk e di se si të llogaritur timestamps në kokën tuaj? Nuk ka problem. I use gjenerator pa gjetur këtu .
  • realname - duhet të shtohet. Kur unë nuk jam i sigurt se unë vetëm e përsëris memberName këtu.
  • emailAddress - Explanitory Vetë.
  • is_activated - Duhet të jetë vendosur në 1 sepse jemi me dorë aktivizimin një anëtar.
  • ID_POST_GROUP - Unë nuk do të gënjeshtër. Unë nuk jam i sigurt se çfarë është kjo, por ajo gjithmonë duket të jetë e vendosur për të 4. Pra .... Unë gjithmonë e vendosur atë në 4. Nuk është mënyra më e mirë për të programit, por çfarë mund të bëni?
  • passwd - fjalëkalimin që dëshiron të japë përdorues të ri. Është e pamundur të kuptoj se si të hyjnë pa shikuar në dokumentacionin SMF. Kodi i duhur për të encrypt SMF një fjalëkalim për bazën e të dhënave duket si ky:

($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ Password)

Në linjë mësipërme të kodit, fjalekalimin $ është fjalëkalimin aktual të përdoruesit.

Si të bëhet kjo:

/ / Së pari, lidhur me bazën e të dhënave SMF

$ host = "hostname"; / / Emri i Host
$ username = "username"; / / username MySQL
mypassword $ = "Fjalëkalimi"; / / MySQL password
db_name $ = "username"; / / emri i të Dhënave

("cannot connect to server"); mysql_connect ("host" $, "$ username", "$ mypassword") ose të vdesin ("nuk mund të lidheni me serverin");
("cannot select DB"); mysql_select_db ("$ db_name") ose të vdesin ("nuk mund të zgjidhni DB");

memberName $ = "Ironman";
realname $ = "Toni i ngurtë";
emailAddress $ = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;

$ password = "Tony1234";

($memberName).$password); $ password = sha1 (strtolower ($ memberName). $ password);

$ DateRegistered = 1216951200; / / 2008/07/25 02:00

$ query = "INSERT NË smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VLERAT ('$ memberName', '$ realname', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' Fjalëkalimi $ ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ rezultati = mysql_query ($ query) ose të vdesin ("Gabim SMF 101,234");

Kjo është e gjitha nuk është për atë!


«Previous entries Faqja tjeter» Faqja Tjeter »