Archiv für PHP

Wie Hinzufügen einer Website zu einer Form CAPTCHA

Posted in php von ShortLikeAFox am 30. Mai 2009

Sie wollen also CAPTCHA, AKA vollständig automatisiert Public Turing Test Computers and Humans Apart sagen hinzuzufügen, AKA squiggly Buchstaben und Zahlen auf einem Web-Formular.

Dies ist nicht bei allen vorausgesetzt, Sie wissen, ein wenig PHP schwierig. Ich würde es ins Detail gehen zu erläutern, wie zu tun, sondern mehr auf Boutell.com gibt es eine lächerlich gut geschrieben, leicht zu folgen Schritt-für-Schritt-Anleitung erklärt, wie zu tun. Go check it out.

Wie versende ich eine Masse E-Mails mit PHP

Posted in php von ShortLikeAFox am 19. September 2008

Sie wollen also eine Masse senden E-Mail oder Sie wollen ein Programm, das schnell ändern kann zu versenden E-Mails werden mehrere Masse zu schaffen. PHP macht dies einfach. In diesem Beispiel gehe ich davon aus, dass Sie eine Liste der E-Mail-Adressen haben Sie eine bestimmte E-Mail zu senden. Ich werde auch davon ausgehen, dass Sie halten diese Liste in einer Datenbank, sondern diesen Code könnte leicht angepasst werden, um entweder eine E-Mail Adresse hardcoded Liste oder aus einer anderen Quelle verwendet werden.

<? Php

/ / Verbinden Sie zuerst auf die Datenbank, die Informationen enthält die E-Mail-Adresse.
$ User = "USER";
$ Host = "host";
$ Password = "password";
$ Database = "Datenbank";

( "Couldn't connect to server" ); $ CXN = mysql_connect ($ host, $ user, $ password) or die ("Konnte keine Verbindung zum Server");
mysql_select_db ($ database);

/ / Abfrage der Tabelle, die Adressen enthält die E-Mail. Bitte geben Sie Ihre eigenen Tisch Namen hier ...
$ Query = "SELECT * FROM theEmailAddresses";
( mysql_error ($cxn)); $ Result = mysql_query ($ query, $ CXN) or die (mysql_error ($ CXN));
$ Nrows = mysql_num_rows ($ result);

/ / Wer ist der Absender als identifiziert werden. Sie können sich hier stellen, was Sie wollen, aber es ist wirklich nicht zu ethischen hier statt einer E-Mail-Adresse, die du nicht kontrollieren.
$ From = "From: me@mydomain.com";
/ / A-Standard E-Mail-Betreff-Zeile
$ Subject = "Was gibt's Neues bei mydomain.com";
/ / Die Nachricht
$ Message = "Hallo geschätzter Freund,

Wir verkaufen nun Cookies mydomain.com. Achten Sie darauf, check it out!
Mit freundlichen Grüßen,
me ";

/ / Wir haben schon Adresse abgefragt alle E-Mails. Jetzt müssen wir nur noch die E-Mail versenden
0 ; $i < $nrows; $i ){ for ($ i = 0; $ i <$ nrows; $ i ) (

$ Row = mysql_fetch_assoc ($ result);
extract ($ row);
/ / Replace $ email mit dem, was die Spalte von E-Mail-Adressen genannt wird
$ Bis = "$ email";
/ / Senden der E-Mail an jede E-Mail in die Datenbank
if (mail ($ to, $ subject, $ message, $ from)) (

/ / Drucken den Namen des E-Mails, die gesendet wurden erfolgreich. Ich benutze diese nur um sicherzugehen, dass das Programm nicht gefroren ist. In der Theorie sollten ihre Namen werden einen stetigen Strom von zu druckenden>

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

)

)




?>

Dieses Stück Code nutzt die PHP mail () -Funktion. Dies ist ein sehr leistungsfähiges und einfach zu benutzen. Denken Sie daran, dass mit großer Macht kommt auch große Verantwortung. Versuchen Sie nicht, diese Funktion für das Böse zu verwenden.

Wie man sagen, wo Ihre Besucher sind geographisch PHP

Posted in PEAR , PHP von ShortLikeAFox am 13. September 2008

Wenn Sie eine Website und wollen sagen, wo Ihre Anwender kommen aus Richtung geographisch PHP und PEAR machen dies möglich. So schalten Sie ein Gast-IP in einen physischen Ort das erste, was wollen Sie tun müssen, ist sich sicher, dass Sie das PEAR-Modul Net_Geo haben. Wenn Sie nicht über die Net_Geo PEAR-Modul, Sie sind zu haben, um die PEAR-Package Manager verwenden, um es zu erwerben.

Wenn Sie nicht denken, dass Sie Paket haben Zugriff auf PEAR wegen Ihres Hosting-, Check-out dieser Erklärung , wie die Standard-Installation von PEAR auf einem Konto nicht das macht den Zugriff durch. Es ist mit GoDaddy geschrieben gemeinsamen Konten im Auge, sondern sollte für die meisten Hosting-Pakete, die nicht mit PEAR einzurichten Komm zu arbeiten.

Nachdem Sie Net_Geo Paket installiert haben, es dauert nur ein paar Zeilen Code, um geographische Daten zu erwerben:

<? Php

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

?>

($ip); ?> <br/> IP: <? Php echo ($ ip);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Latitude: <? Php echo ($ Geodaten ['LAT']);?> <br/>
($geoData[ 'LONG' ]); ?> Länge: <? Php echo ($ Geodaten ['lang']);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Land: <? Php echo ($ Geodaten ['COUNTRY']);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Bundesland: <? Php echo ($ Geodaten ['state']);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Ort: <? Php echo ($ Geodaten ['CITY']);?> <br/>

Der Code am Werk:

IP: 72.14.212.84

Breite:

Länge:

Land:

Bundesland:

Stadt:

Wie Divide Ein Bild in mehrere Bilder mit PHP

Posted in Funktionen , PHP von ShortLikeAFox am 26. August 2008

Sie wollen also ein großes Bild in mehrere kleinere Bilder zu brechen? Kein Problem. Das mag wie eine dunkle Problem scheinen, aber es gibt mehrere Gründe, weshalb Sie dies tun würde. Vielleicht möchten Sie visuelle Erstellen einer Schiebepuzzle . Oder Sie verwenden eine einzigartige WordPress Thema . Oder vielleicht möchten Sie eine Collage aus irgendeiner Art zu erstellen. Es ist wirklich egal, warum Sie auf ein Bild in kleinere Bild trennen möchten, PHP macht diese Aufgabe leicht. Das folgende Beispiel befasst sich nur mit JPEGs. Ändern der Funktion, um mit anderen Arten von Bildern umgehen würde nicht so schwer sein.

<? Php
/ / Diese Funktion wird ein Bild Zeilen aufgeteilt in eine Anzahl von gleich großen Spalten und.
Funktion split_image ($ number_of_rows, number_of_cols $, $ path_to_image, $ Dateiname) (

/ / $ Number_of_rows = Anzahl der Zeilen, die Sie möchten;
/ / $ = # Number_of_cols des cols Sie wollen
/ / $ = Path_to_image den Pfad zu dem Ordner, wird das Bild in so etwas wie: / home / content / username / html / list / uploads /
/ / $ = File_name Der Dateiname des Bildes: archery.jpg, etc.

/ / Parse Weg für die Erweiterung
$file_name); $ Info = pathinfo ($ path_to_image. $ Dateiname);

/ / Stellen Sie sicher, wir sind jpeg Umgang mit einem
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ if ((strtolower ($ info ['extension']) == 'jpg') | | (strtolower ($ info ['extension']) == 'jpeg')) (

/ / Load image und nutzen Sie die Bildgröße
); $ Source = ImageCreateFromJPEG ("($ path_to_image) ($ file_name)");
$ Width = imagesx ($ source); / / Hier finden Sie die Breite
$ Height = imagesy ($ source); / / Hier finden Sie die Höhe
$ $ Width = segment_width / $ number_of_cols; / / Bestimmen Sie die Breite der einzelnen Segmente
$ $ Height = segment_height / $ number_of_rows; / / Bestimmen Sie die Höhe der einzelnen Segmente

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"); / / Ich nenne hier das Bild drucken, so dass der Prozess selbst zeigt, wie es läuft
$ 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";
/ / Speichern der Bilder
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn if (imagejpeg ($ im, "INSERT REISEZIEL hier", 100)) / / Das Ziel wird sein fn etwas wie / home / content / c / h / d / images / $

echo ("gemacht worden! <br/>");

)

)

)

)

?>

Wie Enthalten Arbeitsweise PHP-Code in Ihrem WordPress Beiträge

Geschrieben in WordPress , PHP von ShortLikeAFox am 17. August 2008

Sie wollen also in der Lage sein, PHP in Ihrem WordPress Blog-Posts und Seiten. Das ist kein Problem. Nur mit <? Php ... ... ..?> Geht um WordPress wütend, wenn Sie ein Plugin zuerst installieren. Es gibt ein paar Plugins gibt, die behaupten, dieser Fähigkeit zu bieten, sondern jene, die ich gefunden habe, funktioniert das Beste ist Exec-PHP . Zunächst mit Hilfe von PHP-Code, gehen Sie folgendermaßen vor:

  1. Download Exec-PHP
  2. Installieren Sie es wie jedes Plugin (Der Link oben und die Readme-Datei wird durch die man hindurchgehen this)
  3. Wenn Sie momentan benutzen sie, müssen Sie deaktivieren den WYSIWYG-Editor. Um dies zu tun, gehen Sie auf Benutzer -> Mein Profil und deaktivieren Sie das Verwenden Sie den Visual-Editor beim Schreiben Checkbox
  4. Start Schreiben von PHP-Code wie gewohnt: <? Php .... Hier steht?>

Das ist alles, damit Sie es!

Wie Erstellen und Verwenden benannte Variablen dynamisch mit PHP

Posted in php von ShortLikeAFox am 17. August 2008

Sie wollen also dynamischen Variablennamen im Code verwenden. Kein Problem. Angenommen, Sie haben 100 Variablen namens dog0, dog1, dog2, ...., Dog98, dog99. Warum würden Sie wollen 100 Variablen wie folgt zu verwenden anstelle eines Arrays ist über mir, aber nicht für dieses Beispiel egal. Um diese Variablen in einer schnellen Schleife Sie die folgende verwenden:

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

; VariableName $ = "dog $ i";
$ $ $ I = variableName; / / setzt $ dog1 zu 1, $ dog2 zu 2, $ Hund von 34 bis 34, etc ....

)

Lassen Sie uns jetzt sagen, Sie wollten alle diese Variablen zugreifen. Sie könnten die folgenden:

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

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

)

Diese Schleife gibt:

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

etc ... bis hin zu
dog99: 99

Wie man PHP intergrate ISBN Zugriff auf Ihren Webseiten mittels

Posted in php von ShortLikeAFox am 12. August 2008

ISBN-Nummern oder International Standard Book Numbers sind nützlich, Kennungen, die verwendet werden, um Informationen über einzelne Bücher finden kann. Wenn Sie die ISBN-Lookups in Ihrem Web-Anwendungen integrieren möchten, PHP macht es machbar.

Schritt Eins: ISBNdb.com ist geschaffen hat eine API, die es Anwendern ermöglicht aus dem Web, um Zugriff auf Datensätze der Datenbank der ISBN. Hier ist ihre eigene Beschreibung der API:

ISBNdb.com 's Remote Access Application Programming Interface (API) ist entworfen, um Anwendungen zu ermöglichen anderen Websites und eigenständigen Nutzung der riesigen Sammlung von Daten von 2003 erhobenen ISBNdb.com da. Während ich dies schreibe, im Juli 2005, beinhaltet die Daten fast 1,8 Millionen Pfund, fast 3.000.000 Millionen Datensätze hinzugefügt; fast eine Million Untertanen; Hunderttausende von Autor und Verleger Datensätze analysiert aus der Bibliothek von Daten; mehr als 10.000.000 Datensätze aktueller und historischer Preisen.

Zur Verwendung dieser API müssen Sie sich zunächst registrieren. Die Registrierung dauert buchstäblich Sekunden. Danach müssen Sie zum Einrichten eines Schlüssels. Keys ermöglichen den direkten Zugriff auf die Datenbank aus ISBN Ihren eigenen Code. Die Website macht ISBNdb.com Einrichtung Schlüssel einfach.

Zweiter Schritt: Jetzt können Sie mit dem Schreiben beginnen Code-Datenbank interagieren mit dem. Ein Antrag für eine ISBN-Lookup wird in etwa so aussehen:

Sie würden Legen Sie Ihre access key an die Stelle der XXXXXX. $ IsbnQuery würde isbnData werden die ISBN-Nummer die Sie sich interessieren $ ist eine XML-Datei. Um Zugriff auf diese Daten, die Sie benötigen, um Ihren Code zu kennen, was es zu tun hat. Etwas wie dies funktionieren wird:

) ; XMLDATA $ = @ simplexml_load_file ($ isbnData) or die ("Keine Datei geladen");

Jetzt können Sie einzelne Variablen mit Zugang fordert ähnlich wie diese:

]->Title ; $ Title = $ xmData-> Booklist [0] -> BookData [0] -> Titel;

Hier ist ein komplettes, funktionierendes Beispiel:

<? Php

Suchbegriff eingeben $ = "9780684801223"; / / Die ISBN für Ernest Hemingway's Old Man and the Sea
IsbnData $ = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ Suchbegriff eingeben"; / / Vergessen Sie nicht, Schlüssel ersetzen XXXXXX mit Ihrer eigenen Zugang
) ; XMLDATA $ = @ simplexml_load_file ($ isbnData) or die ("Keine Datei geladen");
]->Title ; $ Title = $ XMLDATA-> Booklist [0] -> BookData [0] -> Titel;
]->AuthorsText ; $ $ = Autoren XMLDATA-> Booklist [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ Publisher = $ XMLDATA-> Booklist [0] -> BookData [0] -> PublisherText;

); echo ("$ title <br/>");
); echo ("$ Autoren <br/>");
); echo ("$ publisher <br/>");

/ / Dieses Beispiel gibt Folgendes aus:
/ / Der alte Mann und das Meer
/ / Ernest Hemingway
/ / New York: Scribner Paperback Fiction, 1995.

?>

Wie Bestätigen Sie eine E-Mail-Adresse mit PHP

Posted in php von ShortLikeAFox am 5. August 2008

Sie müssen also die Bestätigung eines Benutzers per E-Mail-Adresse? Kein Problem. Es gibt eine Menge Gründe, um E-Mail-Bestätigung erforderlich ist, und PHP macht es einfach.

Email-Bestätigung abgeschlossen werden können ist diese Schritte:

  1. Fordert den Benutzer zur Information, was Sie von ihnen (einschließlich ihrer E-Mail-Adresse benötigen)
  2. Eingang dieser Daten in einer Datenbank
  3. Schicken Sie dem Benutzer eine E-Mail mit einem speziellen Bestätigungstaste
  4. "Unlock" die Daten in der Datenbank, nachdem die Bestätigung Schlüssel eingegeben wird.

Wie man es macht:

<? Php

/ / First, let's eine Verbindung zur Datenbank

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

/ / Verbindung zum Server und Datenbank auswählen.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ("$ host", "$ benutzername", "$ my_password") or die ("Kann keine Verbindung zum Server");
) or die ( "cannot select DB" ); mysql_select_db ("$ db_name") or die ("kann nicht auswählen, DB");

/ / Die folgende Zeile im Grunde fragt, ob der Benutzer braucht, um die Form angezeigt. Lesen Sie sich ein wenig aus, wenn Sie sehen wollen, wo die Variablen kommen

(@ $_GET [ 'first' ] == "no" ) " ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET ['first'] == "no") & &! (@ $ _GET ['confirm'] == "yes") (
/ / Da dieser Code ist die erste Seite angezeigt und keine Bestätigung ist im Preis inbegriffen, wir sollten Anwender das Formular anzuzeigen, um für das Ausfüllen
/ / Dieses Formular nur ein Argument (der Benutzer die 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

)

/ / Wenn das Formular ausgefüllt hat, müssen wir eine Bestätigung Code zu generieren, legen Sie den Bestätigungs-Code und Benutzer E-Mails in einer Datenbank, und senden Sie eine E-Mail an die E-Mail-Adresse.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET ['first'] == "no") (/ / wenn das Formular ausgefüllt ist ...

/ / Is_valid_email_address ist KEINE gültige PHP-Funktion. Legen Sie Ihre eigene E-Mail-Adresse der Kontrolle seiner Funktion hier ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST ['email']))

); echo ("Sorry! Die E-Mail von Ihnen eingegebene Adresse nicht gültig ist.");

/ / Wenn die E-Mail-Adresse erscheint gültig und sicher ...
else (

]); $ Email = ($ _POST ['email']);
/ / Erzeugen einer Bestätigungs-Code hier. Dies ist der Weg ich wähle, es zu tun, aber es gibt unzählige Wege, die Arbeit.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (rand ()));
/ / Alles ist mehr oder weniger auf OK, um in die Datenbank eingeben und dann schicken Sie eine Mail an den Benutzer
$ Query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ('$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ Result = mysql_query ($ query) or die ("Config Error 2223");
/ / Senden der E-Mail
$ Bis = $ email;
$ Subject = "Ihre shortlikeafox Beispiel Bestätigung"; / / Von
$ Header = "From: shortlikeafox <info@shortlikeafox.com>";
/ / Deine Nachricht
$ Message = "Ihr comfirmation Link! \ R \ n";
$ Message .= "Klicken Sie auf diesen Link, um Ihr Konto zu aktivieren \ r \ n";
$ Message .= "Diese Verbindung mit auslaufen, wenn ich" fühle mich wie die Reinigung der unbestätigte E-Mails (jede Woche oder so) \ r \ n;
$ Message .= "$ = http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode CONFIRMATION_CODE \ r \ n";
$ SentMail = mail ($ to, $ subject, $ message, $ header);

); echo ("Ihre Bestätigungsmail wurde gesendet!");

)

)
/ / Wenn der Benutzer Skript habe diesen über einen Link in seiner E-Mail, bestätigen Sie es ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET ['confirm'] == "yes") (
/ / Stellen Sie die confirmCode relativ sicher in der Anwendung

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

$ Query = "SELECT * FROM WHERE emailConfirmationTable con_code = '$ confirmCode' AND is_confirmed = '0 '";
( "Error 234234" ); $ Result = mysql_query ($ query) or die ("Fehler 234.234");
$ Nrows = mysql_num_rows ($ result);
1){ if ($ nrows == 1) (
$ Query = "UPDATE SET emailConfirmationTable is_confirmed = '1 'WHERE con_code =' $ confirmCode '";
( "Config Error 222231231233 " ); $ Result = mysql_query ($ query) or die ("Config Error 222.231.231.233");
if ($ result)
); echo ("E-Mail bestätigt!");

)
sonst

); echo ("Konnte nicht bestätigen E-Mail");

)

?>

Es ist sehr wichtig, daran zu erinnern, um die Informationen zu bestätigen, dass der Benutzer fügt in jeder Form. Ich habe nicht zählen eine Funktion für E-Mail-Adress-Validierung vor, aber ein guter Anfang ist Cal Henderson E-Mail-Funktion gefunden Validierung hier.

Wenn Sie wollen, in Aktion zu sehen, dieses Skript, so können Sie dies hier.

Manuelles Einfügen einer Gruppe von Benutzern in einer SMF Forum PHP

Posted in SMF (Simple Machine Forum) , php von ShortLikeAFox am 30. Juli 2008

Dieses Tutorial geht davon kennen Sie meine Post: Wie man manuell einfügen ein Benutzer in einer SMF Forum mit PHP .

Ich habe vor kurzem stand vor der Herausforderung bewegten 800 oder so Bands aus einer Datenbank in eine SMF-Forum. Ich stellte ein paar Probleme machen, wenn der Umzug nicht, dass ich in den ersten Beitrag nicht abgedeckt:

  1. Die Band-Namen wurden nicht garantiert werden, für ein sicheres Zeichen für Zeichen Umzug in die SMF-Datenbank. So eine Art von Namen ändern musste Funktion eingesetzt werden.
  2. Die Bands haben keine Passwörter. So eine Art von Passwort-Generierung muss beschäftigt werden.

Die Schritte, die ich ging, um alle Bands im Forum registrieren ging ein wenig wie folgt aus:

Öffnen Sie das Band Database

für jeden (Band) (

Generate Password

Benennen Band mit "sicheren" Namen

Grab und generieren erforderlichen Informationen zum Einlegen der Benutzer

Legen Band in smf_members

Senden Sie eine E-Mail-Band mit dem Kennwort

)

Information hatte ich von der Band zur Verfügung, die nützliche Datenbank aufgenommen wurde: Bandnamen, bandEmail und bandWebsite

Hier ist die Passwort-Generierung Funktion habe ich (blatently entnommen totallyphp.co.uk ):

Funktion createRandomPassword () (

$ Chars = "abcdefghijkmnopqrstuvwxyz023456789";

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

$ I = 0;

$ Pass = ";



while ($ i <= 7) (

33; $ Num = rand ()% 33;

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

$ Pass = $ pass. $ Tmp;

$ I + +;

)

return $ pass;

)

Das Passwort angelegt ist hier relativ schwach, aber es war gut genug für meine Zwecke. Jedes Passwort, das Generation-Funktion wäre hier gut funktionieren. Ich wählte diese eine, weil es einfach wäre für die Mitglieder zu erinnern, wenn sie nicht entschieden, es zu ändern.

Wie man es macht:

/ / Verbinden Sie zuerst die Band-Datenbank
$ Username = "bandUsername";
$ Host = "bandHost";
Mypassword $ = "bandPassword";
$ Db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Kann keine Verbindung zum Server");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("kann nicht auswählen, DB");

/ / Jetzt greifen alle Bands aus der Datenbank
$ Query = "SELECT * FROM allBands"
Bands $ = mysql_query ($ query) or die ("Config Error 2222b");
$ UserRows = mysql_num_rows ($ Bands);

/ / Jetzt können eine Verbindung zu dem SMF db
$ Host = "smfhost"; / / Host-Namen
$ Username = "smfuser; / / MySQL-Benutzernamen
Mypassword $ = "smfpassword"; / / MySQL-Passwort
$ Db_name = "smfdatabase" / / Name der Datenbank

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Kann keine Verbindung zum Server");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("kann nicht auswählen, DB");

/ / $ Vaild_chars wird Benutzernamen werden das Array der zulässigen Zeichen für. Ich beschloss, dass nur Buchstaben und Zahlen. Es gibt noch andere Zeichen, Zahlen und genutzt werden könnte, dass wäre kein Problem, aber für Stil Gründen habe ich beschlossen zu gehen Briefe mit nur
Valid_chars $ = "ABCDEFGHIJKLMNOPQRSTU VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = explode ("", $ valid_chars);

/ / Jetzt müssen wir eine Schleife über jedes Band

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

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

/ / Extrahieren der Band Informationen
extract ($ row);
/ / Erstelle ein Passwort für die Band
$ RealPassword createRandomPassword = ();
/ / Ich meine es wählen zu echo der Bandname und das Kennwort als Teil der Fehlersuche und damit ich sehen kann, wie die Funktion arbeitet
echo ("$ <br/> Bandnamen - $ realPassword");
NewBand $ = "";
/ / Für jeden Brief, in dem Bandnamen valid_chars wir gehen, um zu sehen, ob es gültig Spiele ein Zeichen aus $. Es es nicht werden wir sie loswerden, und verkürzen den Bandnamen
($bandName); $j ++ ){ for ($ j = 0; $ j <strlen ($ Bandnamen); $ j + +) (

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

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

)
/ / Ich schließe mich den neuen Namen für den gleichen Grund, warum ich echo den alten Namen und Passwort
echo ("- $ newBand");
/ / Wir haben den neuen Band-Namen .... Jetzt geht's los buliding die Info brauchen wir zum Einfügen in die DB ...
$ $ = MemberName newBand;
$ $ = RealName newBand; / / ich den richtigen Namen und den gleichen Namen Mitglied. Die Bands können es ändern, wenn sie wollen
$ $ = EmailAddress bandEmail;
$ $ = WebsiteUrl bandWebsite; / / Seit ich die Bands "könnte genauso gut Websites eingeben
$ $ = WebsiteTitle newBand;
Is_activated $ = 1;
ID_POST_GROUP $ = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = sha1 (strtolower ($ MemberName). RealPassword $); / / Das Passwort muss verschlüsselt werden

/ / Stellen Sie sicher, ihre ist kein Mitglied mit dem gleichen Namen in der SMF-Datenbank. Wir wollen nicht versehentlich jemand doppelt
$ Query = "SELECT * FROM WHERE smf_members MemberName = '$ MemberName'";
("Config Error 2222343242b"); $ Result = mysql_query ($ query) or die ("Config Error 2222343242b");
$ Nrows = mysql_num_rows ($ result);

/ / Wenn das Mitglied Name gefunden wird nichts tun,
if ($ nrows> 0) ()

else (

/ / Wenn der Benutzer nicht bereits angemeldet Foren für die, tun Sie dies und senden Sie eine E-Mail ....
$ Query = "INSERT INTO smf_members (MemberName, RealName, emailAddress, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ('$ MemberName', '$ RealName', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP" , "$ password ',' $ websiteUrl ',' $ websiteTitle ')";

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

/ / Jetzt müssen wir die Band senden eine E-Mail
$ Bis = $ emailAddress;
$ Subject = "Ihr Forum Benutzername und Passwort";

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

/ / Deine Nachricht
$ Message .= "Ihr Login und Passwort sind unten aufgelistet. Sie können entweder jederzeit ändern. Wenn Sie nicht möchten, dass in unseren Foren teilnehmen, das ist kein Problem. Just nie log in, und es wird nichts sein wie nie passiert. \ r \ n ";
$ Message .= "Username: $ MemberName Passwort: $ realPassword \ r \ n";

/ / E-Mail versenden
$ SentMail = mail ($ to, $ subject, $ message, $ header);
if ($ SentMail)

echo ("- JA!");
/ / Dies ist der letzte Teil unserer Echo. Die "-JA!" wird nur dann gesendet werden gedruckt, wenn eine E-Mail ist. Also eine volle Ausdruck dieser Zeile wird in etwa so aussehen:
/ / Adam Strife - 4s6vsxag - AdamStrife - JA!

)

)
)

Wie man manuell einfügen ein Benutzer in einer SMF Forum PHP

Posted in SMF (Simple Machine Forum) , php von ShortLikeAFox am 28. Juli 2008

Dieses konkrete Beispiel ist für SMF 1.1.5. Ich kann nicht garantieren, es wird Version arbeiten mit anderen.

So führen Sie Simple Machine Forum Software und wollen manuell Geben Sie einen Benutzernamen? Kein Problem. Ich kenne dieses Problem scheint sehr spezifisch, aber die Ideen erläutert hier kann auch auf andere Arten von Foren und anderen datenbankgestützten Software-Pakete wie zB Wordpress angepasst werden. Bevor wir in die genau wie Sie dies tun zu bekommen, lassen Sie uns einen Blick darauf, wie Simple Machine Forums verfolgt die Spuren der Nutzer. In der SMF-Datenbank gibt es eine Tabelle namens smf_members. Die smf_members Struktur sieht wie folgt aus:

Feld Typ Nichtig

Schlüssel Default Extra
ID_MEMBER MEDIUMINT (8) unsigned NO PRI NULL auto_increment
MemberName varchar (80) NO MUL
dateRegistered int (10) unsigned NO MUL 0
Beiträge 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
Chat smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list Text NO
pm_ignore_list Text NO
messageLabels Text NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
Geschlecht tinyint (4) unsigned NO 0
Geburtsdatum Datum NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
Standort 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
Unterschrift Text NO
timeOffset Schwimmer NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) unsigned NO 0
karmaGood smallint (5) unsigned NO 0
Usertitel 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

Felder, die wir brauchen, um zu beachten:

  • MemberName - selbsterklärend.
  • dateRegistered - ist nicht notwendig, aber wenn nicht ausgefüllt Datum der registrierten Displays als 31. Dezember 1969. Das Datum wird als Unix-Zeitstempel gespeichert. Sie wissen nicht, wie Zeitstempel im Kopf berechnen? Kein Problem. Ich verwende die kostenlose Generator finden Sie hier .
  • RealName - eingefügt werden sollte. Wenn ich nicht sicher, ob ich nur wiederholen MemberName hier.
  • emailAddress - selbsterklärend.
  • is_activated - muss 1 zu setzen, da wir die Aktivierung erfolgt manuell ein Mitglied.
  • ID_POST_GROUP - Ich werde nicht lügen. Ich bin mir nicht sicher, was das ist, aber es scheint immer auf 4 gesetzt werden. Also .... Ich habe immer setzen Sie ihn auf 4. Nicht der beste Weg zu programmieren, aber was kann man tun?
  • passwd - Das Passwort Sie geben dem neuen Benutzer. Es ist unmöglich, herauszufinden, wie Sie ohne Blick auf die SMF-Dokumentation. Der richtige Code, um eine SMF Kennwort für die Datenbank zu verschlüsseln wie folgt aussieht:

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

Im obigen Code-Zeile, $ password ist das Passwort des Benutzers tatsächlich.

Wie man es macht:

/ / Zuerst eine Verbindung zu dem SMF-Datenbank

$ Host = "hostname"; / / Host-Namen
$ Username = "username"; / / MySQL-Benutzernamen
Mypassword $ = "password" / / MySQL-Passwort
$ Db_name = "username"; / / Name der Datenbank

("cannot connect to server"); mysql_connect ("$ host", "$ username", "$ mypassword") or die ("Kann keine Verbindung zum Server");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("kann nicht auswählen, DB");

MemberName $ = "Ironman";
$ RealName = "Tony Stark";
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 INTO smf_members (MemberName, RealName, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ MemberName', '$ RealName', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Result = mysql_query ($ query) or die ("Fehler beim SMF 101,234");

Das ist alles, damit Sie es!


«Vorherige Einträge Nächste Seite» Nächste Seite »