ランダムな画像表示し入力しないと送信できないフォームメール

英文字と数字で構成されるランダムな画像を表示し、その内容を入力しないと送信できないフォームメールのPHPです。この程度の簡単なPHPでも作成に困る方もおられるでしょうから、PHPコードを全て公表しておきます。

設置ページは、当社のHP制作申込用のページです。

(注)
一体全体何故、たかだか、単なるHP制作申込用のページにランダムな画像を表示し、その内容を入力しないと送信できないフォームメールを設置せざるを得なかったのかについては、この日のブログ記事をご覧ください。
ロシア人のバカが、弊社の問い合わせ用ページに、自動書き込みのスパムを行い、それがHP制作申込用のページにまで及んできつつありましたので、設置しました。問い合わせ用ページでは、英文字と数字からなるランダムな画像を表示し、その内容を入力しないと送信できないフォームメールでは、問い合わせが減る可能性がかなり大きいので、やむやく、一度送信したIPアドレスからは、受信拒否するPHPコードを設置しています。これについても、内容を完全に公表していますので、合わせてご覧ください。

以下が、PHPコードの全文です

@formmail.phpのコード全文

mb_language('Japanese');
mb_internal_encoding('Shift_Jis');
mb_http_output('Shift_Jis');
$namae=$_POST["name"];
$company=$_POST["company"];
$phone=$_POST["phone"];
$url=$_POST["url"];
$pattern=$_POST["pattern"];
$adress2=$_POST["adress2"];
$mail=$_POST["mail"];
$contents=$_POST["contents"];

$kazutomoji=$_POST["kazutomoji"];

$ファイル名=
str_shuffle('AaBbCcDdEeFfGgHhIiJjKkLl MmNnOoPpQqRrSsTtUuVvWwXxYyZz');

$ファイル名2=substr($ファイル名,-3, 1);
$ファイル名3=substr($ファイル名,-24, 1);

$kazu=rand(1, 9);
$kazu2=rand(1, 9);

$waku = imagecreate( 60, 30 );
$background = imagecolorallocate( $waku, 195, 195, 195 );
$text_colour = imagecolorallocate($waku, 0, 0, 0 );

imagestring( $waku, 8, 8, 8, $ファイル名2.$kazu.$ファイル名3.$kazu2, $text_colour );
imagesetthickness ( $waku, 9 );


imagepng( $waku);


imagedestroy( $waku);

$html_source3 = file_get_contents("http://www.hpcreating.com/apply/ファイル名.txt");
$domain3 = substr ( $html_source3, 0,6000000);
$aliases3 = mb_detect_encoding ($html_source3);
$mojibake3= mb_convert_encoding($domain3, "shift_jis", $aliases3);//53ここまでが検索対象でmb変換済み


if (empty($namae))
{echo "<br><br><br><br><br><br><span style='color:red;font-size:25px;'>名前を記入してください</span><br>";}


else
{if (empty($adress2))

{echo "<br><br><br><br><br><br><span style='color:red;font-size:25px;'>住所/所在地を記入してください</span><br>";}


else
{if (empty($mail))
{echo "<br><br><br><br><br><br><span style='color:red;font-size:25px;'>メールアドレスを記入してください</span><br>";}
else
{if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$mail))
{echo "<br><br><br><br><br><br><span style='color:red;font-size:25px;'>正しい形式でメールアドレスを記入してください</span><br>";}


else
{

if (!($kazutomoji===$mojibake3))
{echo "<br><br><br><br><br><br><div class='honbun'><span style='color:red;font-size:25px;'>お手数ですが、元に戻り表示される英文字と数字を入力の上、クリックしてください<br><br>
その際、@正しい英文字・数字を記入してください<br><br>英文字は、大文字・小文字を区別します。
<br><br>(例:xとXを区別しますので、表示される画像をよくご覧ください。英文字が数字より小さければ、小文字です)<br><br>
Aわかりにくければ、再読み込みボタンクリックして、他の英文字を表示してください</span></div><br><br>";}


else {
mb_language("Ja") ;
mb_internal_encoding("Shift_Jis") ;
$mailto="contact@hpcreating.com";

$subject="サイト制作申し込み";
$content="名前:$namae\n会社名・団体名:$company\n住所:$adress2\nメールアドレス:$mail\n制作コース:$pattern\n既存ホームページ:$url\n特記事項:$contents";
$headers =$mail;
mb_send_mail($mailto,$subject,$content, $headers);




echo "<br><br><br><br><br><br><div class='honbun'><span style='color:#0000ff;font-size:20px;'>申し込みありがとうございます。3営業日以内に連絡申し上げます</span></div><br>";

}}}}}

Aimages.phpのコード全文

$ファイル名=str_shuffle('AaBbCcDdEeFfGgHhIi
JjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz');

$ファイル名2=substr($ファイル名,-3, 1);
$ファイル名3=substr($ファイル名,-24, 1);

$kazu=rand(1, 9);
$kazu2=rand(1, 9);

$waku = imagecreate( 60, 30 );
$background = imagecolorallocate( $waku, 195, 195, 195 );
$text_colour = imagecolorallocate($waku, 0, 0, 0 );

imagestring( $waku, 8, 8, 8, $ファイル名2.$kazu.$ファイル名3.$kazu2, $text_colour );
imagesetthickness ( $waku, 9 );

header( "Content-type: image/png" );
imagepng( $waku);

imagecolordeallocate( $text_color );
imagecolordeallocate( $background );
imagedestroy( $waku);



$fp = fopen("ファイル名.txt", "w");
fwrite($fp, $ファイル名2.$kazu.$ファイル名.$kazu2);
fclose($fp);

多少解説しておきます。

バカらしいほど簡単です。

1.まず、images.phpでよく見るような、英文字と数字を組み合わせ、ページの読み込みごとにランダムに表示内容が変わる画像用のPHPコードを入れています。

2.次に、images.php中で、ファイル名.txtに同じ英文字と数字を組み合わせを上書きモードで書き込みます

3.formmail.phpでは、file_gets_contents関数で、ファイル名.txtの内容を取得し、一致しない場合には、送信できないPHPコードをいれます()

4.ところが、そのままですとPHPで変な表示がでますので、CSSでbodyのmargin-top:-20px;として、表示されないようにしています。(ソースで見ると当然表示されています。外そうとしましたが、面倒なので、CSSで対応しました)

[このブログは、読む人は、ほとんどいませんが、広告のつもりです。]

ウェブ制作会社の代表者様

PHP外注しませんか?格安費用で承ります。試しに、この程度の非常に簡単なPHP作成を従業員に命じてみてください。

1時間ででできなければ、当方に外注頂く方が絶対にコスト削減になります。迅速・格安で制作します。

デザイン担当のPHP勉強中の女性従業員であれば、半日もかかるかもしれません。無駄ではないでしょうか?。




2017年
12月
     12
3456789
10111213141516
17181920212223
24252627282930
31