PHP를위한 아카이브

어떻게 대량 이메일을 PHP를 사용 밖으로 보내기

PHP에서 ShortLikeAFox에 의해 9 월 2008 년 19 게시됨

그래서 대량 이메일을 보내거나 그 여러 개의 대량 이메일을 보내 신속하게 변경할 수있는 프로그램을 만들 싶어. PHP는이 쉽습니다. 이 예제에서는 특정 이메일을 보내 내가 당신에게 원하는 이메일 주소의 목록이 맡게된다. I will also assume that you are keeping this list in a database, but this code could easily be adjusted to use either a hardcoded email address list or list from another source.

<? PHP는

/ / 먼저 이메일 주소 정보가 포함된 데이터베이스에 연결합니다.
$ 사용자 = "사용자";
$ 호스트 = "호스트";
$ 비밀 번호 = "비밀 번호";
$ 데이터베이스 = "데이터베이스";

( "Couldn’t connect to server" ); cxn 달러 ($ 호스트, $ 사용자, $ 암호) mysql_connect = 아니면 죽음 ( "서버")에 연결할 수없습니다;
mysql_select_db ($ 데이터베이스);

해당 이메일 주소가 포함되어있습니다 / / 쿼리 테이블. 채워 자신만의 테이블 이름을 여기에 ...
$ 쿼리 = "선택 *에서 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 ($ 위해; $ i가 <$ nrows; $ 나 + +) (

$ 행 = mysql_fetch_assoc ($ 결과);
압축을 풉니다 ($ 행);
/ / 바꾸기 $ 이메일 주소의 어떤 이메일라는 칼럼
달러 = "$ 이메일";
/ / 각 이메일에 데이터베이스에서 이메일 보내기
만약 (메일 ($로, $ 제목, $ 메시지, $에서)) (

/ / 이메일의 이름을 인쇄가 성공적으로 보내졌다. I use this just to make sure that the program hasn’t frozen. 이론이 있음을 인쇄되는 이름의 꾸준한해야한다>

); ( "$에 메아리에 <br/>");

)

)




?>

코드의이 비트 () 함수는 PHP 메일의 이점을 취합니다. 이것은 아주 강력하고 기능을 사용하기 쉽습니다. 기억 그게 큰 힘에는 큰 책임이 따른다. 악마를 위해이 기능을 사용하지 않기로 봅니다.

| 댓글

어떻게 방문자가 어디에서 지리적으로 PHP를 사용하는

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

국가 : 미국

주 : 캘리포니아

도시 : 마리나 델 레이

| 댓글

여러 개의 이미지를 어떻게 하나의 이미지로 PHP를 사용 분열

함수에서, 2008년 8월 26일에 ShortLikeAFox으로 PHP를 게시됨

그래서 여러 개의 작은 이미지로 하나의 큰 이미지를 부러 뜨 리고 싶어? 문제 없어. 이것은 애매한 문제처럼 보이지만 당신은 이런 짓을 할만한 여러 이유가있다. 아마 당신은 시각적 슬라이딩 퍼즐을 만들려고합니다. 아니면 독특한 WordPress의 테마를 실행하고있습니다. 아니면 일종의 콜라주를 만들려고합니다. 정말 왜 작은 이미지로 이미지를 나누려고하지 않는 문제, PHP는이 작업을 쉽게합니다. 사진과 함께 아래의 예를 들어서만 다룹니다. 다른 종류의 이미지 처리 기능을 변경하면 어렵지 않을 것이다.

<? PHP는
/ /이 함수의 열 및 행 번호로 동일 크기의 이미지를 나눌 예정이다.
함수 split_image ($ number_of_rows, $ number_of_cols, $ path_to_image, $ file_name을) (

/ / $ number_of_rows = # 당신이 원하는 행;
/ / $ cols number_of_cols = # 당신이 원하는의
/ / $ path_to_image =는 이미지에서처럼 뭔가있는 폴더 : / 고향에 대한 경로 / 콘텐츠 / 사용자 / html과 / 목록 / 업로드 /
/ / $ file_name을 이미지의 = 파일 : archery.jpg, 등

/ 확장 / 구문 분석 경로
$file_name); $ 정보 = pathinfo ($ path_to_image. $ file_name을);

/ / 우리는 JPEG 처리되었는지 확인
($info[ 'extension' ]) == ‘jpg’ ) || ( strtolower ($info[ 'extension' ]) == ‘jpeg’ ) ){ ((strtolower ($ 만약 정보 [ '확장']) == 'jpg로) | | (strtolower ($ 정보 ['확장 ']) =='의 jpeg)) (

/ /로드 이미지 및 이미지 크기를 얻을
); $ 소스 = ( "($ path_to_image) ($ file_name을)") imagecreatefromjpeg;
$ 너비 = imagesx ($ 소스); / / 너비 찾기
$ 높이 = imagesy ($ 소스); / / 높이 찾기
$ segment_width = $ 너비 / $ number_of_cols; / / 개별 세그먼트의 넓이를 확인
$ segment_height = $ 높이 / $ number_of_rows; / / 개별 세그먼트의 높이를 확인

($ = 0; $ 대장균 <$ number_of_cols 대장균; $에 대한 대장균 + +)
(

행 = 0 ($ 위해; $ 행 <$ number_of_rows; $ 행 + +)
(

, $col, $row ); $ fn = sprintf ( "아무리 % 02d_ % 02d.jpg", $ 대장균, $ 행);
); //I print the image name here, so that the process shows itself as it runs ( "$ fn") 에코; / / 내가 여기, 그렇게 그 과정 그걸로 자신을 보여주는 이미지를 실행 이름을 인쇄
$ 메신저 = 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/$fn (imagejpeg ($ 메신저, "목적지를 여기에 삽입", 100)) / / 그 대상처럼 뭔가는 / home / 콘텐츠 / c를 / h / d를해야한다 / 이미지 / $ fn면

에코 ( "이 만들어지는 것입니다!에 <br/>");

)

)

)

)

?>

| 댓글

PHP 코드가 작동하는 방법을 포함하여 워드에 게시물

워드, 8 월 ShortLikeAFox로 PHP는 17 일, 2008 년 게시됨

그래서 당신이 원하는 당신의 WordPress의 블로그 게시물과 페이지에서 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 ($ 위해; $ i가 <100; $ 나 + +) (

; $ VariableName = "개는 $ i가";
$ $ VariableName = $ 난; / / 1, 2, 34, 등 34 개 $ $ $ dog1 세트 dog2 ....

)

지금의 당신이 모든 변수의 접근을 원한다고하자. 당신은 다음을 사용할 수있다 :

0 ; $i < 100 ; $i ++ ){= 0 ($ 위해; $ i가 <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

| 댓글

ISBN에 액세스하려면 어떻게 Intergrate 웹페이지 PHP를 사용하여

PHP에서 ShortLikeAFox에 의해 8 월 2008 년 12 게시됨

ISBN은 국제 표준 도서 번호 또는 개별 도서에 대한 정보를 찾는 데 사용될 수있는 유용한 식별자입니다. PHP는 그것을 행할 경우 만들어 귀하의 웹 애플 리케이션에 통합하려는 ISBN을 조회합니다.

1 단계 : ISBNdb.com 한 API는 사용자가 웹 주위의 ISBN 기록의 데이터베이스에 액세스할 수 있도록 만들었습니다. 여기에 자신 API의 설명입니다 :

ISBNdb.com '다른 웹사이트와 독립형 애플 리케이션에 원격으로 액세스할 수 있도록 설계된 애플 리케이션 프로그래밍 인터페이스 (API) ISBNdb.com에 의해 2003 년 이후 데이터 수집의 방대한 컬렉션을 사용합니다. 이 글을 쓰는 중, 2005 년 7 월으로서, 데이터의 도서를 포함 약 1,800,000; 거의 3000000000000 도서관 기록; 주변 100 만 과목; 저자 및 발행인의 기록 도서관 데이터의 분석 과정을 거치게 수십만; 천만 이상의 실제 기록과 역사 가격.

먼저. 회원으로 등록해야합니다이 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] -> BookData [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] -> BookData [0] -> 제목;
]->AuthorsText ; $ 저자 = $ xmldata -> 도서 [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ 발행인 = $ xmldata -> 도서 [0] -> BookData [0] -> PublisherText;

); ( "$ 제목에 <br/>") 에코;
); ( "$ 저자에 <br/>") 에코;
); (이하 "에코에 <br/> $ 발행인");

/ /이 예제는 지문 :
/ / 그 노인과 바다
/ / 어니스트 헤밍웨이
/ / 뉴 요크 : Scribner 페이퍼백 소설, 1995.

?>

| 댓글

PHP를 사용하는 이메일 주소를 확인하는 방법

PHP에서 ShortLikeAFox에 의해 8 월 2008 년 5 게시됨

이렇게하면 사용자의 이메일 주소의 확인이 필요 한가? 문제 없어. 이미 이메일 확인을 필요로하는 많은 이유들이있습니다, 그리고 PHP는 간단합니다.

이메일 확인 단계가 완료 될 수있다 :

  1. 당신이 그들에서 (자신의 이메일 주소를 포함한 필요한 모든 정보에 대한 사용자 프롬프트)
  2. 데이터베이스에이 데이터 입력
  3. 사용자가 특수 확인 키와 함께 이메일로 보내기
  4. 한번 확인 키 입력 ""데이터베이스에서 데이터를 해제한다.

어떻게 할 일 :

<? PHP는

/ / 먼저, 데이터베이스에 연결하자

$ user_name은 = "dbUserName";
$ 호스트 = "dbHost";
$ my_password = "dbPassword";
$ db_name = "DBNAME";

/ / 서버와 데이터베이스에 연결을 선택합니다.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); "호스트 ("$ mysql_connect, "$ user_name은", "$ my_password") 또는 죽을 ( "서버")에 연결할 수없습니다;
) or die ( "cannot select DB" ); mysql_select_db ( "$ db_name") 또는 죽을 ( "") DB를 선택할 수없습니다;

만약 사용자가 양식이 있어야 / / 그 다음 줄을 표시는 기본적으로 묻습니다. 읽어 내려 조금 원한다면 변수는 어디에서 와서보고

(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ 만약 (! (@에 $ _GET [ '처음'] == "아니오") & &! (@에 $ _GET [ '확인'] == "예") (
/ / 이후로 이번이 첫 페이지를 표시하고 확인 코드는 우리가 밖으로 채우도록 사용자에 대한 양식을 표시해야한다 포함되어있습니다
/ /이 양식은 오직 하나의 인자 (사용자의 이메일 주소)이 걸립니다.
?>

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

<표 align="center">
<tr>
<td>
type= "text" id= "email" size= "30" /> 메일 : <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
/ / 모든 것이 더 많거나 적은 데이터베이스에 입력하고 다음 사용자에게 이메일을 보내 확인됩니다
$ 쿼리 = "삽입 INTO를 emailConfirmationTable (con_code) user_email 값 ( '$ 이메일', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 오류 2223");
/ / 이메일 보내기
달러 = $ 이메일;
$ 주제 = "당신 shortlikeafox 예를 확인"; / /부터
$ 헤더 = "에서 : shortlikeafox <info@shortlikeafox.com>";
/ / 귀하의 메시지
$ 메시지 = "당신 Comfirmation 링크!에 \ r \ n";
$ 메시지 .= "이 링크를 클릭하여 계정을 활성화에 \ r \ n";
미확인 이메일 때마다 나는 청소 같은 느낌이 만료 메시지 달러 .= "이 링크 (매주 또는 그래서)에 \ r \ n";
$ 메시지 .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE에 \ r \ n";
$ 보냄 = 메일 ($, $ 제목, $ 메시지, $ 헤더);

); ( "확인 이메일을 보냈습니다 야호!");

)

)
/ / 만약 사용자가 자신의 이메일에있는 링크에서 해당 스크립트 그걸 확인 찾았을 때 ....
[ 'confirm' ] == "yes" ){ 이 elseif (@에 $ _GET [ '확인] == "예") (
/ / confirmCode 상대적으로 사용하는 것이 안전합니다

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

$ 쿼리 = "선택 * 곳에서 con_code = '$ emailConfirmationTable confirmCode'과 is_confirmed = '0 '";
( "Error 234234" ); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "오류 234234");
$ nrows = mysql_num_rows ($ 결과);
1){ ($ nrows == 1) (면
$ 쿼리 = "업데이트 emailConfirmationTable의 SET is_confirmed = '1 '은 어디 con_code ='$ confirmCode '";
( "Config Error 222231231233 " ); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 이천이백이십이억삼천백이십삼만천이백서른세 오류");
($ 결과)
); 에코 ( "이메일을 확인했다!");

)
그 밖의

); ( "") 이메일을 확인할 수없습니다 에코;

)

?>

아주 정보의 유효성을 기억하는 것이 중요합니다 그 어떤 형태로든 사용자 삽입합니다. 네,하지만 위의 이메일 주소를 검증하기위한 기능이 포함되지 않았다를 시작하기 좋은 곳이 칼 헨더슨의 이메일 유효성 검사 기능입니다 여기서 발견했다.

이 스크립트를보고 싶은 경우에는 동작에서, 그렇게 이곳에서 할 수있습니다.

| 댓글

수동으로 삽입하는 방법을 그룹 사용자의 포럼 SMF로 PHP를 사용하는

SMF (간단한 기계 포럼), 7 월 ShortLikeAFox으로 PHP는 30 일, 2008 년 게시됨

이 입문서는 당신이 내 게시물에 익숙한 : 수동으로 삽입하는 방법 PHP를 사용하여 사용자에게 SMF 포럼.

최근 800 또는 정말 감동적의 도전에 직면 한 SMF 포럼에 데이터베이스에서 밴드. 문제가 움직일 때 그 첫 번째 게시물에 커버하지 않았어 만드는 몇 직면 :

  1. 밴드 이름은 캐릭터를 이동하여 문자에 대한 SMF 데이터베이스에 안전하게 보장되지 않았다. 그래서 이름이 일종의 함수를 수정 고용해야했다.
  2. 밴드의 비밀 번호가 필요하지 않습니다. 그래서 비밀 번호 세대의 일부 유형을 필요로 채용된다.

나는 모든 포럼에 들어간 밴드의 등록이 같은 약간 갔었 단계 :

밴드 데이터베이스 열기

(밴드) (

생성 비밀 번호

밴드 이름 바꾸기 "안전한"이름을 가진

사용자 삽입하는 데 필요한 정보를 잡아 생성

삽입 밴드로 smf_members

밴드 비밀 번호가 포함된 이메일을 보내기

)

유용한 정보가 포함되어 있던 밴드가 데이터베이스 :에서 제공했다, bandEmail, bandName과 bandWebsite

여기서 내가 사용한 비밀 번호를 생성 함수입니다 (blatently totallyphp.co.uk에서) :

함수 createRandomPassword () (

$ 문자 = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand (() microtime 두 번 () * 1000000);

$ i가 = 0;

$ = "패스;



($ 동안 <= 7) (

33; $ NUM 개의 = 랜드 () % 33;

$ tmp를 = substr ($ 문자, $ num과, 1);

$ 통과 = $ 패스. $ tmp를;

$ i가 + +;

)

$ 리턴 패스;

)

비밀 번호를 여기에 상대적으로 약한 만들어지만, 내 목적을 위해 충분히 좋다. 어떤 비밀 번호가 생성 기능을 여기서 잘 작동했다. 만약 그들이 그것을 변경하지 않기로에 대한 기억하고 있기 때문에 쉽게 그릴 수있을 것이다 회원이 하나를 선택했다.

어떻게해야 할지를 :

/ / 처음에는 밴드가 데이터베이스에 연결
$ 사용자 = "bandUsername";
$ 호스트 = "bandHost";
$ mypassword는 = "bandPassword";
$ db_name = "bandDatabase";

("cannot connect to server"); "호스트 ("$ mysql_connect, "$ username"을, "$ mypassword"는) 또는 죽을 ( "서버")에 연결할 수없습니다;
("cannot select DB"); mysql_select_db ( "$ db_name") 또는 죽을 ( "") DB를 선택할 수없습니다;

/ / 이제 데이터베이스에서 모든 밴드의 잡아
$ 쿼리 = "선택 *에서 allBands";
$ 밴드 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 오류 2222b");
$ userRows = mysql_num_rows ($ 밴드);

/ / 이제 smf DB를 연결할 수있습니다
$ 호스트 = "smfhost"; / / 호스트 이름
$ 사용자 = "smfuser; / / mysql의 사용자
$ mypassword는 = "smfpassword"; / / mysql의 비밀 번호
$ db_name = "smfdatabase"; / / 데이터베이스 이름

("cannot connect to server"); "호스트 ("$ mysql_connect, "$ username"을, "$ 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 ($ 위해; $ i가 <$ userRows; $ 나 + +) (

($bands)){ ($면 행 = mysql_fetch_assoc ($ 밴드)) (

/ / 압축을 풉니다 밴드 정보
압축을 풉니다 ($ 행);
/ / 그 밴드에 대한 암호 만들기
$ realPassword = createRandomPassword ();
/ / 난 내 디버깅의 일환으로하고 bandname 이름과 비밀 번호를 메아리로 작동을 선택해서 볼 수있는 기능
에코 ( "에 <br/> bandName 달러 - $ realPassword");
$ newBand = "";
밴드 이름에 우리 valid_chars 경우 $에서 유효한 문자가 일치를 볼 건데 각 문자 / / 들어있다. 그건 우리가 없애려고하지 않는 밴드 이름을 잘라야
($bandName); $j ++ ){ ($있는 j = 0; $ j를 <나 strlen ($ bandName); $ j를 + +) (위한

($band[$j])); $ 임시직 = str_replace ($ valid_chars, "X"가, strtolower ($ 밴드 [$ j를]));
($ 만약 온도 == "X"가)

$ = $ newBand newBand. $ 밴드 [$ j를];

)
/ / 난 내가 옛날 이름과 비밀 번호를 메아리 같은 이유로 새 이름을 메아리
( "- $ newBand") 에코;
/ / 우리는 새로운 밴드 이름이 .... 지금 우리가 DB에 삽입하는 데 필요한 정보를 buliding 시작하자 ...
$ = $ newBand 이용자;
$ = $ newBand realname; / / 내가 진짜 이름과 회원 이름 같은 설정합니다. 만약 그들이 원하는 대역을 변경할 수있습니다
$ emailAddress = $ bandEmail;
$ websiteUrl = $ bandWebsite; / / 이후로 난 그들을 입력할 수도있습니다뿐만 아니라 밴드의 '웹사이트가
$ = $ newBand websiteTitle;
$ = 1 is_activated;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ 비밀 번호 = sha1 (strtolower ($ 이용자). $ realPassword); / / 비밀 번호는 암호화되어야합니다

/ / SMF 데이터베이스에 동일한 이름을 가진 확신을 못하므로 회원 확인합니다. 우리가 실수로 사람을 두 번 입력하고 싶지 않아
$ 쿼리 = "선택 *에서"이용자의 '어디로 이용자 ='$ smf_members;
("Config Error 2222343242b"); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 오류 2222343242b");
$ nrows = mysql_num_rows ($ 결과);

회원의 이름을 찾을 수있다면 / / 아무것도하지
($ nrows> 0) ()

다른 (

/ / 만약 사용자가 이미 포럼에 대한이므로 가입하지 않으면 이메일을 보내주십시오 ....
$ 쿼리 = "삽입 INTO를 smf_members (,, emailAddress, ID_POST_GROUP, websiteUrl passwd, websiteTitle) 값 ( '$ is_activated realname 이용자의 이용자', '$'realname, '$'emailAddress, '$'is_activated, '$ ID_POST_GROUP' , '$ 비밀 번호', '$'websiteUrl, '$ websiteTitle') ";

("Config Error 2232 "); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 오류 2232");

/ / 이제 우리는 이메일을 보낼 필요 밴드
달러 = $ emailAddress;
$ 주제 = "당신의 포럼에 사용자 이름과 비밀 번호";

/ /부터
$ 헤더 = "에서 : 나와 <me@mysite.com>";

/ / 귀하의 메시지
$ 메시지 .= "귀하의 로그인 및 비밀 번호를 아래에 나열되어있습니다. 당신도 언제든지 변경할 수있습니다. 만약 여러분이 포럼에 참여하고 싶지 않아, 아무 문제 없어요. 그냥 로그 인한 적이 그리고 아무 일도 일어나지 않은 것처럼 될 것입니다 .에 \ r \ n ";
$ 메시지 .= "아이디 : $ 이용자의 비밀 번호 : $ realPassword에 \ r \ n";

/ / 이메일을 보내
$ 보냄 = 메일 ($, $ 제목, $ 메시지, $ 헤더);
($ 보냄)

에코 ( "- 네!");
/ / 이것이 우리 에코의 마지막 부분입니다. "- 예!" 이메일을 보낸 경우에만 인쇄됩니다. 그래서 전체 출력물 라인을 이런식으로 생겼을 것이다 :
/ / 아담 증오 - 4s6vsxag - AdamStrife - 그래!

)

)
)

| 댓글

수동으로 삽입하는 방법을 사용자에게 SMF 포럼에 PHP를 사용하는

SMF (간단한 기계 포럼), 7 월 ShortLikeAFox으로 PHP는 28 일, 2008 년 게시됨

이 구체적인 예를 SMF 1.1.5입니다. 나도 다른 버전과 함께 작동하지 않을 수도있습니다.

그래서 간단한 기계 포럼 소프트웨어를 실행하고 수동으로 사용자가 입력하고 싶어? 문제 없어. 저는이 문제를 매우 구체적인 것 같지만 알고있는 아이디어를 여기 Wordpress 포럼과 다른 데이터베이스와 같은 소프트웨어 패키지를 구동의 다른 유형에 적응이 될 수 있다고 설명했다. 전에 우리가 정확히이 일을 어떻게 들어가, 간단한 기계를 어떻게 사용자의 추적 포럼에서 살펴 봅시다. the SMF 데이터베이스에서는 테이블이라고합니다 smf_members. 구조 smf_members 이렇게 보입니다 :

유형 계열

열쇠 기본값 추가
ID_MEMBER mediumint (8) 서명 북서 PRI NULL은 auto_increment
이용자 varchar (80) 북서 MUL
dateRegistered int (10) 서명 북서 MUL 0
게시물 mediumint (8) 서명 북서 MUL 0
ID_GROUP smallint (5) 서명 북서 MUL 0
lngfile tinytext 북서 MUL
lastLogin int (10) 서명 북서 MUL 0
realname tinytext 북서
instantMessages smallint (5) 북서 0
unreadMessages smallint (5) 북서 0
buddy_list 텍스트 북서
pm_ignore_list 텍스트 북서
messageLabels 텍스트 북서
passwd varchar (64) 북서
emailAddress tinytext 북서
personalText tinytext 북서
성별 tinyint (4) 서명 북서 0
생년월일 날짜 북서 MUL 0001-01-01
websiteTitle tinytext 북서
websiteUrl tinytext 북서
위치 tinytext 북서
ICQ tinytext 북서
AIM에 varchar (16) 북서
varchar (32) 북서
MSN 친구 tinytext 북서
hideEmail tinyint (4) 북서 0
showOnline tinyint (4) 북서 1
timeFormat varchar (80) 북서
서명 텍스트 북서
timeOffset 플로트 북서 0
아바타 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 int (10) 서명 북서 0
additionalGroups tinytext 북서
smileySet varchar (48) 북서
ID_POST_GROUP smallint (5) 서명 북서 MUL 0
totalTimeLoggedIn int (10) 서명 북서 0
passwordSalt varchar (5) 북서

필드는 우리에게 관심을 지불할 필요 :

  • 이용자 - 셀프 Explanitory.
  • dateRegistered -하지만, 필요하지 않는 경우 날짜를 기입하여 등록 1969년 12월 31일으로 표시됩니다. 날짜 획기적인 타임 스탬프로 저장됩니다. 네 머리에 타임 스탬프를 계산하는 방법을 아세요? 문제 없어. 내가 여기서 발견 무료 발전기를 사용합니다.
  • realname - 삽입해야한다. 여기를 반복했을 때 난 그저 이용자 모르겠어요.
  • emailAddress - 셀프 Explanitory.
  • 이후 멤버를 수동으로 활성화하는 is_activated - 1로 설정해야합니다.
  • ID_POST_GROUP - 난 거짓말하지 않습니다. 난이 무엇인지 확실 하진 않지만, 항상 4로 설정하고있는 것 같다. 그래서 .... 난 항상 4로 설정합니다. 프로그램에 가장 좋은 방법은 아니지만, 어떻게 할 수 있나요?
  • passwd - 비밀 번호는 당신이 새로운 사용자주고 싶어. SMF 설명서를 어떻게보고있는지를 알아낼 입력없이는 불가능하다. 올바른 코드는 데이터베이스에 대한 SMF 비밀 번호를 암호화하는 방법이 이렇게 보입니다 :

($memberName).$password) $ passwd = sha1 (strtolower ($ 이용자). $ 암호)

코드의 위에 라인에서 $ 암호는 사용자의 실제 암호입니다.

어떻게해야 할지를 :

/ / 먼저, SMF 데이터베이스에 연결

$ 호스트 = "호스트명"; / / 호스트 이름
$ 사용자 = "사용자"; / / mysql의 사용자
$ mypassword는 = "암호"; / / mysql의 비밀 번호
$ db_name = "사용자"; / / 데이터베이스 이름

("cannot connect to server"); "호스트 ("$ mysql_connect, "$ username"을, "$ mypassword"는) 또는 죽을 ( "서버")에 연결할 수없습니다;
("cannot select DB"); mysql_select_db (이하 "$ db_name") 또는 죽을 ( "") DB를 선택할 수없습니다;

$ 이용자 = "아이언맨";
$ realname = "토니 스탁";
$ emailAddress = "ironMan@ironMan.com";
$ = 1 is_activated;
$ ID_POST_GROUP = 3;

$ 비밀 번호 = "Tony1234";

($memberName).$password); $ 비밀 번호 = sha1 (strtolower ($ 이용자). $ 암호);

$ = 1,216,951,200 dateRegistered; / / 2008년 7월 25일 오전 2시

$ 쿼리 = "삽입으로, '$'emailAddress, '$'is_activated, '$ realname', '$ 이용자'(,, emailAddress, ID_POST_GROUP, dateRegistered passwd is_activated realname) 이용자의 값 ( '$ smf_members ID_POST_GROUP', ' $ 비밀 번호 ','$ dateRegistered ') ";
("SMF Error 101.234 "); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "SMF 오류 101.234");

그 모든 것들이 그것입니다!

| 댓글

축소판 이미지가 어떻게 PHP를 사용하게

기능에, ShortLikeAFox에 의해 PHP를 2008년 7월 22일에 게시됨

그래서 당신은 주어진 이미지에서 축소판을 만드는 ... PHP는이 작업을 쉽게 싶어요. 내가 먼저 이미지를 관리할 수 있도록 사용자에 의해 전 사이트에 업로드를 다루는 아래의 함수를 썼다. 이 사이트에 업로드된 이미지 사진, pngs, 또는 GIF를, 그래서 셋 모두를 다루는 함수를 작성해야만했다 수있습니다. 이 코드는 원래 함수의 기반 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 -> 이미지 파일이 : / 가정 / 콘텐츠 / 사용자 / html과 / 목록 / 업로드처럼 보입니 다만 뭔가 들어있는 폴더의 경로는 /
  • $ fname -> 파일 이름 : pic1.gif, johnny.jpg, 등등 ...
  • $ pathToThumbs -> 당신은 당신은 믿나요되고 섬네일 이미지를 원하는 폴더 경로는 같은 경로로 달러가 될 pathToImages이 원하는 썸네일 이미지 때문에 원래의 이미지로 동일한 이름을 사용해야한다.
  • $ thumbWidth ->의 너비를 픽셀에있을 축소판 싶어요.

중요한 유념해야한다 여기서는이 기능, 파일 확장자를 확인하기보다, 그 이미지 파일을 전혀 악의가 포함되어 있는지 확인하는 다른 장소에서 아무 것도있다. 파일 createThumbs 이후 ()은 이미 그것을 따르고왔다 추정된다 업로드된 파일이 제대로 작동되었습니다.

제일 먼저 할 일이 createThumbs ()가 호출 pathinfo ()입니다. pathinfo () 배열로 경로의 부분이 나옵니다. 우리가 제대로 축소판을 만드는 파일의 확장자를해야이 우리에게 유용합니다. 만약 우리가 다루고있는 다음의 jpeg createThumbs () 수표를 볼 수있습니다. 원본 파일을 JPEG createThumbs있다면 새 이미지를 원래 이미지에 imagecreatefromjpeg 기반으로 만들어집니다 (). 다음 단계는이 이미지의 너비와 높이를 얻는 것도 한 방법이다 (imagesx (), imagesy ()). 그리고 원래의 너비와 높이 createThumbs의 비율 thumbWidth 달러 () 함수를 사용 축소판의 새로운 너비와 높이를 설정합니다. 이러한 새로운 createThumbs 사용 비율 ()은 같은 너비와 imagecreatetruecolor (). imagecopyresized () 이미지의 크기를하고 저장하는 데 사용됩니다 함께 축소판의 높이가 될 것이다 ""빈 이미지를 만들어 ""방금 만든 빈. imagecopyresized ()처럼 보이지만 변수가 많이 걸린다면 정말 그렇게 복잡하지되는 설명서를 한번보세요. 이제 진정한 색깔 섬네일 이미지가 모든 createThumbs으로 존재 할 필요는 JPEG로 파일을 변환입니다. 이 imagejpeg 할려면 ()이라고합니다.

그 기능은 사진을 위해 일하는 방법. 거기에 대한 최소한의 차이가있습니다. pngs. GIF를했다.


« Previous entries