Archyvas PHP

Kaip pridėti forma CAPTCHA į svetainę

Posted in PHP , padarytais ShortLikeAFox apie 30 Geg 2009

Taigi jūs norite įdėti CAPTCHA, AKA visiškai automatizuota visuomenės Tiuringo testas pasakyti kompiuteriai ir Žmogus ne tik, AKA iškraipytas raidės ir numeriai formą internete.

Tai nėra sunku visiems kad jūs žinote šiek tiek PHP. Norėčiau eiti į detales bus paaiškinta, kaip tai padaryti, bet per ne Boutell.com yra juokingai gerai parašyta, lengvai atlikite žingsnis po žingsnio vadovas, paaiškinantis, kaip tai padaryti. Grįžti check it out.

Kaip siųsti masinio pašto Naudojant PHP

Posted in PHP , padarytais ShortLikeAFox dėl rugsėjis 19, 2008

Taigi jūs norite siųsti masinio pašto ar norite sukurti programą, kuri galėtų greitai pakeisti išsiųsti kelis masinius elektroninius laiškus. PHP daro tai lengva. Šiame pavyzdyje aš manau, kad jūs turite elektroninio pašto adresų sąrašas, kurį norite siųsti tam tikrą laišką. Aš taip pat manau, kad jūs laikome šį sąrašą į duomenų bazę, tačiau šis kodas gali būti lengvai pritaikytas naudoti bet kieta elektroninio pašto adresų sąrašas arba sąrašas iš kito šaltinio.

<? Php

/ / Pirmasis prisijungti prie duomenų bazės, kurioje yra elektroninio pašto adreso informaciją.
$ Vartotojas = "Vartotojas";
$ Host = "host";
$ Password = "Slaptažodis";
$ Duomenų bazės = "duomenų bazę";

( "Couldn't connect to server" ); $ Cxn = mysql_connect ($ host, $ vartotojas, $ password) or die ("Negaliu prisijungti prie serverio");
mysql_select_db ($ duomenų bazės);

/ / Užklausos lentelę, kurioje yra elektroninio pašto adresus. Užpildykite savo lentelės pavadinimą čia ...
$ Query = "SELECT * FROM theEmailAddresses";
( mysql_error ($cxn)); $ Result = mysql_query ($ query, $ cxn) or die (mysql_error ($ cxn));
$ NRows = mysql_num_rows ($ result);

/ / Kas siuntėjas bus identifikuoti kaip. Jūs galite įdėti ką norite čia, bet tai tikrai nėra labai etiška vieta elektroninio pašto adresą, kad jums nereikia kontroliuoti čia.
$ Nuo = "Nuo: me@mydomain.com";
/ / Standartinis elektroninio pašto tema
$ Subject = "Kas naujo mydomain.com";
/ / Pranešimas
$ Message = "Sveiki vertinamas draugu

Dabar parduoda pyragaičiai mydomain.com. Būtinai patikrinkite jį!
Pagarbiai,
man ";

/ / Mes jau abejojo, visi el. Dabar reikia tik siųsti elektroniniu paštu
0 ; $i < $nrows; $i ){ for ($ i = 0; $ i <$ nRows; $ i ) (

$ Row = mysql_fetch_assoc ($ result);
ekstraktas ($ row);
/ / Pakeisti $ email su kokia adresai skiltyje pašto vadinamas
$ Iki = "$ email";
/ / Siųsti laišką į kiekvieną duomenų bazę, elektroninio pašto
if (mail ($ prie $ tema, $ message, $ from)) (

/ / Spausdinti išsiųsti pavadinimas laiškų, kurie buvo sėkmingai. Aš naudoju tai tik įsitikinkite, kad programa nebuvo įšaldytos. Teoriškai jų turėtų būti pastovus srautas pavadinimai būtų išspausdintas>

); echo ("$ į <br/>");

)

)




?>

Šiuo kodu tiek pasinaudoja PHP mail () funkcija. Tai labai galinga ir paprasta naudoti funkciją. Atminkite, kad su didele galia ateina didelė atsakomybė. Stenkitės nenaudoti šios funkcijos blogis.

Kaip sužinoti kur yra jūsų lankytojai yra geografiškai Naudojant PHP

Posted in PEAR , php , padarytais ShortLikeAFox dėl rugsėjis 13, 2008

Jei turite svetainę ir nori sužinoti, kur jūsų vartotojai iš geografiškai PHP PEAR tai padaryti. Norėdami įjungti svečių IP į fizinę vietą pirmas dalykas, kurį ketiname reikia padaryti, tai įsitikinkite, kad turite Net_Geo PEAR modulis. Jei neturite Net_Geo PEAR modulių, jūs ketinate turi naudoti PEAR Package Manager ją įsigyti.

Jei jums nereikia galvoti, kad jūs turite prieigą prie PEAR, nes jūsų hosting paketas, patikrinti šį paaiškinimą , kaip įrengti PEAR apie tai, kad neleidžia gauti pagal nutylėjimą. Parašyta GoDaddy bendras sąskaitas proto, bet turi dirbti labiausiai priegloba paketai, kurie nesusiję su kriaušių įsteigti.

Po to, kai Net_Geo paketų įdiegta, ji trunka tik keletą eilučių kodo įsigyti geografiniai duomenys:

<? Php

); require_once ("Neto / Geo.php");
]; $ Ip = $ _SERVER ['REMOTE_ADDR'];
/ / $ Ip = "64.246.30.37";
$ FirstNetGeo = nauji Net_Geo ();
$ Geoduomenų = $ firstNetGeo-> getRecord ($ ip);

?>

($ip); ?> <br/> IP: <? Php echo ($ ip);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Platuma: <? Php echo ($ geoduomenų ["LAT"]);?> <br/>
($geoData[ 'LONG' ]); ?> Ilguma: <? Php echo ($ geoduomenų ['long']);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Šalis: <? Php echo ($ geoduomenų ['ŠALIS']);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Valstybė: <? Php echo ($ geoduomenų ["valstybė"]);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Miestas: <? Php echo ($ geoduomenų ["miestas"]);?> <br/>

Darbe kodas:

IP: 74.125.75.19

Platuma:

Ilguma:

Šalis:

Narės:

Miestas:

Kaip padalinti Vienas paveikslėlį į keletą nuotraukų Naudojant PHP

Posted in funkcijas , PHP , padarytais ShortLikeAFox dėl rugpjūtis 26, 2008

Taigi jūs norite nutraukti vieną didelį vaizdą į kelis mažesnius vaizdų? Jokių problemų. Tai gali atrodyti kaip neaiški problema, bet yra keletas priežasčių, kodėl jūs norėjo tai padaryti. Gal norite sukurti vizualaus stumdomas dėlionė . O gal dirbate unikali WordPress tema . O gal norite sukurti tam tikros formos koliažas. Tai tikrai neturi reikšmės, kodėl norite padalinti vaizdas į mažesnius vaizdas, PHP daro šią užduotį lengva. Toliau yra susijęs tik su jpeg pavyzdyje. Pakeitus funkcijos spręsti su kitų rūšių vaizdai nebus, kad sunku.

<? Php
/ / Ši funkcija bus padalinti vaizdas į eilučių skaičių vienodai dydžio stulpelių ir.
funkcija split_image ($ number_of_rows, $ number_of_cols, $ path_to_image, $ nazwa_pliku) (

/ / $ Number_of_rows = # eilučių norite;
/ / $ Number_of_cols = skaičius stulpeliai norite
/ / $ Path_to_image = aplanko vaizdas yra, kažką panašaus į: / home / content / vartotojo_vardas / html / list / nuotraukos /
/ / $ FILE_NAME = paveikslėlio failo vardas: archery.jpg ir tt

/ / Ardyti kelią pratęsimo
$file_name); $ Info = pathinfo ($ path_to_image. $ Nazwa_pliku);

/ / Įsitikinkite, mes susiduriame su jpeg
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ if ((strtolower ($ info ['pratęsimo']) == "jpg") | | (strtolower ($ info ['pratęsimo']) == "jpeg")) (

/ / Įkelti vaizdą ir gauti vaizdo dydis
); $ Source = imagecreatefromjpeg ("($ path_to_image) ($ FILE_NAME)");
$ Width = imagesx ($ source); / / Ieškoti plotis
$ Height = imagesy ($ source); / / Ieškoti aukštis
$ Segment_width = $ plotis / $ number_of_cols / / Nustatykite segmentų plotis atskirų
$ Segment_height = $ aukštis / $ number_of_rows / / Nustatykite segmentų aukštis atskirų

for ($ col = 0, $ col <$ number_of_cols; $ col + +)
(

($ row = 0; $ row <$ number_of_rows; $ row + +)
(

, $col, $row ); $ Fn = sprintf ("img% 02d_% 02d.jpg", $ col, $ row);
); //I print the image name here, so that the process shows itself as it runs echo ("$ fn") / / aš Spausdinti vaizdą pavadinimą čia, kad procesas rodo save kaip ji veikia
$ Im = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, $ šaltinis, 0, 0, $ col * $ segment_width, $ row * $ segment_height, $ segment_width, $ segment_height, $ segment_width, $ segment_height);
$ Failas = "test.jpg";
/ / Įrašyti vaizdai
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn if (imagejpeg ($ im, "INSERT PASKIRTIES čia", 100)) / / paskirties vieta bus kažkas panašaus į / home / content / C / H / D / images / $ fn

echo ("buvo! <br/>");

)

)

)

)

?>

Kaip įtraukti veikimo PHP kodą į savo WordPress Žinutės

Posted in WordPress , Php pagal ShortLikeAFox apie 17 rugpjūtis 2008

Taigi jūs norite, kad būtų galima naudoti PHP jūsų WordPress dienoraštį žinutes ir puslapių. Tai nėra problema. Tiesiog naudojant <? Php ... ... ..?> Ketina padaryti WordPress piktas, jei įdiegti įskiepiai pirma. Yra keletas įskiepių ten, kad teiginys, kad suteikia tokią galimybę, tačiau vienas, kad aš rasiu veikia geriausiai yra Exec-PHP . Jei norite pradėti naudoti PHP kodo, atlikite šiuos veiksmus:

  1. Parsisiųsti Exec-PHP
  2. Įdiekite ją kaip ir bet kurį įskiepiai (saitą aukščiau ir README failą jums parodysime tai)
  3. Jei šiuo metu naudojate, jums turi išjungti WYSIWYG redaktoriumi. Norėdami tai padaryti, eikite į Vartotojai -> Jūsų profilio ir nuimkite Naudokite vizualių redaktorių rašant langelį
  4. Pradėkite rašyti PHP kodą kaip paprastai: <? Php .... Kodas eina čia?>

Tai viskas yra į jį!

Kaip sukurti ir naudoti Dinamiškai Pavadinta Kintamieji PHP

Posted in PHP , padarytais ShortLikeAFox dėl rugpjūtis 17, 2008

Taigi jūs norite naudoti dinaminį kintamąjį pavadinimų į savo kodą. Jokių problemų. Tarkime, turite 100 kintamųjų pavadintas dog0, dog1, dog2, ...., Dog98, dog99. Kodėl Jūs norite naudoti 100 kintamųjų, kaip tai vietoj masyvo tai ne man, bet nesvarbu, šiame pavyzdyje. Norėdami nustatyti šių kintamųjų greitai linijos galima naudoti taip:

0 ; $i < 100 ; $i ){ for ($ i = 0; $ i <100; $ i ) (

; $ Variablename = "šuns $ i";
$ $ Variablename = $ i; / / daug $ dog1 į 1, $ dog2 2, $ šunų 34-34, ir tt ....

)

Dabar tarkim tu nori gauti prieigą prie visų šių kintamųjų. Galima naudoti taip:

0 ; $i < 100 ; $i ){ for ($ i = 0; $ i <100; $ i ) (

; $ Variablename = "šuns $ i";
echo ("<br/>");
echo ("$ variablename:");
echo ($ $ variablename);

)

Šis ciklas nuotraukas:

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

itp ... visą kelią iki
dog99: 99

Kaip Intergrate ISBN Access interneto puslapius PHP

Posted in PHP , padarytais ShortLikeAFox dėl rugpjūtis 12, 2008

ISBN ar tarptautinis standartinis knygos numeriai yra naudingos tapatybės nustatymo, kuris gali būti naudojama ir siekiant rasti informacija apie atskirų knygas. Jei norite integruoti ISBN paieška "savo interneto programų PHP leidžia Vykdytinas.

Pirmas žingsnis: ISBNdb.com yra sukūrė API, kuri leidžia vartotojams iš viso interneto, galėtų naudotis savo duomenų baze ISBN įrašus. Čia yra jų aprašymas API:

ISBNdb.com 's nuotolinės prieigos taikomųjų programų sąsaja (API) yra skirtos tam, kad kitas tinklapis ir autonominė programos naudoja didžiulis duomenų surinkta ISBNdb.com nuo 2003 metų. Kaip šio raštu, 2005 m. liepos duomenys apima beveik 1.800.000 knygas; beveik 3.000.000 mln Fonoteka; beveik milijonas dalykų, šimtai tūkstančių autorius ir leidėjas įrašus apdoroti iš bibliotekos duomenų, daugiau kaip 10000000 įrašus esamų ir istorinių kainos.

Norėdami naudoti šį API pirmiausia turite užsiregistruoti. Registracija užtrunka pažodžiui sekundžių. Po to, jums reikia sukurti mygtuką. Klavišai leidžia tiesiogiai prieiti prie duomenų bazės ISBN iš savo kodo. ISBNdb.com Tinklalapyje pateikiami steigiant raktai lengva.

Antras žingsnis: Dabar jūs pradėkite rašyti kodą bendrauti su duomenų baze. Už ISBN paieškos užklausa bus atrodyti taip:

Galima būtų įrašyti jūsų prieigos raktas XXXXXX vieta. $ IsbnQuery būtų ISBN numerį Jus dominančią $ isbnData yra XML failas. Norėdami prieiti prie šios duomenų, kurių reikia, kad jūsų kodas nežinote kas tai yra susiję su. Kažkas panašaus tai veiks:

) ; $ XmlData = @ simplexml_load_file ($ isbnData) or die ("niekas failą pakrauta");

Dabar galite prisijungti prie atskirų kintamųjų su skambučiais, panašų į šį:

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

Čia yra pilnas darbo pavyzdys:

<? Php

$ Searchquery = "9780684801223" / / Jūra ISBN Ernest Hemingway's Old Man ir
$ IsbnData = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ Searchquery" / / Nepamirškite pakeisti XXXXXX su savo prieigos klavišo
) ; $ XmlData = @ simplexml_load_file ($ isbnData) or die ("niekas failą pakrauta");
]->Title ; $ Pavadinimas = $ xmlData-> BookList [0] -> BookData [0] -> Pavadinimas;
]->AuthorsText ; $ Autorių = $ xmlData-> BookList [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ Publisher = $ xmlData-> BookList [0] -> BookData [0] -> PublisherText;

); echo ("$ pavadinimas <br/>");
); echo ("$ autorių <br/>");
); echo ("$ leidėjas <br/>");

/ / Šis pavyzdys nuotraukas:
/ / Vyras ir jūroje
/ / Ernest Hemingway
/ / New York: Scribner Minkštas Fiction, 1995.

?>

Kaip patikrinti elektroninio pašto adresą, PHP

Posted in PHP , padarytais ShortLikeAFox apie 5 rugpjūtis 2008

Taigi, jūs turite patvirtinti elektroninio pašto adresą vartotojui? Jokių problemų. Yra keletas priežasčių reikalauti patvirtinimo el aikštelė, ir PHP leidžia lengvai.

Laišką su patvirtinimu gali būti užbaigtas taip šiuos veiksmus:

  1. Klausti dėl kokios nors informacijos jums reikia iš jų (įskaitant jo elektroninio pašto adresą vartotojui)
  2. Įvesties šį bazės Duomenų
  3. Siųsti vartotojui ypatingą patvirtinimo raktas email
  4. "Atrakinti" duomenų bazės duomenų kartą patvirtinimo raktas įrašytas.

Kaip tai padaryti:

<? Php

/ / Pirma, galime prisijungti prie duomenų bazės

$ User_name = "dbUserName";
$ Host = "dbhost";
$ My_password = "dbPassword";
$ Db_name = "dbname";

/ / Prisijungimas prie serverio ir pasirinkite duomenų bazę.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ("$ host", "$ vartotojo_vardas", "$ my_password") or die ("Negaliu prisijungti prie serverio");
) or die ( "cannot select DB" ); mysql_select_db ("$ db_name") or die ("negaliu pasirinkti DB");

/ / Ši eilutė iš esmės klausia, ar vartotojas turi turėti formą rodomas. Skaityti šiek tiek žemyn, jei norite pamatyti, kur kintamieji yra iš

(@ $_GET [ 'first' ] == "no" ) " ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET ['pirmas'] == "ne") & &! (@ $ _GET ['Patvirtinti'] == "yes") (
/ / Kadangi tai yra puslapis pirmąjį rodymo ir ne patvirtinimo kodą, yra įtrauktas turėtume rodyti vartotojas formą užpildyti
/ / Tai yra tik mano vieno argumento (elektroninio pašto adresą vartotojui).
?>

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

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

<? Php

)

/ / Jei forma yra užpildyta, privalome sukurti patvirtinimo kodą, įrašyti patvirtinimo kodą ir vartotojo elektroninio pašto adresą į duomenų bazę ir siųsti elektroninį laišką į elektroninio pašto adresą.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET ['pirmas'] == "ne") (/ / jei forma yra užpildyta ...

/ / Is_valid_email_address yra neteisingas php funkcija. Įdėkite savo elektroninio pašto adresą tikrinimo funkcija čia ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST ['email']))

); echo ("Atsiprašome, elektroninio pašto adresą, yra neteisingas.");

/ / Jei elektroninio pašto adresas yra galiojantis ir saugus ...
else (

]); $ Email = ($ _POST ['email']);
/ / Sukurti patvirtinimo kodą čia. Tokiu būdu aš galiu pasirinkti tai padaryti, tačiau yra be galo daug būdų, kad veiks.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (randas ()));
/ / Viskas daugiau ar mažiau Gerai įvesti į duomenų bazę ir siųsti elektroniniu paštu į vartotojo
$ Query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ('$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ Result = mysql_query ($ query) or die ("Klaida Config 2223);
/ / Siųsti laišką
$ Iki = $ email;
$ Subject = "Jūsų shortlikeafox pavyzdžiui patvirtinimo" / / Nuo
$ Header = "Nuo: shortlikeafox <info@shortlikeafox.com>";
/ / Jūsų žinutė
$ Message = "Jūsų Comfirmation nuorodą! \ R \ n";
$ Message .= "Spauskite šią nuorodą, kad aktyvuoti savo sąskaitą \ r \ n";
$ Message .= "Šis ryšys su galioti, kai aš jaučiuosi kaip valyti nepatvirtintų pranešimų (kas savaitę arba tiek) \ r \ n";
$ Message .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
$ Juodraštis, juodraščiai = mail ($ prie $ tema, $ message, $ header);

); echo ("Jūsų patvirtinimo išsiųstas laiškas!");

)

)
/ / Jei vartotojas nustatėme, kad šis scenarijus iš elektroninio pašto adreso, jo, jį patvirtinti ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET ['Patvirtinti'] == "yes") (
/ / Padaryti confirmCode gana saugus naudoti

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

$ Query = "SELECT * FROM emailConfirmationTable KUR con_code = '$ confirmCode" IR is_confirmed = '0' ";
( "Error 234234" ); $ Result = mysql_query ($ query) or die ("Klaida 234234");
$ NRows = mysql_num_rows ($ result);
1){ if ($ nRows == 1) (
$ Query = "UPDATE emailConfirmationTable SET is_confirmed = '1 'WHERE con_code =' $ confirmCode";
( "Config Error 222231231233 " ); $ Result = mysql_query ($ query) or die ("Klaida konfigūracijos 222231231233);
if ($ result)
); echo ("pašto adresas patvirtintas!");

)
kitas

); echo ("Nepavyko patvirtinti E-mail");

)

?>

Labai svarbu atsiminti, kad patikrintume informacija, kad vartotojas įterpia bet kokia forma. Aš neįtraukė pirmiau funkcijos elektroninio pašto adresą patvirtinimo, bet gera vieta pradėti yra Cal Henderson's e-mail patvirtinimo funkciją rasti čia.

Jei norite pamatyti šio veiksmo scenarijų, tai galite padaryti čia.

Kaip neautomatiniu būdu įterpti Vartotojai grupė į SMF Forumas naudojant PHP

Posted in SMF (Simple machine forumas) , php , padarytais ShortLikeAFox dėl liepa 30, 2008

Šis vadovėlis prisiima esate susipažinę su mano post: Kaip neautomatiniu būdu įterpti vartotoją SMF Forumas naudojant PHP .

Aš neseniai susidūrė su judančių 800 arba tiek, juostų iš duomenų bazės į SMF forumas iššūkis. Aš susiduria su problemomis, kai jis juda, kad aš ne viršelis pirmą kartą po poros:

  1. Grupė pavardės nėra garantijos, būtų saugus, padarytais pobūdžio požymio perkelti į SMF duomenų bazėje. Taigi kai pavadinimas pobūdžio pakeitimus funkcija turėjo būti įdarbinti.
  2. Juostos neturi slaptažodžius. Taigi kai kurie slaptažodis kartos tipas turi būti įdarbintas.

Veiksmus aš apie registruotis visi forume juostose buvo šiek tiek panašus į šį:

Atidaryti Band duomenų bazė

kiekvienam (grupė) (

Sukurti Slaptažodis

Pervardyti Band "saugius" arba pavadinimas

Grab ir surinkti informaciją reikia įrašyti vartotojo

Įdėkite grupei, į smf_members

Siųsti Band su slaptažodis laišką

)

Informacija turėjau gauti iš duomenų bazės juostoje, kuri buvo naudinga įtraukti: bandName, bandEmail ir bandWebsite

Čia yra slaptažodis kartos funkcija aš (blatently paimti iš totallyphp.co.uk ):

funkcija createRandomPassword () (

$ Chars = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((double) microtime () * 1000000);

$ I = 0;

$ Pass = ";



while ($ i <= 7) (

33; $ Num = rand ()% 33;

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

$ Pass = $ raide. $ Tmp;

$ I + +;

)

return $ perduoti;

)

Slaptažodis sukūrė čia yra palyginti silpnos, bet jis buvo pakankamai geras mano tikslais. Bet koks slaptažodį gamybos funkcija veiktų gerai čia. Mane pasirinko šį vieną, nes ji būtų lengvai nariams prisiminti, jei jie pasirinko ne jį pakeisti.

Kaip tai padaryti:

/ / Pirmasis prisijungti prie grupės duomenų bazė
$ Username = "bandUsername";
$ Host = "bandHost";
$ Mypassword = "bandPassword";
$ Db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Negaliu prisijungti prie serverio");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("negaliu pasirinkti DB");

/ / Dabar patraukti visų juostų iš duomenų bazės
$ Query = "SELECT * FROM allBands";
$ Juostų = mysql_query ($ query) or die ("Klaida konfigūracijos 2222b);
$ UserRows = mysql_num_rows ($ juostas);

/ / Dabar leidžia prisijungti prie SMF db
$ Host = "smfhost" / / Host vardas
$ Username = "smfuser / / mySQL Vartotojas
$ Mypassword = "smfpassword" / / mySQL Slaptažodis
$ Db_name = "smfdatabase" / / duomenų bazės pavadinimas

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Negaliu prisijungti prie serverio");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("negaliu pasirinkti DB");

/ / $ Vaild_chars tai bus simbolių masyvas leidžiama vardus. Aš nusprendė leisti tik raidės ir skaičiai. Yra ir kitų ženklų, kurie gali būti naudojami, kad nebūtų padaryta problema, bet ir stiliaus priežasčių aš nusprendžiau eiti tik raidės ir skaičiai
$ Valid_chars = "ABCDEFGHIJKLMNOPQRSTU VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = explode ("", $ valid_chars);

/ / Dabar turime linijos per kiekviena juosta

){ for ($ i = 0; $ i <$ userRows; $ i + +) (

($bands)){ if ($ row = mysql_fetch_assoc ($ juostas)) (

/ / Ištrauka grupės informacija
ekstraktas ($ row);
/ / Sukuriamas juostos slaptažodį
$ RealPassword = createRandomPassword ();
/ / Aš pasirinksiu echo bandname ir slaptažodį kaip mano derinimo ir todėl aš galiu pamatyti, funkcijos, nes ji veikia
echo ("<br/> $ bandName - $ realPassword");
$ NewBand = "";
/ / Kiekvienai pavadinimas raidę juostoje mes pažiūrėkite, jei ji atitinka svarbių savybių nuo $ valid_chars. Tai ji nėra mes ketiname atsikratyti jos ir trumpinti Grupės pavadinimas
($bandName); $j ++ ){ for ($ j = 0, $ j <strlen ($ bandName); $ j + +) (

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

$ NewBand = $ newBand. $ Juostos [$ j];

)
/ / Aš echo naujas vardas dėl tos pačios priežasties aš aidas senųjų vardą ir slaptažodį
echo ("- $ newBand");
/ / Mes naujas grupės pavadinimas .... dabar galime pradėti buliding info mes turime įtraukti į db ...
$ MemberName = $ newBand;
$ Realname = $ newBand / / galiu nustatyti tikrojo vardo ir valstybės pavadinimas tas pats. Juostas galima keisti, jeigu jie nori
$ E-pašto adresą = $ bandEmail;
$ WebsiteUrl = $ bandWebsite / / Kadangi aš juostas tinklapiuose gali taip pat įeiti
$ WebsiteTitle = $ newBand;
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = sha1 (strtolower ($ memberName). $ RealPassword) / / Slaptažodis turi būti šifruojamas

/ / Įsitikinkite, jų nematote narys tuo pačiu pavadinimu SMF duomenų bazėje. Mes nenorime, kad netyčia patekti bet du kartus
$ Query = "SELECT * FROM smf_members KUR memberName = '$ memberName";
("Config Error 2222343242b"); $ Result = mysql_query ($ query) or die ("Klaida konfigūracijos 2222343242b");
$ NRows = mysql_num_rows ($ result);

/ / Jei narys pavadinimas rasti nieko
if ($ nRows> 0) ()

else (

/ / Jei vartotojas nėra jau užsiregistravau į forumą, tai padaryti ir atsiųsti elektroniniu paštu ....
$ Query = "INSERT INTO smf_members (memberName, realname, e-pašto adresą, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ('$ memberName", "$ realname", "$ e-pašto adresą', '$ is_activated", "$ ID_POST_GROUP" , '$ password', '$ websiteUrl "," $ websiteTitle') ";

("Config Error 2232 "); $ Result = mysql_query ($ query) or die ("Klaida Config 2232);

/ / Dabar mes turime išsiųsti juosta pašto
$ Iki = $ e-pašto adresą;
$ Subject = "Jūsų forumo vartotojo vardą ir slaptažodį";

/ / Nuo
$ Header = "Nuo: Me <me@mysite.com>";

/ / Jūsų žinutė
$ Message .= "Jūsų prisijungimo vardas ir slaptažodis yra išvardinti žemiau. Jūs galite pakeisti arba bet kuriuo metu. Jei nenorite dalyvauti forume, tai ne problema. Tiesiog niekada prisijunkite ir jis bus kaip niekas niekada neįvyko. \ r \ n ";
$ Message .= "Vartotojo vardas: $ memberName Slaptažodis: $ realPassword \ r \ n";

/ / Siųsti laišką
$ Juodraštis, juodraščiai = mail ($ prie $ tema, $ message, $ header);
if ($ juodraštis, juodraščiai)

echo ("- TAIP!");
/ / Tai paskutinė dalis mūsų echo. "-TAIP!" bus tik spausdinami, jeigu yra siunčiamas paštu. Taigi visiškai spaudinys linija atrodys maždaug taip:
/ / Adam Strife - 4s6vsxag - AdamStrife - TAIP!

)

)
)

Kaip neautomatiniu būdu įterpti vartotoją SMF Forumas naudojant PHP

Posted in SMF (Simple machine forumas) , php , padarytais ShortLikeAFox dėl liepa 28, 2008

Tai konkretus pavyzdys yra SMF 1.1.5. Aš negaliu garantuoti, kad jis bus suderinamas su bet kokiomis kitomis versija.

Taigi paleidus paprasta mašina Forumas Programinė įranga ir norite rankiniu būdu įvesti vartotojas? Jokių problemų. Žinau šią problemą yra labai konkrečios, bet idėjų paaiškinta čia gali būti pritaikytas kitų rūšių forumų ir kitų duomenų bazių, programinės įrangos paketų, tokių kaip WordPress. Prieš mes į tiksliai, kaip tai padaryti, galime priimti ne kaip paprasta mašina Forumai stebi vartotojų išvaizdą. Į SMF duomenų bazėje yra lentelė vadinama smf_members. Smf_members struktūra atrodo taip:

Laukas Tipas Null

Raktas Numatytasis Papildomai
ID_MEMBER MEDIUMINT (8) unsigned NO PRI NULL auto_increment
memberName varchar (80) NO MUL
dateRegistered int (10) unsigned NO MUL 0
pranešimų MEDIUMINT (8) unsigned NO MUL 0
ID_GROUP smallint (5) unsigned NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) unsigned NO MUL 0
realname tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list tekstas NO
pm_ignore_list tekstas NO
messageLabels tekstas NO
slaptažodis varchar (64) NO
e-pašto adresą tinytext NO
personalText tinytext NO
lytis tinyint (4) unsigned NO 0
gimimo data data NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
vieta tinytext NO
ICQ tinytext NO
AIM varchar (16) NO
Yim varchar (32) NO
MSN tinytext NO
hideEmail tinyint (4) NO 0
showOnline tinyint (4) NO 1
timeFormat varchar (80) NO
parašas tekstas NO
timeOffset plūdė NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) unsigned NO 0
karmaGood smallint (5) unsigned NO 0
usertitle tinytext NO
notifyAnnouncements tinyint (4) NO 1
notifyOnce tinyint (4) NO 1
notifySendBody tinyint (4) NO 0
notifyTypes tinyint (4) NO 2
memberIP tinytext NO
memberIP2 tinytext NO
secretQuestion tinytext NO
secretAnswer varchar (64) NO
ID_THEME tinyint (4) unsigned NO 0
is_activated tinyint (3) unsigned NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) unsigned NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) unsigned NO MUL 0
totalTimeLoggedIn int (10) unsigned NO 0
passwordSalt varchar (5) NO

Sritys, turime atkreipti dėmesį į:

  • memberName - Savarankiškai Explanitory.
  • dateRegistered - nebūtina, bet jei ne užpildyti Registracijos data rodo kaip 31 gruodis 1969. Data yra įrašoma kaip epochos ženklą laiko. Nežinau, kaip apskaičiuoti laiko žymes savo galva? Jokių problemų. Aš naudoju nemokama generatorius rasti čia .
  • realname - turėtų būti įtraukti. Kai aš nesu įsitikinęs aš tiesiog kartoti memberName čia.
  • e-pašto adresą - Savarankiškai Explanitory.
  • is_activated - turi būti nustatytas į 1, nes mes esame rankiniu būdu suaktyvinti narys.
  • ID_POST_GROUP - Aš ne melas. Nežinau, kas tai yra, bet ji visada atrodo, kad būti iki 4. Taigi .... Aš visada jį iki 4. Ne geriausias būdas programos, tačiau tai, ką jūs galite padaryti?
  • slaptažodis - slaptažodis, kurį norite suteikti naują vartotoją. Neįmanoma suprasti, kaip įvesti nežiūrint SMF dokumentus. Tinkamą kodą užšifruoti SMF slaptažodis duomenų bazės atrodo taip:

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

Pirmiau eilutę kodo, $ password yra vartotojo faktinį slaptažodį.

Kaip tai padaryti:

/ / Pirma, prisijunkite prie PPSS duomenų bazė

$ Host = "hostname" / / Host vardas
$ Username = "Vartotojo vardas"; / / mySQL Vartotojas
$ Mypassword = "slaptažodis"; / / mysql slaptažodis
$ Db_name = "Vartotojo vardas"; / / duomenų bazės pavadinimas

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Negaliu prisijungti prie serverio");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("negaliu pasirinkti DB");

$ MemberName = "Geležinė žmogus";
$ Realname = "Tony Stark";
$ E-pašto adresą = "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 INTO smf_members (memberName, realname, e-pašto adresą, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName", "$ realname", "$ e-pašto adresą', '$ is_activated", "$ ID_POST_GROUP", " $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Result = mysql_query ($ query) or die ("Klaida SMF 101,234);

Tai viskas yra į jį!


«Kitas puslapis» Kitas puslapis »