ありがとうございます。 英字を入力して試してみました。 「sub yomi」は通っているようですがそのまま行ってしまいました。 以下内容です。 ご教授の程宜しく御願い致します。 ================================= if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$buffer,$ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } if ($buffer eq "") { &error('エラー','使い方が間違っています.'); } @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; &jcode'convert(*value,'euc'); # &jcode'convert(*value,'sjis'); $value =~ s/
/g; $value =~ s/\r//g; $value =~ s/\t//g; $value =~ s/\,//g; $FORM{$name} = $value; } #入力チェック $FORM{'q01'} =~ s/ //g; $FORM{'q01'} =~ s/ //g; if ($FORM{'q01'} eq "") { &error('入力エラー','氏名が入力されてません。'); } $FORM{'q02'} =~ s/ //g; $FORM{'q02'} =~ s/ //g; $yomi = $FORM{'q02'}; $error = "名前の読みはひらがなだけです。" if (&yomi($yomigana) == 0); if ($FORM{'q02'} eq "") { &error('入力エラー','ふりがなが入力されてません。'); } ・ ・ ・ ・ ・ sub yomi{ local($yomi) = @_; jcode::convert(*yomi,"euc"); @name = unpack ('C*',$yomi); while ($line = $name[$y++]){ if ($y % 2){ $line == 164 or return 0; }else{ ($line <= 243 and $line >= 161) or return 0; } } return 1; } ==================================</=>
#1159(海豚氏)の書き込みを引用します: >凄い雪ですね! >#1158(水原麗名とも呼ばれる人氏)の書き込みを引用します: >>昔私がやったときは「名前の読み方を入力」でした。 >> >>@name = unpack ('C*',$name); >>while ($line = $name[$y++]){ >> if ($y % 2){ >> $line == 164 or return 0; >> }else{ >> ($line <= 243 and $line >= 161) or return 0; >> } >>} >>return 1; >>文字コードをEUCに変換してからここに渡すとひらがな以外があると0を返します。 > >ありがとうございます。 >私も、「名前の読み方を入力」を使用しようとしています。 >でも私には難しすぎるのですが・・・。 >上記のようにそのまま入れたらエラーになってしまいました何故でしょう? >と言っても分からないですよね・・・。そのままじゃダメなのでしょうか? >原因が分かるようでしたら御願い致します。 もしかしたらサブルーチンじゃないのが原因かもしれません。 ってことで当時書いたそのままのサブルーチンです。 sub yomi{ local($yomi) = @_; jcode::convert(*yomi,"euc"); @name = unpack ('C*',$yomi); while ($line = $name[$y++]){ if ($y % 2){ $line == 164 or return 0; }else{ ($line <= 243 and $line >= 161) or return 0; } } return 1; } このサブルーチンが入っている状態で 入力を受けとった後で $error = "名前の読みはひらがなだけです。" if (&yomi($yomigana) == 0); とするとOKなはずです。 えんいー。</=>
#1159(海豚氏)の書き込みを引用します: >上記のようにそのまま入れたらエラーになってしまいました何故でしょう? >と言っても分からないですよね・・・。そのままじゃダメなのでしょうか? >原因が分かるようでしたら御願い致します。 水原麗名先生の書かれたルーチンに渡す前に文字コードを「EUC」に変換していますか?
凄い雪ですね! #1158(水原麗名とも呼ばれる人氏)の書き込みを引用します: >昔私がやったときは「名前の読み方を入力」でした。 > >@name = unpack ('C*',$name); >while ($line = $name[$y++]){ > if ($y % 2){ > $line == 164 or return 0; > }else{ > ($line <= 243 and $line >= 161) or return 0; > } >} >return 1; >文字コードをEUCに変換してからここに渡すとひらがな以外があると0を返します。 ありがとうございます。 私も、「名前の読み方を入力」を使用しようとしています。 でも私には難しすぎるのですが・・・。 上記のようにそのまま入れたらエラーになってしまいました何故でしょう? と言っても分からないですよね・・・。そのままじゃダメなのでしょうか? 原因が分かるようでしたら御願い致します。 >>また、「英字」以外はエラーメッセージを表示するもご存知でしたら御願い致します。 >こちらはもっと簡単でしょう。 > >$line =~ /^[A-Za-z]$/ or &error("英字以外が含まれています"); > >これだけでOKだと思います。文字コードはShift-JISかEUCで。</=> こちらの方は出来ましたありがとうございます。
#1156(海豚氏)の書き込みを引用します: > こんにちは。 >「うはく」さん「わかやま神」さん色々とありがとうございます。 > >入力画面はHTMLで、その入力された文字が「平仮名」以外ならばエラーメッセージを表示すると言う事は可能でしょうか? 昔私がやったときは「名前の読み方を入力」でした。 @name = unpack ('C*',$name); while ($line = $name[$y++]){ if ($y % 2){ $line == 164 or return 0; }else{ ($line <= 243 and $line >= 161) or return 0; } } return 1; 文字コードをEUCに変換してからここに渡すとひらがな以外があると0を返します。 >また、「英字」以外はエラーメッセージを表示するもご存知でしたら御願い致します。 こちらはもっと簡単でしょう。 $line =~ /^[A-Za-z]$/ or &error("英字以外が含まれています"); これだけでOKだと思います。文字コードはShift-JISかEUCで。</=>
下のは色々やってみたのですが無理ですね。 1文字入ってもエラーを表示させるというのは。 ところで、入力された内容と同じ内容ならその文字に1足して保存する。 と言うのをやりたいのですが、以下の物を考えてみたのですが 「***」「***1」「***2」「***3」迄は行くのですが次が「***2」となり その次は「***3」となって後は繰り返しになってしまいました。 これを数字を増やして行くにはどうすればいいのでしょう? またこれだと「***9」迄しか出来ませんがずっと続ける(「***99」とか) というのは簡単に出来るでしょうか? =================================== if ($FORM{'q03'} eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.1; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.2; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.3; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.4; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.5; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.6; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.7; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.8; } if ($q3 eq $a03) { $roma = 1; $q3 = $FORM{'q03'}.9; } } if ($roma == 1) { $FORM{'q03'} = $q3; } ===================================
こんにちは。 「うはく」さん「わかやま神」さん色々とありがとうございます。 入力画面はHTMLで、その入力された文字が「平仮名」以外ならばエラーメッセージを表示すると言う事は可能でしょうか? また、「英字」以外はエラーメッセージを表示するもご存知でしたら御願い致します。
#1154(海豚氏)の書き込みを引用します: >「¥」って@の前に付けるんですね。 >おかげさまで解決いたしましたありがとうございます。 それはよかったです(汗) あっ!!そうか!エスケープする場所間違えていましたね。 出先だから参考書ないとわからんもんですな(爆) 覚える気が無いとも言えるけど・・・
#1152(わかやま神氏)の書き込みを引用します: ><a href="mailto:abc@\abc.ne.jp">abc@\abc.ne.jp</a> >じゃないですか? 間違えて書き込んでしまいました。その通りです。 >それとも、 >$mail='abc@abc.ne.jp'; ><a href="mailto:$mail">$mail</a> >とするとか・・・ 上記のようにしたのですが変わりませんでした。 #1153(うはく氏)の書き込みを引用します: >「¥」をつける位置が違うようです。 >abc@¥abc.ne.jp >ではなく >abc¥@abc.ne.jp >ならOKかと。 「¥」って@の前に付けるんですね。 おかげさまで解決いたしましたありがとうございます。
#1151(海豚氏)の書き込みを引用します: >CGIでメールアドレスを表示させようとして試行錯誤の結果 ><a href=\"mailto:abc@\abc.ne.jp\">abc@\abc.ne.jp</a> >というようにしたらちゃんとCGIが実行されたのですが >表示画面が「abc@bc.ne.jp」というように >変な表示になってしまいました。 >どの様にすればちゃんと表示されるようになるのかご存知でしたら教えて下さい。御願い致します。 「¥」をつける位置が違うようです。 abc@¥abc.ne.jp ではなく abc¥@abc.ne.jp ならOKかと。 もしくはわかやま先生のようにされるとよいかと。
#1151(海豚氏)の書き込みを引用します: > お久しぶりです。 >CGIでメールアドレスを表示させようとして試行錯誤の結果 ><a href=\"mailto:abc@\abc.ne.jp\">abc@\abc.ne.jp</a> >というようにしたらちゃんとCGIが実行されたのですが >表示画面が「abc@bc.ne.jp」というように >変な表示になってしまいました。 >どの様にすればちゃんと表示されるようになるのかご存知でしたら教えて下さい。御願い致します。 > >何回かの実験の結果aaa@angel.ne.jpだと上記のようになってしまうみたいです・・・。困った <a href="mailto:abc@\abc.ne.jp">abc@\abc.ne.jp</a> じゃないですか? それとも、 $mail='abc@abc.ne.jp'; <a href="mailto:$mail">$mail</a> とするとか・・・ ところで、これヒアドキュメントで出してるのかな?
お久しぶりです。 CGIでメールアドレスを表示させようとして試行錯誤の結果 <a href=\"mailto:abc@\abc.ne.jp\">abc@\abc.ne.jp</a> というようにしたらちゃんとCGIが実行されたのですが 表示画面が「abc@bc.ne.jp」というように 変な表示になってしまいました。 どの様にすればちゃんと表示されるようになるのかご存知でしたら教えて下さい。御願い致します。 何回かの実験の結果aaa@angel.ne.jpだと上記のようになってしまうみたいです・・・。困った
早速HP作ってみました。 暇な方は遊びにきてね。
自分もまだまだ勉強ぶそくすぎなので、なにかしら調べてみます。 どうも、ありがとうございました!
#1146(カエル氏)の書き込みを引用します: >実は、「perl」自体がLANでつながっているほかのサーバーにある場合でも >可能ですか?(自分のクライアントには「parl」が入っていない。) Windowsマシンなら z:\ だか (マシン名)\\ を最初につけてPerlの場所を指定すれば多分大丈夫だと思います。(自信なし) LANは私もやったことないです。
#1146(カエル氏)の書き込みを引用します: >実は、「perl」自体がLANでつながっているほかのサーバーにある場合でも >可能ですか?(自分のクライアントには「parl」が入っていない。) だっ大丈夫なんではないでしょうか…。多分。 LAN 良くわかんないのでしどろもどろです。 (LAN ってそういうの意識しなくても良いように出来てるもんじゃないのかなぁと勝手に思ってみたりして…) ここでヘルプカード使います。 「ヘルプ」 やってみるのが一番という話もないのかな?やはりわかんないです。ごめんなさい。
実は、「perl」自体がLANでつながっているほかのサーバーにある場合でも 可能ですか?(自分のクライアントには「parl」が入っていない。)
#1144(カエル氏)の書き込みを引用します: >parlの所在場所を、CGIやSSIのスクリプトの上のディレクトリーに置いて >ある場合でも大丈夫ですか? 「perl」自体はどこにあっても良いのではないかと。 本書のスクリプトをそのまま使う場合は最初の行 (「#!」で始まる行) をperlを置いた場所に変更しなくてはなりません。
parlの所在場所を、CGIやSSIのスクリプトの上のディレクトリーに置いて ある場合でも大丈夫ですか? 初心者なので、キチガイなことを言ってるようですけど・・・。
#1141(HIJET氏)の書き込みを引用します: >こんばんわ! >SSI式のアクセスログ取得のスクリプトを使いたいのですが、 >フレームを使っている場合はどのように設置したらよいのでしょうか? >どうか教えてください。 CGIにしてフレームを読む時にアクセスログをとる…ってのはダメ?
[トップページに戻る] | 管理人 : キャメル |