ホームページ  >  記事  >  バックエンド開発  >  PHPで検証コードを作成する場合、パラメータの役割は何ですか?

PHPで検証コードを作成する場合、パラメータの役割は何ですか?

WBOY
WBOYオリジナル
2016-06-23 14:16:40962ブラウズ

PHP 検証コード $_POST[]


for($i=0;$i<$num;$i++){ 	$x=rand(1,8)+$imagewidth*$i/4;	$y=rand(1,$imageheight/4);	$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255)); // 生成随机颜色 	$authnum=rand(1,9); 	$vcodes.=$authnum; 	imagestring($im, 15, $x, $y, $authnum, $font); } 

このループ文では、$num の役割は何ですか?

imagestring() 関数は、画像に数字を追加します。 $num は間違いなく画像に追加される数字の数を制限するために使用されていると思います
しかし、$num=4、$num=15 または他の数字を変更しても、画像には 4 文字が表示されます。

また、login?id=2&value=3 など、post と get で渡されるパラメータについて少し質問したいと思います。
$_POST または $_GET で ID と値を取得した後、 id と value は整数です。これは文字です。

もう検証したくない、面倒なのでアドバイスお願いします! ! !

ディスカッションへの返信 (解決策)

最初の質問 $num=2 を使用してみてはいかがですか?
$x の計算方法では 4 つの数字しか表示されません

2 番目の質問質問: 文字か整数かわかりませんが、文字としても整数としても使えるのが PHP の魅力です

最初をご覧ください。 1 階


2 番目の文字列

あなた 画像の幅と高さはすでに固定されています。 。 。

もう一度見てください:

最初の質問です。$num=2 を使用してみてはいかがですか?
$x の計算方法では 4 つの数字しか表示されません

2 番目の質問: 私もです。それが文字なのか整数なのかはわかりませんが、文字としても整数としても使用できるのが PHP の魅力です
$num<4 を変更した後に変更が発生しました。 、しかし、$x 制限の詳細を教えていただけますか?

$x=rand(1,8)+$imagewidth*$i/4;

書き順を調整するとわかりやすくなります
$x = $imagewidth / 4 * $i + rand(1,8);
ここで:
$imagewidth / 4 キャンバスの幅を 4 つのポイントに分割します
$imagewidth / 4 * $i キャンバス上の $i 番目の文字の開始位置
rand(1,8) 開始位置を数ポイントオフセット

文字数が 4 文字を超える場合、制限はありませんが、計算された位置はキャンバスの外になります。描画はダメ

$x=rand(1,8)+$imagewidth*$i/4;

書き順を調整すればスッキリ
$x = $imagewidth / 4 * $i + rand(1,8) );
その中には:
$imagewidth / 4 キャンバスの幅を 4 つのポイントに分割します
$imagewidth / 4 * $i キャンバス上の $i 番目の文字の開始位置
rand(1,8)開始位置をオフセット方向に数ポイント移動します

文字数が4を超える場合、制限はありませんが、計算された位置はキャンバスの外になります。全て無駄です

少しは理解できたような気がしますが、お聞きしたいのですが、生成されたランダムコードに文字や数字を含めたい場合は、どのように書き換えればよいのでしょうか?
アドバイスをいただければ幸いです

$x=rand(1,8)+$imagewidth*$i/4;
書き順を調整するとわかりやすくなります
$x = $imagewidth / 4 * $ i + rand(1, 8);
その中には:
$imagewidth / 4 キャンバスの幅を 4 つのポイントに分割します
$imagewidth / 4 * $i キャンバス上の $i 番目の文字の開始位置
rand (1,8) 開始位置を に移動させます。 オフセット点がいくつかあります

文字数が 4 文字を超える場合、制限はありませんが、計算された位置はキャンバスの外になります。全て無駄です

少しは理解できたような気がしますが、お聞きしたいのですが、生成されたランダムコードに文字や数字を含めたい場合は、どのように書き換えればよいのでしょうか?
アドバイスをいただければ幸いです

真剣に、上記をすでに理解しているのであれば、imagestring のいくつかのパラメータを見るだけでこの問題を理解できるはずです

imagestring() の 5 番目のパラメータは、何を書き込むかを指定することです

最初に $str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" を思いつきます
それから毎回ランダムに単語を取り出してください

そうですか
最初の質問は、まだ 4 つの数字ですか? $x の計算方法は、4 つの数字しか表示できないことを意味します

2 番目の質問は、文字か整数かわかりません。専門家の回答を楽しみにしていますが、文字または整数として使用できます。これが PHP の魅力です
世界中の人々を代表して感謝したいと思います。 。 。 、すぐにポイントを付与! !

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。