PHP用のアーカイブ

どのように大量の電子メールのPHP を使って送信する

PHPでShortLikeAFoxで9月に、 2008年の19日に投稿

そうすれば、大量のメールを送信するか、すぐに複数の大量のメールを送信するように変更することができるプログラムを作成してほしい。 PHPはこれを簡単に行えます。 この例では私はあなたには、特定のメールを送信する電子メールアドレスのリストを表示していると見なします。 私もこのリストでは、データベース内に保持しているが、想定してこのコードを簡単にハードコードのいずれかまたは別のソースからの電子メールアドレス一覧のリストを使用するように調整される可能性がある。

< ? phpの

/ /最初は、メールアドレスの情報が含まれているデータベースに接続します。
$ユーザー= "ユーザー" ;
$ホスト= "ホスト" ;
$パスワード= "パスワード" ;
$データベース= "データベース" ;

( "Couldn’t connect to server" ); $ cxn ( $ ホスト、 $ユーザ$パスワード)または死ぬ= mysql_connect ( "サーバー " )接続できませんでした
mysql_select_db ( $データベース) ;

は、電子メールアドレスが含まれて/ /クエリのテーブル。 ここで自分のテーブル名を記入する...
$クエリ= "のSELECT * theEmailAddresses " ;
( mysql_error ($cxn)); $結果= するmysql_query ( $クエリ、 $ cxn )または( mysql_error ( $ cxn ) ) ;死ぬ
$ nrows = mysql_num_rows ( $結果) ;

/ /誰が送信者として識別れます。 あなたがここに望みをかけることはできますが、本当に多すぎてここでは、メールアドレスは、コントロールしない場所に倫理的ではない。
$ =から" 投稿者: me@mydomain.com " ;
/ /標準的な電子メールの件名
$件名= "何の新しいmydomain.com " ;
/ /メッセージ
$メッセージ= "こんにちは大切な友人

今mydomain.comでクッキーを販売している。 それをチェックアウトしてください!
よろしくお願い申し上げます。
メイン" ;

/ /我々はすでに、すべてのメールアドレスを照会している。 今では、メールを送信する必要がある
0 ; $i < $nrows; $i ++ ){= 0 ( $ ; $私< $ nrows ; $私+ + ) (

$行= mysql_fetch_assoc ( $結果) ;
抽出 ( $行) ;
/ /置換$メールアドレスの欄にはどんなメールと呼ばれています
$ 〜 = " $メール" ;
/ /各メールには、データベース内のメールを送信
場合( メール ( $ 〜 、 $件名、メッセージ$ 、 $から) ) (

/ /メールは正常に送信された名前を印刷します。 これだけでは、プログラムを凍結していないことを確認する使用しています。 理論的にはその名の印刷されて着実にストリームする必要があります>

);" $ 〜 エコー中<br/> " ) ;




? >

コードのこのビット( )関数は、 PHPのメールの利点活用できます これは非常に強力で機能を使用するように簡単です。 ことを覚えていると大きな力大きな責任だ。 悪については、この機能を使用しないことをお試しください。

地理的にはどのようにお客様が来場される方はPHP を使用している通知する

PEARのは、 2008年9月 13日にShortLikeAFoxてPHPで掲示

ウェブサイトを持っている場合は、地理的には、ユーザーからのPHPとPEARの本を可能にする来ていると言ってほしい。 物理的な場所を行うには、 Net_Geo PEARのモジュールを持っていることを確認することが必要になるのは、最初にユーザーのIP有効にするには。 Net_Geo場合は、 PEARのモジュールがない場合は、それを取得するには、 PEARパッケージマネージャを使用する必要があるとしています。

場合は、デフォルトでアクセスを許可しないアカウントでのPEAR インストールするには、この説明をチェックアウトをホストするためのPEARパッケージへのアクセスがあるとは思わない。 それのGoDaddyと心の中で書かれているが、ほとんどは、 PEARのアカウント共有の設定が付属していませんが、パッケージのホスティングのために働く必要があります。

Net_Geoパッケージをインストールした後に、地理的なデータを取得するだけに数行のコードを取ります:

< ? phpの

); ですrequire_once"ネット/ Geo.php " ) ;
]; $のIP = $ _SERVER [ ' REMOTE_ADDR ' ] ;
/ / $ IPアドレス= " 64.246.30.37 " ;
$ firstNetGeo = 新しい Net_Geo ( ) ;
$ geoData = $ firstNetGeo - > getRecord ( $ IPアドレス) ;

? >

($ip); ?> <br/> IPアドレス: < ? phpの エコー ( $ IPアドレス) ; ? >中<br/>
($geoData[ 'LAT' ]); ?> <br/>緯度: < ? phpの エコー ( $ geoData [ ' LATを' ] ) ; ? > 中<br/>
($geoData[ 'LONG' ]); ?>経度: < ? phpの エコー ( $ geoData [ 'ロング' ] ) ; ? >
中<br/>
($geoData[ 'COUNTRY' ]); ?> <br/>国: < ? phpの エコー ( $ geoData [ '国土' ] ) ; ? > 中<br/>
($geoData[ 'STATE' ]); ?> <br/>状態: < ? phpの エコー ( $ geoData [ '国家' ] ) ; ? > 中<br/>
($geoData[ 'CITY' ]); ?> <br/>シティ: < ? phpの エコー ( $ geoData [ '都市' ] ) ; ? > 中<br/>

職場でのコード:

IPアドレス: 72.14.193.67

緯度: 33.98

経度: -118.45

国:アメリカ

状態:カリフォルニア

シティ:マリナデルレイ

どのように複数の画像を1つの画像のPHP を使用して分割する

機能では、 2008年8月 26日にShortLikeAFoxてPHPを投稿

小さいので、複数の画像を1つの大きなイメージを壊すしたいですか? 大丈夫。 これは、マイナーな問題のようですが、これを行う場合があるかもしれませんてほしいと、複数の理由。 おそらくあなたは視覚スライドパズルを作成する。 それともあなたはユニークなワードプレスのテーマを実行している。 それとも、いくつかの種類のコラージュを作成したい。 本当にどうして小さい画像に画像を分割する問題ではない、 PHPはこの作業を簡単に行えます。 JPEG画像のみの契約下の例です。 画像の他の種類に対処するための機能を変更すると、ハードではない。

< ? phpの
/ /この関数の数に等しく列と行のサイズの画像を分割する。
関数 split_image ( $ number_of_rows 、 $ number_of_cols 、 $ path_to_image 、 $ファイル名) (

/ / $ number_of_rows = #設定したい行の;
/ / $ number_of_cols = # colsの設定したい
/ / $ path_to_image =の画像には、のようなものにされているフォルダ: /ホームへのパス/コンテンツ/ユーザ名/ HTML形式/一覧/アップロード/
/ / $ = file_nameは画像のファイル名: archery.jpg等

/拡張子/パースパス
$file_name); $インフォメーション= PathInfoを ( $ path_to_image $ファイル名) ;

/ /我々はjpegファイルを扱っていることを確認する
($info[ 'extension' ]) == ‘jpg’ ) || ( strtolower ($info[ 'extension' ]) == ‘jpeg’ ) ){ ( ( strtolower ( $場合インフォメーション[ '拡張子' ] ) == ' ' のjpg ) | | ( strtolower ( $インフォメーション[ '拡張子' ] ) == ' ' JPEG準拠) ) (

/ /読み込み画像や画像のサイズを取得
); $ソース= ( " ( $ path_to_image ) ( $ファイル名) " ) imagecreatefromjpeg ;
$幅= imagesx ( $ソース) ; / /幅をして下さい
ドル高さ= imagesy ( $ソース) ; / /の高さをして下さい
$ segment_width = $幅/ $ number_of_cols ; / /は、個々のセグメントの幅を決定
$ segment_height = $高さ/ $ number_of_rows ; / /は、個々のセグメントの高さを調べる

( $ = 0 ; $鞍部< $ number_of_cols鞍部;ドルの鞍部+ + )

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

, $col, $row ); $ ( = sprintf"スペース% 02d_ % 02d.jpg " 、 $鞍部、 $行) ;
); //I print the image name here, so that the process shows itself as it runs" $" )エコー; / /私はここので、そのプロセス自体を示すように、画像名印刷を実行
$イム= imagecreatetruecolor ( $ segment_width 、 $ segment_height ) @ ;
imagecopyresized ( $イム、 $ソース、 0 、 0 、 $ * $ segment_width 、 $行列* $ segment_height 、 $ segment_width 、 $ segment_height 、 $ segment_width 、 $ segment_height ) ;
$ " = " test.jpgファイル
/ /画像を保存
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fnimagejpeg ( $イムは、 "路線をここに挿入" 、 100 ) ) / /この先のようなものを/ home /コンテンツ/ウ/時間/エされます/画像/ $ (場合

エコー( "されている!中<br/> " ) ;

? >

どのように機能を含むPHPコードをあなたのワードプレス投稿

ワードプレスは、 8月に ShortLikeAFoxてPHPを17日、 2008年に投稿

だから、自分のワードプレスのブログの記事やページでPHPを使用できるようにする。 、問題ないですね。 だけを使用する< ? phpの... ... .. ? >場合を除き、最初のインストールワードプレスのプラグインを怒っている。 があるからでは、この機能を提供してクレーム数のプラグインだが、私が発見したのは、最高の作品にExecは、 PHPの。 PHPコードを使用して、次の手順を開始するには:

  1. ダウンロードの幹部は、 PHP
  2. インストールして何かを説明するとreadmeファイル(上記のリンクプラグインと同じように)
  3. 現在、それを使用している場合は、 WYSIWYGエディタをオフにする必要があります。 は、ユーザーに行くこれを行うには-あなたのプロフィールやチェックボックスをオフの時にチェックボックスを使用して、ビジュアルエディタ>を書く
  4. PHPコードのような場合、通常と: < ? phpの書き込みを開始... 。コードがここに入りますか? >

は、すべての設定は完了です!

どのように作成して使用して動的にPHPに変数の名前

PHPでShortLikeAFox 8月に、 2008年の17日に投稿

つまり、あなたのコードで動的変数名を使用するようにします。 大丈夫。 あなた100変数あるとしましょう、 dog0 、 dog1 、 dog2名前... 。 、 dog98 、 dog99 。 なぜこのような配列の代わりに100の変数を使用することが私の理解を超えているが、この例では関係ないよ。 次のループを使用することが簡単にこれらの変数を設定するには:

0 ; $i < 100 ; $i ++ ){= 0 ( $ ; $私は< 100 ; $私+ + ) (

; $ variableName = "犬$ i "を ;
$ $ variableName = $私; / / 1 、 2 、 34 、犬などに$ 34ドルdog1 $ dog2セット... 。

今の場合、これらすべての変数にアクセスしたいとします。 次の使用可能性がある:

0 ; $i < 100 ; $i ++ ){= 0 ( $ ; $私は< 100 ; $私+ + ) (

; $ variableName = "犬$ i "を ;
エコー( "中<br/> " ) ;
" $ variableNameエコー: " ) ;
エコー( $ $ variableName ) ;

このループのプリント:

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

モニュメント等...すべての方法を
dog99 : 99

Intergrate ISBNコードをあなたのウェブページにアクセスするにはどのように PHP を使う上で

PHPでShortLikeAFox 8月に、 2008年の12日に投稿

ISBNコードや国際標準図書番号は、個々の書籍に関する情報を検索するために使用できる便利な識別子です。 PHPの場合は、やればできることをお客様のウェブアプリケーションでのISBN番号の検索を統合したい。

ステップ1 : ISBNdb.comにはAPIは、ユーザーは、ウェブの周りISBNコードレコードのデータベースにアクセスすることができます作成している。 ここには、独自のAPIの説明です:

ISBNdb.com '他のウェブサイトやスタンドアロンのアプリケーションを許可するように設計されているリモートアクセスアプリケーションプログラミングインターフェイス( API )のデータ収集ISBNdb.comで2003年以来膨大なコレクションを使用しています。 この文書を執筆し、 2005年7月と同様に、データのほとんどの書籍が含まれています1800000 ; ほぼmillionライブラリレコード3000000 ;近くは100万科目 ; 著者や出版社のレコードライブラリのデータを解析数十万人 ; 以上レコードを10000000実際、歴史的価格。

まず。申込み登録する必要がありますこのAPIを使用するには、文字通り完了するために秒かかります。 この後、キーを設定する必要があります。 キーを直接自分のISBNコードからデータベースにアクセスすることができます。 ISBNdb.comウェブサイトキーの設定が簡単になります。

ステップ2 :開始は、データベースと対話するコードを書く今している。 ISBN番号ルックアップのための要求を以下のようになります:

$ isbnData = " http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ isbnQuery " ;

あなたがXXXXXXの場所でお客様のアクセスキーを挿入する。 isbnQuery $ $インチisbnData興味を持っている場合は、 ISBNコード番号となる XMLファイルです。 あなたのコードがそれをどう扱っていることをお知らせする必要がある、このデータにアクセスするには。 この仕事をするような何か:

) ; $ xmlData = @ simplexml_load_file ( $ isbnData ) または死ぬ"ファイルが読み込まない" ) ;

今あなたと個々の変数にアクセスすることができますこのような呼び出し:

]->Title ; $タイトル= $ xmData - >ブックリスト[ 0 ] -> B ookData[ 0 ] - >タイトル;

ここでは完全な作業例です:

< ? phpの

$ searchQuery = " 9780684801223 " ; / /アーネストヘミングウェイの老人と海のためのISBNコード
$ isbnData = " http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ searchQuery " ; / /独自のアクセスキーとがXXXXXXを交換してください
) ; $ xmlData = @ simplexml_load_file ( $ isbnData ) または死ぬ"ファイルが読み込まない" ) ;
]->Title ; $タイトル= $ xmlData - >ブックリスト[ 0 ] -> B ookData[ 0 ] - >タイトル;
]->AuthorsText ; $作家= $ xmlData - >ブックリスト[ 0 ] -> B ookData[ 0 ] - >A u thorsText;
]->PublisherText ; $出版社= $ xmlData - >ブックリスト[ 0 ] -> B ookData[ 0 ] - >P u blisherText;

); ( " $ タイトルの中<br/> " )エコー;
); ( " $ 作家中<br/> " )エコー;
); ( " $ 出版社エコー中<br/> " ) ;

/ /この例でプリント:
/ /その老人と海
/ /アーネストヘミングウェイ
/ /ニューヨーク:スクリブナーペーパーバックフィクション、 1995 。

? >

どのようにPHPを使用する電子メールアドレスを確認する

PHPでShortLikeAFox 8月に、 2008年第5回投稿

ので、ユーザーのメールアドレスの確認が必要ですか? 大丈夫。 メールの確認が必要とする理由はたくさんあるし、 PHPは簡単になります。

メールの確認を完了することができます手順を実行されます:

  1. それら(の電子メールアドレスなど必要な情報については、ユーザープロンプト)
  2. データベース内のこのデータ入力
  3. ユーザーが特別な確認キーを記載したメールを送信
  4. 一度、確認キーが入力されて" "は、データベース内のデータのロックを解除する。

どのようにそれを実行する:

< ? phpの

/ /まず、データベースに接続させる

$ユーザー名= " dbUserName " ;
$ホスト= " dbHost " ;
$ my_password = " dbPassword " ;
$ db_name = " dbnameに" ;

/ /サーバーを選択してデータベースに接続します。
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); "ホスト( " $ mysql_connect" $ ユーザー名"" $ my_password "または死ぬ"サーバーに " )を接続することはできません
) or die ( "cannot select DB" ); mysql_select_db" $ db_name "または死ぬ" " ) DBを選択することはできません

場合に、ユーザーがフォームにする必要があります/ /次の行を基本的に要求表示されます。 少し下を読む場合は、変数から見て

(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ 場合 ( @ に$ _GET [ '最初の' ] == "なし"& & ! ( @ に$ _GET [ '確認' ] == "はい" ) (
/ /これはページの最初に表示すると確認コードは我々に記入することには、ユーザーのためのフォームが表示されるはず含まれています。
/ /このフォームは1つだけの引数(ユーザーのメールアドレス)かかります
? >

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" /> Eメール: <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の>
< /表>
< /フォーム>

< ? phpの

/ /場合は、フォームに記入されており、我々は確認コードを生成するために、データベースには、確認コードとユーザーの電子メールを挿入すると必要とされたメールアドレスにメールを送信してください。
[ 'first' ] == "no" ){ //if the form has been filled out… elseif ( @ に$ _GET [ '最初の' ] == "なし" ) ( / /場合は、フォームに記入されています...

/ / is_valid_email_address 、有効なPHPの関数です 自分のメールアドレスをチェックする機能を挿入ここに...
is_valid_email_address( $_POST [ 'email' ])) 場合 ( $ _POSTを[ 'メール' ] ) ) is_valid_email_address

); 有効ではありません"ごめんエコー!入力された電子メールアドレスです。 " ) ;

/ /場合は、有効なメールアドレスが表示され、安全な...

]); $メール= ( $ _POSTを [ 'メール' ] ) ;
/ /ここで確認コードを生成します。 これは私はそれを行うことを選択する方法だが、その動作には問題がある無数の方法があります。
( rand ())); $ = md5にconfirmation_code ( (ランド())); uniqid
/ /すべては多かれ少なかれ、データベースに入力すると、ユーザーにメールを送信してOKです
$クエリ= "挿入emailConfirmationTable ( con_code ) user_email値( ' $メール' 、 ' $ confirmation_code ' ) " ;
("Config Error 2223 "); $結果= するmysql_query ( $クエリ) または死ぬ ( "設定エラー2223 " ) ;
/ /メールを送信
$ 〜 = $メール;
$件名= "あなたのshortlikeafox例の確認" ; / /投稿者
$ヘッダー= "投稿者: shortlikeafox <info@shortlikeafox.com> " ;
/ /あなたのメッセージ
$メッセージ= "あなたのComfirmationリンク! \研究です\ n " ;
$メッセージ.= "このリンククリックしてアカウントを有効に\研究です\ n " ;
いつ私は未確認のメール洗浄ような気が期限切れと$メッセージ.= "このリンク(毎週かそこら) \研究です\ n " ;
$メッセージ.= " http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ confirmation_code \研究です\ n " ;
$送信済み= メール ( $ 、 $件名、メッセージ$ 、 $ヘッダー) ;

); " 確認メール送信されましたエコー" ) ;


/ /場合は、ユーザーの電子メール内のリンクからこのスクリプトは、確認が見つかりました... 。
[ 'confirm' ] == "yes" ){ elseif ( @ に$ _GET [ '確認 ] == "はい" ) (
/ / confirmCode比較的使用して安全を確保する

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

$クエリ= "のSELECT *からcon_code = ' $ emailConfirmationTable confirmCode 'とis_confirmed = '0 ' " ;
( "Error 234234" ); $結果= するmysql_query ( $クエリ) または死ぬ"エラー234234 " ) ;
$ nrows = mysql_num_rows ( $結果) ;
1){ $ nrows == 1 ) (場合
$クエリ= "アップデートemailConfirmationTableセットis_confirmed = '1 'のWHERE con_code = ' $ confirmCode ' " ;
( "Config Error 222231231233 " ); $結果= するmysql_query ( $クエリ) または死ぬ"設定エラー222231231233 " ) ;
$結果)の場合
); エコー"メールアドレスの確認を! ! ! " ) ;


その他の

);" " )メールを確認できませんでしたエコー ;

? >

その情報を検証するために覚えているのは非常に重要なのはどのような形でユーザーを挿入します。 私は上記のメールアドレスを検証するための関数が含まれていない開始するにはいい場所カルヘンダーソンの電子メールの検証機能ですここを発見した

行動の場合はこのスクリプトを見たい場合は、ここに行うことができます。

どのように手動で挿入するグループのユーザーには、 SMFのフォーラムPHPを使う

SMFの( 簡単な機械フォーラム) 、 7月にShortLikeAFoxてPHPを30日、 2008年に投稿

このチュートリアルは私の投稿に慣れていると仮定: どのように手動で挿入するためのSMFのユーザーフォーラムのPHPを使用しています。

私は最近、 800ほどの移動の挑戦に直面するSMFのフォーラムには、データベースからのバンド。 私の問題を移動するときに、私の最初の記事でカバーしていないことをいくつかに直面:

  1. バンド名の文字を移動して文字のためのSMFのデータベースに安全であることが保証されていない。 だから名の一部を変更するような機能を採用しなければならなかった。
  2. バンドのパスワードを持っていない。 そこでパスワード生成のいくつかのタイプのニーズを採用する。

私のすべてのフォーラムでは、バンドの登録を行ったの手順は次のように少し行った:

オープンは、バンドのデータベース

(バンド) (

パスワード生成

バンドの名前を変更する"安全"という名前で

グラブを生成するために必要な情報は、ユーザーを挿入

挿入バンドにsmf_members

バンドは、パスワードを記載したメールを送信

私は、有用な情報が含まれていたバンドデータベース:から入手したが、 bandEmail 、 bandNameとbandWebsite

ここに私を使ってパスワード生成機能です( blatently totallyphp.co.ukから)

関数 createRandomPassword ( ) (

$文字= " abcdefghijkmnopqrstuvwxyz023456789 " ;

() * 1000000); srand ( ( ) microtimeダブル ( ) * 1000000 ) ;

$私= 0 ;

$ = "を渡す;



( $ ながら私は< = 7 ) (

33; $ numが= ランド ( ) 33 ;

$ tmpに= substr ( $文字、 $ numが、 1 ) ;

$パス= $渡します。 $ tmpの;

$私+ + ;



$ リターンパス;

パスワードをここには比較的弱いが作成されますが、十分に私の目的のために良かった。 任意のパスワード生成機能をここにうまくいくと思います。 それを変更しないことを選択した場合は、メンバーを覚えて簡単になるので、私はこの1つを選んだ。

その方法を:

/ /まず、バンドのデータベースに接続
$ユーザ名= " bandUsername " ;
$ホスト= " bandHost " ;
$ mypassword = " bandPassword " ;
$ db_name = " bandDatabase " ;

("cannot connect to server"); "ホスト( " $ mysql_connect 、 " $ユーザ名" 、 " $ mypassword "は) または死ぬ ( "サーバーに" )を接続することはできません。
("cannot select DB"); mysql_select_db ( " $ db_name " ) または死ぬ ( " " ) DBを選択することはできません。

/ /これは、データベースからすべてのバンドをつかむ
$クエリ= "のSELECT * allBands " ;
$バンド=するmysql_query ( $クエリ)または死ぬ( "設定エラー2222b " ) ;
$ userRows = mysql_num_rows ( $バンド) ;

/ /これで、 SMFのデータベースに接続することができます
$ホスト= " smfhost " ; / /ホスト名
$ユーザ名= " smfuser ; / / MySQLユーザ名
$ mypassword = " smfpassword " ; / / mysqlのパスワード
$ db_name = " smfdatabase " ; / /データベース名

("cannot connect to server"); "ホスト( " $ mysql_connect 、 " $ユーザ名" 、 " $ mypassword "は) または死ぬ ( "サーバーに" )を接続することはできません。
("cannot select DB"); mysql_select_db ( " $ db_name " ) または死ぬ ( " " ) DBを選択することはできません。

/ / $ vaild_charsのユーザー名で許可文字の配列になるだろう。 私は文字と数字だけを許可することを決めた。 それは、問題が発生しないと使用される可能性があるその他の文字だが、スタイル上の理由で私は文字と数字だけで行くことにした
$ valid_chars = " abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9 " ;
$ valid_chars 爆発 = ( " " 、 $ valid_chars ) ;

/ /これでループに各バンドを通じて必要がある

){= 0 ( $ ; $私< $ userRows ; $私+ + ) (

($bands)){ ( $ 場合、行= mysql_fetch_assoc ( $バンド) ) (

/ /抽出は、バンドの情報を
抽出 ( $行) ;
/ /そのバンドのためのパスワードを作成します
$ realPassword = createRandomPassword ( ) ;
/ /私は、デバッグの一環として、 bandnameとパスワードをエコーには、作品を見ることができるので、機能を選択する
エコー ( "中<br/> bandName $ -$ r ealPassword" ) ;
$ newBand = " " ;
私たちは、 バンド名の場合は、 $ valid_charsは有効な文字と一致するかをよくチェックしている各文字/ /ください。 それは私たちを排除しよう進んでいることはありませんし、バンド名を切り捨てる
($bandName); $j ++ ){ ( $ジェイ= 0 ; $ジェイ< strlen ( $ bandName ) ; $ジェイ+ + ) (用

($band[$j])); $気温= str_replace ( $ valid_chars 、 " X "が、 strtolower ( $バンド[ $ジェイ] ) ) ;
( $ 場合、気温==の" X " )

$ = $ newBand newBand 。 $バンド[ $ジェイ] ;


/ /私は、古い名前とパスワードをエコー同じ理由のための新しい名前をエコー
" -$ n ewBand" )エコー;
/ /我々は、新しいバンド名が... 。 今の私たちは、 DBに挿入するために必要な情報buliding開始させてください...
$ = $ newBand memberName ;
$ = $ newBand realnameの; / /私は、本当の名前とメンバー名と同じに設定します。 場合は、希望のバンドに変更することができます
$メールアドレス= $ bandEmail ;
$ websiteUrl = $ bandWebsite ; / /以来私も、これらを入力してくださいかもしれないバンドウェブサイトがある
$ = $ newBand websiteTitle ;
$ = 1 is_activated ;
$ ID_POST_GROUP = 4 ;
($memberName).$realPassword); //Password must be encrypted $パスワード= SHA1をstrtolower ( $ memberName ) 。 $ realPassword ) ; / /パスワードを暗号化する必要があります

/ / SMFのデータベース内の同じ名前の確認はないメンバを作成します。 誤って2度入力してください私たちは誰もしたくない
$クエリ= "のSELECT *から" memberName 'のWHERE memberName = ' $ smf_members ;
("Config Error 2222343242b"); $結果= するmysql_query ( $クエリ) または死ぬ ( "設定エラー2222343242b " ) ;
$ nrows = mysql_num_rows ( $結果) ;

メンバー名が検出された場合は、 / /何もしない
$ nrows > 0 ) ( )の場合

他(

/ /場合は、フォーラムのユーザーは既に、署名されていませんこれを行うとしてメールを送信... 。
$クエリ= "挿入smf_members ( 、 、メールアドレス、 ID_POST_GROUP 、 websiteUrl passwdのは、 websiteTitle )の値( ' $ is_activated realnameのmemberName memberName ' 、 ' $ ' realnameを、 ' $ 'メールアドレス、 ' $ ' is_activated 、 ' $ ID_POST_GROUP ' 、 ' $パスワード' 、 ' $ ' websiteUrl 、 ' $ websiteTitle ' ) " ;

("Config Error 2232 "); $結果= するmysql_query ( $クエリ) または死ぬ ( "設定エラー2232 " ) ;

/ /これでは、バンドのメールを送信する必要がある
$ 〜 = $メールアドレス;
$件名= "あなたのフォーラムのユーザー名とパスワード" ;

/ /投稿者
$ヘッダー= "投稿者:ミー<me@mysite.com> " ;

/ /あなたのメッセージ
$メッセージ.= "あなたのログイン名とパスワードを次のとおりです。のいずれかをいつでも変更することができます。もし我々のフォーラムへの参加を望んでいないことに問題はない。ログインするだけで、それは何も今まで起こったことがないようにされる\研究です\ n " ;
$メッセージ.= "ユーザ名: $ memberNameパスワード: $ realPassword \研究です\ n " ;

/ /メールを送信
$送信済み= メール ( $ 、 $件名、メッセージ$ 、 $ヘッダー) ;
$送信済み)の場合

エコー ( " -はい! " ) ;
/ /これが私たちのエコーの最後の部分です。 は、 "はい! " メールを送信される場合にのみ印刷されます。 つまり、完全な印刷ライン以下のようになります:
/ /アダムスト-4 s6vsxag- Ad amStrife-はい!


手動で挿入する方法をユーザーには、 SMFのフォーラムにPHPを使う

SMFの( 簡単な機械フォーラム) 、 7月にShortLikeAFoxてPHPを28日、 2008年に投稿

この具体例1.1.5 SMFのです。 私は他のバージョンで動作することを保証することはできません。

だから、簡単な機械フォーラムソフトウェアを実行し、ユーザーが手動で入力するか? 大丈夫。 私はこの問題を非常に具体的だが、知っているのアイデアはここWordpressのフォーラムや他のデータベースなどのソフトウェアパッケージ駆動の他のタイプに適応させることができると説明した。 この操作を実行する前に、正確にどのようになる、シンプルなマシンを取る方法についてのフォーラムのユーザーの追跡を見てみよう。 は、 SMFのデータベースには、テーブルと呼ばれていますsmf_members 。 構造smf_membersこのようなものです:

競技場 種類 ヌル

債務不履行 エキストラ
ID_MEMBER はMEDIUMINT ( 8 )符号なし なし PRIに NULLを AUTO_INCREMENTの
memberName はvarchar ( 80 ) なし MUL
dateRegistered 内科( 10 )符号なし なし MUL 0
ポスト はMEDIUMINT ( 8 )符号なし なし MUL 0
ID_GROUP のsmallint ( 5 )符号なし なし MUL 0
lngfile tinytext なし MUL
lastLogin 内科( 10 )符号なし なし MUL 0
realnameの tinytext なし
instantMessages のsmallint ( 5 ) なし 0
unreadMessages のsmallint ( 5 ) なし 0
buddy_list テキスト なし
pm_ignore_list テキスト なし
messageLabels テキスト なし
passwdの はvarchar ( 64 ) なし
メールアドレス tinytext なし
personalText tinytext なし
はTINYINT ( 4 )符号なし なし 0
生年月日 日付 なし MUL 0001-01-01
websiteTitle tinytext なし
websiteUrl tinytext なし
場所 tinytext なし
アイシーキュー tinytext なし
AIMの はvarchar ( 16 ) なし
イム はvarchar ( 32 ) なし
MSNの tinytext なし
hideEmail はTINYINT ( 4 ) なし 0
showOnline はTINYINT ( 4 ) なし 1
timeFormat はvarchar ( 80 ) なし
署名 テキスト なし
timeOffset フロート なし 0
avatar tinytext なし
pm_email_notify はTINYINT ( 4 ) なし 0
karmaBad のsmallint ( 5 )符号なし なし 0
karmaGood のsmallint ( 5 )符号なし なし 0
usertitle tinytext なし
notifyAnnouncements はTINYINT ( 4 ) なし 1
notifyOnce はTINYINT ( 4 ) なし 1
notifySendBody はTINYINT ( 4 ) なし 0
notifyTypes はTINYINT ( 4 ) なし 2
memberIP tinytext なし
memberIP2 tinytext なし
secretQuestion tinytext なし
secretAnswer はvarchar ( 64 ) なし
ID_THEME はTINYINT ( 4 )符号なし なし 0
is_activated はTINYINT ( 3 )署名のない なし 1
validation_code はvarchar ( 10 ) なし
ID_MSG_LAST_VISIT 内科( 10 )符号なし なし 0
additionalGroups tinytext なし
smileySet はvarchar ( 48 ) なし
ID_POST_GROUP のsmallint ( 5 )符号なし なし MUL 0
totalTimeLoggedIn 内科( 10 )符号なし なし 0
passwordSalt varchar型( 5 ) なし

フィールド私たちに注意を払う必要があります:

  • memberName -自己E xplanitory。
  • dateRegistered -が必要とされていない場合は、日付を1 969年1 2月3 1日として表示されます登録に記入されていません。 タイムスタンプの日付をエポックとして保存されます。 あなたの頭の中でどのようにタイムスタンプを計算するのか分からないですか? 大丈夫。 私はここが見つかりました、フリー発生器を使用します。
  • realnameを-挿入される必要があります。 ときに私はここにmemberNameを繰り返すのか分からない
  • メールアドレス-自己E xplanitory。
  • メンバーを活性化されますので、手動 is_activated -1に設定する必要があります。
  • ID_POST_GROUP -私はうそをつくことはありません。 私はこの何なのか分かりませんが、常に4に設定しているようだ。 だから... 。 私はいつも4に設定します。 プログラムにしない最善の方法はどうするの?
  • passwdの-場合は、新しいユーザーのパスワードを付与する。 それは、 SMFのマニュアルを見ないで入力してくださいを理解することは不可能です。 適切なコードは、データベース用のSMFのパスワードを暗号化するためにこのようなものです:

($memberName).$password) $ passwdの= SHA1をstrtolower ( $ memberName ) 。 $パスワード)

コードの上の行では、 $パスワードは、ユーザーの実際のパスワードです。

その方法を:

/ /まず、 SMFのデータベースに接続

$ホスト= "ホスト名" ; / /ホスト名
$ユーザ名= "ユーザー名" ; / / MySQLユーザ名
$ mypassword = "パスワード" ; / / mysqlのパスワード
$ db_name = "ユーザー名" ; / /データベース名

("cannot connect to server"); "ホスト( " $ mysql_connect 、 " $ユーザ名" 、 " $ mypassword "は)または死ぬ ( "サーバーに" )を接続することはできません。
("cannot select DB"); mysql_select_db ( " $ db_name " ) または死ぬ ( " " ) DBを選択することはできません。

$ memberName = "アイアンマン" ;
$ realnameを= "トニースターク" ;
$メールアドレス= " ironMan@ironMan.com " ;
$ = 1 is_activated ;
$ ID_POST_GROUP = 4 ;

$パスワード= " Tony1234 " ;

($memberName).$password); $パスワード= SHA1をstrtolower ( $ memberName ) 。 $パスワード) ;

$ = 1216951200 dateRegistered ; / / 2008年7月25日午前2時

$クエリ= "に挿入、 、 ' $ 'メールアドレス、 ' $ ' is_activated 、 ' $ realnameの' ' $ memberName ' ( 、 、メールアドレス、 ID_POST_GROUP 、 dateRegistered passwdのis_activated realnameの) memberName値( ' $ smf_members ID_POST_GROUP ' 、 ' $パスワード' 、 ' $ dateRegistered ' ) " ;
("SMF Error 101.234 "); $結果= するmysql_query ( $クエリ) または死ぬ ( " SMFのエラー101.234 " ) ;

は、すべての設定は完了です!

サムネイル画像をどのように PHP を使用する

機能では、 ShortLikeAFoxてPHPを2008年7月22日投稿

そうすれば、与えられたイメージから、このタスクのサムネイルを作成する... PHPを簡単にします。 私は最初の画像をユーザーが私の管理に役立つサイトにアップロードさに対処するため、以下の機能を書いている。 このサイトにアップロードされた画像はJPEG 、 pngs 、またはGIFをので、すべての3つに対処するための関数を書く必要があったことができます。 このコードは、もともとは機能に基づいているwebcheatsheet.comで発見

その方法を:

関数 createThumbs ( $ pathToImages 、 $ fname 、 $ pathToThumbs 、 $ thumbWidth )

/拡張子/パースパス

$インフォメーション= PathInfoを ( $ pathToImages 。 $ fname ) ;
/ /継続する場合にのみ、これはJPEG画像です
($info['extension']) == ‘jpeg’) ) ( ( strtolower ( $場合インフォメーション[ '拡張子' ] ) == ' 'のjpg ) | | ( strtolower ( $インフォメーション[ '拡張子' ] ) == ' ' JPEG準拠) )

/ /読み込み画像や画像のサイズを取得
$スペース= ( " ( $ pathToImages ) ( $ fname" ) imagecreatefromjpeg ;
$幅= imagesx ( $スペース) ;
ドル高さ= imagesy ( $スペース) ;

/ /サムネイルのサイズを計算する
$ new_width = $ thumbWidth ;
$ new_height = ( $高さ* ( $ thumbWidth / $幅) ) ;

/ /新しい一時的なイメージを作成
$ tmp_img = imagecreatetruecolor ( $ new_width 、 $ new_height ) ;

/ /コピーしてサイズを変更する古いイメージを新しいイメージに
imagecopyresized ( $ tmp_img 、 $スペース、 0 、 0 、 0 、 0 、 $ new_width 、 $ new_height 、 $幅、ドル高さ) ;

/ /サムネイルをファイルに保存する
imagejpeg ( $ tmp_img 、 " ( $ pathToThumbs ) ( $ fname ) " ) ;

strtolower ( $場合インフォメーション[ '拡張子' ] ) == ' gif形式' )

/ /読み込み画像や画像のサイズを取得
$スペース= imagecreatefromgif ( " ( $ pathToImages ) ( $ fname ) " ) ;
$幅= imagesx ( $スペース) ;
ドル高さ= imagesy ( $スペース) ;

/ /サムネイルのサイズを計算する
$ new_width = $ thumbWidth ;
$ new_height = ( $高さ* ( $ thumbWidth / $幅) ) ;

/ /新しい一時的なイメージを作成
$ tmp_img = imagecreatetruecolor ( $ new_width 、 $ new_height ) ;

/ /コピーしてサイズを変更する古いイメージを新しいイメージに
imagecopyresized ( $ tmp_img 、 $スペース、 0 、 0 、 0 、 0 、 $ new_width 、 $ new_height 、 $幅、ドル高さ) ;

/ /サムネイルをファイルに保存する
imagegif ( $ tmp_img 、 " ( $ pathToThumbs ) ( $ fname ) " ) ;

strtolower ( $場合インフォメーション[ '拡張子' ] ) == ' PNG形式' )

/ /読み込み画像や画像のサイズを取得
$スペース= ( " ( $ pathToImages ) ( $ fname ) " ) imagecreatefrompng ;
$幅= imagesx ( $スペース) ;
ドル高さ= imagesy ( $スペース) ;

/ /サムネイルのサイズを計算する
$ new_width = $ thumbWidth ;
$ new_height = ( $高さ* ( $ thumbWidth / $幅) ) ;

/ /新しい一時的なイメージを作成
$ tmp_img = imagecreatetruecolor ( $ new_width 、 $ new_height ) ;

/ /コピーしてサイズを変更する古いイメージを新しいイメージに
imagecopyresized ( $ tmp_img 、 $スペース、 0 、 0 、 0 、 0 、 $ new_width 、 $ new_height 、 $幅、ドル高さ) ;

/ /サムネイルをファイルに保存する
imagepng ( $ tmp_img 、 " ( $ pathToThumbs ) ( $ fname ) " ) ;

どのように動作する

createThumbs 4つの関数の引数をとります。

  • $ pathToImages ->は、画像ファイルは、この: /ホーム/コンテンツ/ユーザ名/ H TML形式/一覧/アップロードのようなものに見えるかもしれませんがインチされているフォルダへのパス/
  • $ fname ->ファイル名: p ic1.gif、 j ohnny.jpg、等. ..
  • $ pathToThumbs ->を使用しないで人気のこのするサムネイル画像を目的のフォルダへのパスは、同じパスとして$ p athToImagesであることをしたいので、サムネイル画像は、元の画像と同じ名前があります。
  • $ thumbWidth ->の幅をピクセル単位でするサムネイルします。

重要なことに注意して作成してください私はここでは、この関数は、ファイル拡張子をチェックよりも、何も悪意のあるイメージファイルが含まれていることを確認し、他の場所には何もしている。 createThumbs以来のファイル( )が既にそのファイルを適切に精査されていると想定さアップロードされているで動作します。

まず最初にcreateThumbs ( )がコールPathInfoを( )です。 PathInfoを( )を配列には、パスの部分を破壊。 ので、適切にサムネイルを作成するファイルの拡張子が必要これは私たちに、便利です。 jpegファイルを扱っている場合は次のcreateThumbs ( )かどうかを確認してください。 場合は、元のファイルは、 JPEG createThumbsの新しい画像は、元の画像をimagecreatefromjpeg をベースに作成されます( ) 次のステップは、このイメージの幅と高さを得ることです( imagesx ( )imagesy ( ) ) とは、元の幅と高さの比率thumbWidth $ createThumbs ( )を使って、新しいサムネイルの幅と高さを設定します。 これらの新しい比率createThumbs ( )の使用法は、同じ幅とimagecreatetruecolor ( ) 。 imagecopyresized ( )は、画像のサイズを変更するに保存使用されているとのサムネイル の高さになる " "空の画像を作成する" "空白だけ作成。 imagecopyresized ( )のように思えるかもしれないが、パラメータの多くがかかっていない場合は、実際には、複雑されているマニュアルを見てください。 今は、真のカラー画像のサムネイルとして存在するすべてのcreateThumbsするために必要なファイルはJPEGに変換されています。 このimagejpegを行う( )と呼ばれています。

それはどのように機能JPEG画像のための作品だ。 そこに最小限の違いがある。 pngsと。 GIFを。


« Previous entries