Arkiv for php

Sådan tilføjes en formular CAPTCHA til en hjemmeside

Posted in php ved ShortLikeAFox den 30 maj 2009

Så du vil tilføje CAPTCHA, AKA helt automatisk Public Turing test til at fortælle Computere og Mennesker Apart, AKA skæve bogstaver og tal til en web form.

Det er ikke svært overhovedet forudsat du kender en lille smule af PHP. Jeg vil gå i detaljer forklarer, hvordan det skal gøres, men over på Boutell.com der er en latterlig velskrevet, let at følge trin-for-trin guide forklarer hvordan det skal gøres. Gå tjekke det ud.

Hvordan at sende en masse e-mail med PHP

Posted in php ved ShortLikeAFox den 19 september 2008

Så du vil sende en masse e-mail eller du vil oprette et program, der hurtigt kan ændres til at sende flere masse e-mails. PHP gør det let. I dette eksempel vil jeg antage, at du har en liste af email-adresser, du vil sende en bestemt e-mail til. Jeg vil også antage, at du holder denne liste i en database, men denne kode kan let justeres til at bruge enten en hardcodede e-mail-adresse liste eller listen fra en anden kilde.

<? Php

/ / First oprette forbindelse til den database, der indeholder e-mail adresse.
$ User = "Bruger";
$ Host = "host";
$ Password = "PASSWORD";
$ Database = "database";

( "Couldn't connect to server" ); $ Cxn = mysql_connect ($ host, $ user, $ password) or die ("Kunne ikke forbinde til server");
mysql_select_db ($ database);

/ / Query tabellen, indeholder e-mail-adresser. Udfyld dit eget tabelnavn her ...
$ Query = "SELECT * FROM theEmailAddresses";
( mysql_error ($cxn)); $ Result = mysql_query ($ query, $ cxn) or die (mysql_error ($ cxn));
$ Nrows = mysql_num_rows ($ result);

/ / Hvem afsenderen vil blive identificeret som. Du kan lægge hvad du vil her, men det er virkelig ikke alt for etisk at placere en e-mail-adresse, du ikke har kontrol her.
$ Fra = "From: me@mydomain.com";
/ / En standard e-mail emnelinjen
$ Subject = "Hvad er nyt på mydomain.com";
/ / Meddelelsen
$ Besked = "Hej værdsat ven,

Vi sælger nu cookies på mydomain.com. Sørg for at tjekke det ud!
Med venlig hilsen
mig ";

/ / Vi har allerede spurgt alle de e-mail-adresse. Nu skal vi bare nødt til at sende email
0 ; $i < $nrows; $i ++ ){ for ($ i = 0; $ i <$ nrows; $ i + +) (

$ Row = mysql_fetch_assoc ($ result);
ekstrakt ($ row);
/ / Erstat $ e-mail med uanset kolonne af e-mail-adresser kaldes
$ Til = "$ email";
/ / Send email til hver e-mail i databasen
if (mail ($ til, $ emne, $ besked, $ fra)) (

/ / Print navnet på e-mails, der blev sendt. Jeg bruger dette blot for at sikre, at programmet ikke er frosset til is. I teorien deres bør være en konstant strøm af navne er trykt>

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

)

)




?>

Dette stykke kode benytter sig af php mail () funktionen. Dette er en meget kraftfuld og nem at bruge funktionen. Husk, at med stor magt kommer stort ansvar. Prøv ikke at bruge denne funktion til det onde.

Hvordan kan man se hvor dine besøgende Geografisk Brug PHP

Posted in PEAR , php ved ShortLikeAFox den 13 September 2008

Hvis du har en hjemmeside og ønsker at fortælle, hvor dine brugere kommer fra geografisk PHP og PEAR gør dette muligt. Sådan slår du en gæst IP i en fysisk placering den første ting du vil få brug for at gøre, er at sikre, at du har Net_Geo PEAR modul. Hvis du ikke har Net_Geo PEAR modul, er du nødt til at bruge PEAR Package Manager til at erhverve den.

Hvis du ikke mener, at du har adgang til PEAR på grund af din hosting pakke, så tjek denne forklaring på, hvordan du installerer PEAR på en konto, som ikke tillader adgang som standard. Den er skrevet med GoDaddy delte konti i tankerne, men bør arbejde for de fleste hosting pakker, som ikke kommer med PEAR oprettet.

Når du har Net_Geo installeret pakke, det tager kun et par linjer kode til at erhverve geografiske data:

<? Php

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

?>

($ip); ?> <br/> IP: <? Php echo ($ ip);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Latitude: <? Php echo ($ Geodata ['LAT']);?> <br/>
($geoData[ 'LONG' ]); ?> Længdegrad: <? Php echo ($ Geodata ['lang']);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Land: <? Php echo ($ Geodata ['LAND']);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Stat: <? Php echo ($ Geodata [»stat«]);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> By: <? Php echo ($ Geodata ['CITY']);?> <br/>

Kodeksen På arbejde:

IP: 72.14.192.65

Latitude:

Længdegrad:

Land:

Stat:

City:

Sådan Divide Et billede i flere billeder ved hjælp af PHP

Posted in funktioner , php ved ShortLikeAFox på 26 august 2008

Så du ønsker at bryde et stort billede i flere mindre billeder? Intet problem. Dette kan virke som en obskure problem, men der er flere grunde du ønsker at gøre dette. Måske du vil oprette en visuel glidende puslespil . Eller måske du kører en enestående WordPress tema . Eller måske du vil oprette en collage af en slags. Det er virkelig betyder ikke noget, hvorfor du ønsker at opdele et billede i mindre billede, PHP gør denne opgave nem. Nedenstående eksempel omhandler kun JPEG. Ændring af funktion for at beskæftige sig med andre typer af billeder ville ikke være så svært.

<? Php
/ / Denne funktion vil opdele et billede i et antal lige store kolonner og rækker.
funktion split_image ($ number_of_rows, $ number_of_cols, $ path_to_image, $ filnavn) (

/ / $ Number_of_rows = # af rækker, du ønsker;
/ / $ Number_of_cols = # af koller du vil
/ / $ Path_to_image = stien til den mappe billedet er i, noget i retning af: / home / content / brugernavn / html / list / uploads /
/ / $ Filnavn = Filnavnet på billedet: archery.jpg osv.

/ / Parse sti til udvidelse
$file_name); $ Info = pathinfo ($ path_to_image. $ Filnavn);

/ / Sikrer at vi er tale om en jpeg
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ if ((strtolower ($ info ['udvidelse']) == 'jpg') | | (strtolower ($ info ['udvidelse']) == 'jpeg')) (

/ / Load billedet og få billedstørrelse
); $ Source = imagecreatefromjpeg ("($ path_to_image) ($ filnavn)");
$ Bredde = imagesx ($ kilden), / / Find den bredde
$ Height = imagesy ($ kilden), / / Find højden
$ Segment_width = $ bredde / $ number_of_cols / / Bestem bredden af de enkelte segmenter
$ Segment_height = $ højde / $ number_of_rows / / Bestem højden af de enkelte segmenter

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

for ($ 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") / / I udskrive billedet navn her, så processen viser sig som den kører
$ Im = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, $ source, 0, 0, $ col * $ segment_width, $ row * $ segment_height, $ segment_width, $ segment_height, $ segment_width, $ segment_height);
$ File = "test.jpg";
/ / Gem billeder
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn if (imagejpeg ($ im, "INSERT DESTINATION HER", 100)) / / Destinationen vil være noget lignende / home / content / c / h / d / images / $ fn

echo ("Har været lavet! <br/>");

)

)

)

)

?>

Sådan Medtag funktionsmåde PHP kode i din WordPress Indlæg

Posted in WordPress , php ved ShortLikeAFox på 17 august 2008

Så du ønsker at kunne bruge PHP i din WordPress blog indlæg og sider. Det er ikke noget problem. Bare ved at bruge <? Php ... ... ..?> Vil gøre WordPress vred, medmindre du installerer et plugin først. Der er et par plugins derude, som hævder at tilbyde denne mulighed, men den ene, som jeg har fundet virker det bedste er Exec-PHP . At begynde at bruge PHP kode ved at følge disse trin:

  1. Download Exec-PHP
  2. Installer det, som du ville enhver plugin (på linket ovenfor og readme fil vil lede dig gennem denne)
  3. Hvis du i øjeblikket bruger den, skal du slukke for WYSIWYG editor. For at gøre dette, skal du gå til Brugere -> Din profil og fjern markeringen i Brug visuelle editor, når du skriver afkrydsningsfeltet
  4. Begynd at skrive php kode, som du normalt ville: <? Php .... Kode går her?>

Det er alt der er til det!

Sådan oprettes og bruges dynamisk Navngivet Variabler med PHP

Posted in php ved ShortLikeAFox på 17 august, 2008

Så du vil bruge dynamiske variabelnavne i din kode. Intet problem. Lad os sige du har 100 variabler navngivne dog0, dog1, dog2, ...., Dog98, dog99. Hvorfor du ønsker at bruge 100 variabler som dette i stedet for en array er mig en gåde, men det gør ikke noget for dette eksempel. Du kan indstille disse variabler i en hurtig løkke kan du bruge følgende:

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

; $ VariabelNavn = "hund $ i";
$ $ VariabelNavn = $ i; / / sæt $ dog1 til 1, $ dog2 til 2, $ hund 34 til 34, etc ....

)

Lad os nu sige, at du ville have adgang til alle disse variabler. Du kan bruge følgende:

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

; $ VariabelNavn = "hund $ i";
echo ("<br/>");
echo ("$ variabelNavn:");
echo ($ $ variabelNavn);

)

Dette loop billeder:

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

etc ... hele vejen til
dog99: 99

Sådan intergrate ISBN Access på dine websider Brug PHP

Posted in php ved ShortLikeAFox på August 12, 2008

ISBN-numre eller International Standard Book Numbers er nyttige identifikation, som kan bruges til at finde oplysninger om de enkelte bøger. Hvis du ønsker at integrere ISBN-opslag i din web-applikationer PHP gør det doable.

Trin et: ISBNdb.com er en har skabt en API, der tillader brugere fra forskellige steder på internettet at få adgang til deres database over ISBN-registreringer. Her er deres egen beskrivelse af API:

ISBNdb.com 's fjernadgang application programming interface (API) er designet til at tillade andre hjemmesider og standalone applikationer bruge enorme indsamling af data indsamlet af ISBNdb.com siden 2003. Som dette skrives, i juli 2005, data omfatter næsten 1.800.000 bøger næsten 3.000.000 mio bibliotek optegnelser tæt på en million fag; hundredtusinder af forfatter og udgiver optegnelser parses ud af bibliotekets data; mere end 10 millioner registreringer af de faktiske og historiske priser.

For at bruge denne API skal du først registrere. Registreringen tager bogstaveligt sekunder at gennemføre. Efter dette, skal du oprette en nøgle. Taster giver dig mulighed for direkte adgang til ISBN database fra din egen kode. Den ISBNdb.com hjemmeside gør oprettelsen af nøgler let.

Trin to: Nu er du begynde at skrive kode til at interagere med databasen. En anmodning om en ISBN-opslag vil se nogenlunde sådan her:

Du vil indsætte din adgang nøgle i stedet for XXXXXX. $ IsbnQuery ville være isbn nummer, du er interesseret i. $ isbnData er en XML-fil. For at få adgang til denne data skal du lade din kode vide, hvad det er der beskæftiger sig med. Noget som dette vil arbejde:

) ; $ XmlData = @ simplexml_load_file ($ isbnData) or die ("Ingen fil indlæst");

Nu kan du få adgang til enkelte variabler med opkald ligner denne:

]->Title ; $ Title = $ xmData-> bogliste [0] -> BookData [0] -> Afsnit;

Her er en komplet arbejder eksempel:

<? Php

$ SearchQuery = "9780684801223" / / De ISBN for Ernest Hemingways gamle mand og havet
$ IsbnData = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ searchQuery" / / Husk at erstatte XXXXXX med din egen adgang nøgle
) ; $ XmlData = @ simplexml_load_file ($ isbnData) or die ("Ingen fil indlæst");
]->Title ; $ Title = $ xmlData-> bogliste [0] -> BookData [0] -> Afsnit;
]->AuthorsText ; $ Forfattere = $ xmlData-> bogliste [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ Udgiver = $ xmlData-> bogliste [0] -> BookData [0] -> PublisherText;

); echo ("$ titel <br/>");
); echo ("$ forfattere <br/>");
); echo ("$ udgiver <br/>");

/ / Dette eksempel udskriver:
/ / Den gamle mand og havet
/ / Ernest Hemingway
/ / New York: Scribner Paperback Fiction, 1995.

?>

Sådan Bekræft en e-mail-adresse Brug PHP

Posted in php ved ShortLikeAFox på 5 august, 2008

Så du har brug for bekræftelse af en brugers e-mail adresse? Intet problem. Der er en masse grunde til at kræve email bekræftelse, og PHP gør det nemt.

Email bekræftelse kan afsluttes, er disse trin:

  1. Spørg brugeren om de oplysninger, du har brug for fra dem (herunder deres e-mail adresse)
  2. Input disse data i en database
  3. Send brugeren en e-mail med en speciel bekræftelse nøgle
  4. "Lås" data i databasen, når den bekræftelse nøgle er indtastet.

Sådan gør du:

<? Php

/ / First, lad os oprette forbindelse til databasen

$ User_name = "dbUserName";
$ Host = "dbHost";
$ My_password = "dbPassword";
$ Db_name = "dbName";

/ / Connect til serveren og vælge database.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ("$ host", "$ brugernavn", "$ my_password") or die ("kan ikke forbinde til server");
) or die ( "cannot select DB" ); mysql_select_db ("$ db_name") or die ("kan ikke vælge DB");

/ / De følgende linje dybest set spørger, om brugeren har behov for den form vises. Læs lidt ned, hvis du ønsker at se, hvor de variabler kommer fra

(@ $_GET [ 'first' ] == "no" ) " ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET ['første'] == "nej") & &! (@ $ _GET ['bekræfte'] == "ja") (
/ / Da dette er sidens første udstilling og ikke bekræftelseskode er inkluderet vi bør vise den form for brugeren at udfylde
/ / Denne form tager kun ét argument (brugerens e-mail adresse).
?>

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" /> Email: <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

)

/ / Hvis formularen er udfyldt, er vi nødt til at generere en bekræftelseskode, indsætte bekræftelse kode og bruger e-mail til en database, og sende en email til den e-mail-adresse.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET ['første'] == "nej") (/ / hvis formularen er udfyldt ...

/ / Is_valid_email_address er ikke et gyldigt php funktion. Sæt din egen e-mail-adresse kontrol funktion her ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST ['email']))

); echo ("Undskyld! Den e-mail adresse, du indtastede er ikke gyldig.");

/ / Hvis den e-mail-adresse vises gyldig og sikker ...
else (

]); $ Email = ($ _POST ['email']);
/ / Generer en bekræftelseskode her. Det er den måde jeg vælger at gøre det, men der er utallige måder, der vil arbejde.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (rand ()));
/ / Alt er mere eller mindre OK at komme ind i databasen og derefter sende en email til brugeren
$ Query = "INSERT INTO emailConfirmationTable (USER_EMAIL, con_code) VALUES ('$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ Result = mysql_query ($ query) or die ("Config Error 2223");
/ / Send email
$ Til = $ email;
$ Subject = "Dit shortlikeafox eksempel bekræftelse" / / Fra
$ Header = "fra: shortlikeafox <info@shortlikeafox.com>";
/ / Din besked
$ Besked = "Din Comfirmation link! \ R \ n";
$ Besked .= "Klik på dette link for at aktivere din konto \ r \ n";
$ Besked .= "Dette link med udløber, når jeg har lyst til at rydde op i de ubekræftet e-mails (hver uge eller deromkring) \ r \ n";
$ Besked .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
$ Sendteemails = mail ($ til, $ emne, $ besked, $ header);

); echo ("Din bekræftelse e-mail er blevet sendt!");

)

)
/ / Hvis brugeren har fundet dette script fra et link i sin e-mail, bekræfter det ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET ['bekræfte'] == "ja") (
/ / Gør confirmCode relativt sikkert at bruge

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

$ Query = "SELECT * FROM emailConfirmationTable WHERE con_code = '$ confirmCode' OG is_confirmed = '0 '";
( "Error 234234" ); $ Result = mysql_query ($ query) or die ("Fejl 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 ("Config Error 222.231.231.233");
if ($ resultat)
); echo ("E-mail bekræftet!");

)
andet

); echo ("Kunne ikke bekræfte Email");

)

?>

Det er meget vigtigt at huske at validere de oplysninger, som brugeren indsætter i nogen form. Jeg har ikke en funktion til e-mail-adresse validering ovenfor, men et godt sted at starte er Cal Henderson e-mail validering funktion findes her.

Hvis du ønsker at se dette script i aktion, kan du gøre det her.

Sådan manuelt Indsæt en gruppe af brugere til en SMF Forum Brug PHP

Posted in SMF (Simple Machine Forum) , php ved ShortLikeAFox den 30 Juli 2008

Denne Tutorial antager, at du er fortrolig med mit indlæg: Sådan manuelt Indsæt en bruger til en SMF Forum Brug PHP .

Jeg har for nylig stod over for udfordringen med at flytte 800 eller deromkring bands fra en database ind i en SMF forum. Jeg står et par problemer, når de foretager de skridt, som jeg ikke dækker i første indlæg:

  1. Bandet navne ikke garanteres at være sikkert for en tegn for tegn flytte ind i SMF databasen. Så en eller anden form af navnet ændrer funktion skulle være ansat.
  2. De bands der ikke har passwords. Så nogle type af adgangskode generation skal være ansat.

De skridt, jeg gik over for at registrere alle de bands i forummet gik lidt som dette:

Åbn Band Database

for hver (Band) (

Generer kodeord

Omdøb Band med "sikker" navn

Grab og generere de nødvendige oplysninger for at indsætte bruger

Indsæt Band i smf_members

Send Band en e-mail med password

)

Oplysninger, jeg havde til rådighed fra bandet database, var nyttig omfattede: BandName, bandEmail, og bandWebsite

Her er kodeordet generation funktion jeg brugte (blatently taget fra totallyphp.co.uk ):

funktion createRandomPassword () (

$ Chars = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((dobbelt) microtime () * 1000000);

$ I = 0;

$ Pass = ";



while ($ i <= 7) (

33; $ Num = rand ()% 33;

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

$ Pass = $ pass. $ Tmp;

$ I + +;

)

return $ pass;

)

Adgangskoden oprettes her er forholdsvis svag, men det var godt nok til mit formål. Enhver adgangkode generation funktion skulle fungere fint her. Jeg valgte denne her, fordi det ville være let for medlemmerne at huske, hvis de ikke valgte at ændre det.

Sådan gør du:

/ / First oprette forbindelse til bandet database
$ Brugernavn = "bandUsername";
$ Host = "bandHost";
$ MinAdgangskode = "bandPassword";
$ Db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ host", "$ brugernavn", "$ MinAdgangskode") or die ("kan ikke forbinde til server");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("kan ikke vælge DB");

/ / Nu fange alle de bands fra databasen
$ Query = "SELECT * FROM allBands";
$ Bands = mysql_query ($ query) or die ("Config Error 2222b");
$ UserRows = mysql_num_rows ($ bånd);

/ / Nu kan oprette forbindelse til SMF db
$ Host = "smfhost"; / / værtsnavn
$ Brugernavn = "smfuser / / Mysql brugernavn
$ MinAdgangskode = "smfpassword"; / / Mysql kodeord
$ Db_name = "smfdatabase"; / / Database navn

("cannot connect to server"); mysql_connect ("$ host", "$ brugernavn", "$ MinAdgangskode") or die ("kan ikke forbinde til server");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("kan ikke vælge DB");

/ / $ Vaild_chars bliver den vifte af tilladte tegn for brugernavne. Jeg besluttede, at kun bogstaver og tal. Der er andre tegn, der kunne bruges, som ikke ville give problemer, men for stil grunde besluttede jeg at gå med kun bogstaver og tal
$ Valid_chars = "abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = eksplodere ("", $ valid_chars);

/ / Nu skal vi løkke igennem hver band

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

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

/ / Udtræk bandet oplysninger
ekstrakt ($ row);
/ / Opret en adgangskode til bandet
$ RealPassword = createRandomPassword ();
/ / Jeg vælger at gentage BandName og password som en del af min debugging og så jeg kan se fungere som det virker
echo ("<br/> $ BandName - $ realPassword");
$ NewBand = "";
/ / For hvert bogstav i bandet navn vi kommer til at se på, om den svarer til et gyldigt tegn fra $ valid_chars. Det den ikke vi kommer til at slippe af med det og afkorte bandet navn
($bandName); $j ++ ){ for ($ j = 0; $ j <strlen ($ BandName); $ j + +) (

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

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

)
/ / I echo det nye navn for samme grund jeg gentage det gamle navn og password
echo ("- $ newBand");
/ / Vi har det nye Band navn .... nu lad os starte buliding den info vi har brug for at indsætte i db ...
$ MemberName = $ newBand;
$ Realname = $ newBand / / jeg det rigtige navn og medlem navn det samme. De bands kan ændre det, hvis de ønsker
$ Email adresse = $ bandEmail;
$ WebsiteUrl = $ bandWebsite / / Da jeg har bands hjemmesider kunne lige så godt indtaste dem
$ WebsiteTitle = $ newBand;
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = sha1 (strtolower ($ memberName). $ RealPassword) / / Password skal være krypteret

/ / Sørg for, at deres isn'ta medlem med det samme navn i SMF databasen. Vi ønsker ikke at tilfældigt kommer ind nogen gange
$ Query = "SELECT * FROM smf_members WHERE memberName = '$ memberName";
("Config Error 2222343242b"); $ Result = mysql_query ($ query) or die ("Config Error 2222343242b");
$ Nrows = mysql_num_rows ($ result);

/ / Hvis medlemmet navnet er fundet intet
if ($ nrows> 0) ()

else (

/ / Hvis brugeren ikke allerede er tilmeldt de fora, så gør det og sende en email ....
$ Query = "INSERT INTO smf_members (memberName, realname, email adresse, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ('$ memberName', '$ realname', '$ email adresse', '$ is_activated', '$ ID_POST_GROUP' , '$ kodeord', '$ websiteUrl', '$ websiteTitle') ";

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

/ / Nu skal vi nødt til at sende båndet en e-mail
$ Til = $ email adresse;
$ Subject = "Dit forum brugernavn og adgangskode";

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

/ / Din besked
$ Besked .= "Dit login og password er listet nedenfor. Du kan ændre enten som helst. Hvis du ikke ønsker at deltage i vores forum, det er ikke noget problem. Bare aldrig logge ind, og det vil være som intet hændt. \ r \ n ";
$ Besked .= "Brugernavn: $ memberName Password: $ realPassword \ r \ n";

/ / Send email
$ Sendteemails = mail ($ til, $ emne, $ besked, $ header);
if ($ sendteemails)

echo ("- YES!");
/ / Dette er den sidste del af vores ekko. Den "-JA!" vil kun blive udskrevet, hvis en e-mail er sendt. Så en fuldstændig udskrift linje vil se nogenlunde sådan her:
/ / Adam Strid - 4s6vsxag - AdamStrife - JA!

)

)
)

Sådan manuelt Indsæt en bruger til en SMF Forum Brug PHP

Posted in SMF (Simple Machine Forum) , php ved ShortLikeAFox den 28 Juli 2008

Dette konkrete eksempel er for SMF 1.1.5. Jeg kan ikke garantere det vil arbejde sammen med en anden version.

Så du kører Simple Machine Forum software og ønsker at manuelt indtaste en bruger? Intet problem. Jeg ved, at dette problem forekommer meget specifikke, men ideerne forklaret her kan tilpasses til andre typer af fora og andre databasebaserede softwarepakker såsom Wordpress. Før vi kommer ind i præcis, hvordan du gør dette, så lad os tage et kig på, hvordan Simple Machine Forums holder styr på brugerne. I SMF databasen er en tabel kaldet smf_members. Den smf_members struktur ser således ud:

Field Type Null

Nøgle Default Ekstra
ID_MEMBER mediumint (8) unsigned NO PRI NULL brug af AUTO_INCREMENT
memberName varchar (80) NO MUL
dateRegistered int (10) unsigned NO MUL 0
stillinger 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
onlinebeskeder smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list tekst NO
pm_ignore_list tekst NO
messageLabels tekst NO
passwd varchar (64) NO
email adresse tinytext NO
personalText tinytext NO
køn tinyint (4) unsigned NO 0
fødselsdato dato NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
placering 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
underskrift tekst NO
timeOffset float 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

Felter vi nødt til at være opmærksomme på:

  • memberName - selvforklarende.
  • dateRegistered - Er det ikke nødvendigt, men hvis ikke udfyldt datoen registreret vises som 31 December 1969. Datoen er gemt som en epoke tidsstempel. Ved ikke, hvordan man beregner timestamps i dit hoved? Intet problem. Jeg bruger gratis generatoren fundet her .
  • realname - bør indsættes. Når jeg ikke sikker på, jeg blot gentage, memberName her.
  • email adresse - selvforklarende.
  • is_activated - Skal være sat til 1, da vi manuelt aktiverer et medlem.
  • ID_POST_GROUP - Jeg vil ikke lyve. Jeg er ikke sikker på, hvad det er, men det altid synes at være sat til 4. Så .... Jeg har altid placere sig hen til 4. Ikke den bedste måde til at programmere, men hvad kan man gøre?
  • passwd - Den adgangskode, du ønsker at give den nye bruger. Det er umuligt at finde ud af, hvordan du indtaster uden at kigge på SMF dokumentation. Den korrekte kode til at kryptere en SMF password til databasen ser sådan ud:

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

I ovenstående linje kode, er $ password brugerens faktiske password.

Sådan gør du:

/ / First oprette forbindelse til SMF databasen

$ Host = "hostname"; / / værtsnavn
$ Brugernavn = "brugernavn" / / Mysql brugernavn
$ MinAdgangskode = "password" / / Mysql kodeord
$ Db_name = "brugernavn" / / Database navn

("cannot connect to server"); mysql_connect ("$ host", "$ brugernavn", "$ MinAdgangskode") or die ("kan ikke forbinde til server");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("kan ikke vælge DB");

$ MemberName = "Ironman";
$ Realname = "Tony Stark";
$ Email adresse = "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, email adresse, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName', '$ realname', '$ email adresse', '$ is_activated', '$ ID_POST_GROUP', ' $ kodeord ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Result = mysql_query ($ query) or die ("SMF Fejl 101,234");

Det er alt der er til det!


«Forrige poster Næste Side» Næste Side »