くだすれPHP(超初心者用)5 at PHP
[2ch|▼Menu]
1:nobodyさん
08/11/22 06:36:02
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
URLリンク(www.php.net)
URLリンク(jp.php.net)



くだすれPHP(超初心者用)4
スレリンク(php板)

適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
スレリンク(php板)

2:nobodyさん
08/11/22 08:10:59 NVQ67oh4
いいの?いいの?
2GET

3:nobodyさん
08/11/22 12:53:51
$me = $_GET[3];


4:nobodyさん
08/11/22 12:55:45
3番目は[2]だろー

5:nobodyさん
08/11/22 16:02:02
プププ

6:nobodyさん
08/11/23 02:46:28 KQeB2dd8
1608年11月23日に3なのに『2get』と書いてしまい、

『500年ROMってろ!!』
と言われた者です。
あれから500年、ひたすらROMに徹してきました。
来る日も、来る日も。

そして今、
やっと2をget出来るだなんて………
感動で……胸が一杯です。
人間、辛抱すれば良いことって有るんですね!

こんな私ですが、
僭越ながらとらせて貰います…!
念願の2ゲットはもちろんこの書き込みです。
では・・


「6get!!!!」


7:nobodyさん
08/11/23 02:49:23 /R5EIGze
全スレでセッションデータの保存にDB使うのがいいのかどうかとか聞いてた者です。
お礼書く前にスレ落ちてしまったので。とても参考になりました。ありがとうございましたm(_ _)m

8:nobodyさん
08/11/23 08:57:21
ファイルを開かずにサーバー側からファイルを読み込むにはどうすればいいのでしょうか
日付が変わる前に毎日ログをとりたいんですが どのようにすればいいでしょうか

9:nobodyさん
08/11/23 11:44:09
>>1

10:nobodyさん
08/11/23 12:15:51
ファイルを読み込むってことはファイルを開いてるってことなんだよ

11:nobodyさん
08/11/23 13:10:19
>>6
100年はえーよ

12:nobodyさん
08/11/23 14:46:21
>>8
1行目は意味不明。2行目についてはログ取るなら
fopen($path, 'a');
あたりか。

$pathとしてファイル名に日付でユニークな名前付ければ良い。(例:yyyy_mm_dd.csv)
$pathのあるディレクトリのパーミッションにさえ気をつけておけば、
あとは日付が変わるたびに新しいファイルが出来てそこに追記処理が行われる。

13:nobodyさん
08/11/23 16:19:53 /R5EIGze
C++をちょっとやった者なんですが、PHPにはインライン関数みたいなのってないのでしょうか??

14:nobodyさん
08/11/23 18:06:49
>>13
関数呼び出しのコストを気にする必要がある状況でPHPを使うことが想定できない。

15:nobodyさん
08/11/23 19:17:52
>>8
俺も1行目の意味がよくわからないけど、
たぶんヒントとして「cron」で検索したら思ってる情報が出るんじゃないかな?


16:nobodyさん
08/11/24 00:29:44
てtest

17:nobodyさん
08/11/24 11:38:04
IFを使って、A=0 かつ 文字数が8文字 かつ 文字の種類が半角英数字のみなら実行
それ以外はエラー、という条件を作りたいのですが、どうすればいいでしょうか、教えてください。

18:nobodyさん
08/11/24 11:50:36
>>17
Aとはなんぞ?意味分からんがこういう事かな?

$A = 0;
$fuge = 'xyz12345';

if ($A === 0 && preg_match('/[0-9a-zA-Z]{8}/D', $fuge)) {
 // 実行処理
} else {
 // エラー処理
}

19:18
08/11/24 11:51:43
>>18
×preg_match('/[0-9a-zA-Z]{8}/D', $fuge)
○preg_match('/^[0-9a-zA-Z]{8}$/D', $fuge)

20:nobodyさん
08/11/24 14:21:44
俺なら

$A = 0;
$fuge = 'xyz12345';

if ($A !== 0) {
 // エラー処理
}
if (!preg_match('/^[0-9a-zA-Z]{8}$/D', $fuge)) {
 // エラー処理
}
//処理続行

にする。
じゃないと条件が増えたり実行処理の中でインデントがたくさん出てきたら読みにくくなる。
どっちの条件にマッチしなかったのかも判定しやすいし。


21:nobodyさん
08/11/24 14:38:36
読みやすさをとるかCPUの負荷軽減をとるか

22:nobodyさん
08/11/24 14:42:35
どうせ弱小サイトのくせにスケーラビリティなんて気にすんな。最適化は自分の頭に実行しろ

23:nobodyさん
08/11/24 14:44:07
こういうゆとりが増えて困ってます。

24:nobodyさん
08/11/24 14:49:07 iKPzd1uP
クラス内の変数を同クラス内の関数で参照する場合って
$this->xxx
のように参照しなければいけませんよね。
しかし、関数内で変数を参照したりいじったりする機会が多いせいで
this->の部分が非常に邪魔なのですが、
この部分を略して記述する方法ってありませんか?

25:nobodyさん
08/11/24 14:52:52
ない。そんなとこで楽する他にお前のプログラミングにはやるべきことがあるだろ。

26:nobodyさん
08/11/24 14:58:21
あるだろw
$fuge =& $this->var;

27:nobodyさん
08/11/24 15:07:27 iKPzd1uP
>>26
ありがとうございます。

28:nobodyさん
08/11/24 15:51:52
>>25はおそらくループの中なんかでも平気で
$this->hoge[] = 何かしら;
とかやってるんだろうなw

29:nobodyさん
08/11/24 15:54:29
それすると何か違いあんの?

30:nobodyさん
08/11/24 15:58:45
>>29
場合によっては見通しが悪くなる。
つか普通に考えてメンバ変数をループとかやらんだろw

31:nobodyさん
08/11/24 16:22:57
例えば
$this->users[] = new User(ほげほげ)
とかやらね?

見通しについては、いちいちローカル変数に代入するほうが悪くなると思うが

32:13
08/11/24 16:42:34 E3B5gNBM
>>14
ありがとうございます。
すいませんもうちょっと分かりやすく教えて頂けると・・
とりあえずインライン関数っていう概念はないってことででしょうか?

33:nobodyさん
08/11/24 16:55:12
>>32
ぐぐれよ

34:nobodyさん
08/11/24 17:45:35
>>32
インライン関数がどういう概念なのかを教えてくれれば答える
PHPを知らないあなたと、C++を知らない僕とで対等ではないか。

35:nobodyさん
08/11/24 17:54:32
俺もC++知らないから調べてみたんだが
コンパイラがないPHPには関係ない話じゃないの?

36:13
08/11/24 21:35:01
>>35
>>コンパイラがないPHPには関係ない話じゃないの?
そーか汗
ありがとうございましたm(_ _)m

37:nobodyさん
08/11/24 22:52:12
URLリンク(d.hatena.ne.jp)
このページに

$threat "'OR '='";
$threat = mysql_real_escape_string($treat);
SELECT account_number, name, address FROM account_data WHERE account_number = $threat

は、mysql_real_escape_string で、$threatが
''or''=''
とエスケープされるので、SQLインジェクションになるというように書いてあるのですが、
自分の環境
Windows XP
PHP 5.2.0
MySQL 5.0.27
では、mysql_real_escape_string($treat) は
\'OR \'=\' 
とエスケープされ、SQLインジェクションになりませんでした。
この記事は合っているのでしょうか??
どなたか教えてくださいm(_ _)m

38:nobodyさん
08/11/24 23:27:44
その人のは他のも動かないのあるね。

その上、○○の本のインジェクションが動かないとか
攻撃して書いちゃってるのがかなり痛い人だな。

39:nobodyさん
08/11/25 03:38:24
2chのdatファイルをPHPを使ってダウンロードしたいのですが、
どうしたらよいですか?
ブラウザを使ってアクセスするとできるのですが、PHPだとできません。

40:nobodyさん
08/11/25 04:01:15
レスポンス見ろ

41:nobodyさん
08/11/25 19:28:56
>>39
馬鹿発見

42:nobodyさん
08/11/25 21:18:12 qzrO9YC/
googleみたいに、特定のサイトを自動でインデックス化して検索できるようにするスクリプトってありますか?
phpで書かれたサーバ設置型を探しています。


43:nobodyさん
08/11/25 21:24:20
ありますか?ってなんだよ
そりゃ誰かが作りゃあるだろバカか?

44:nobodyさん
08/11/25 22:14:09
>>42
普通そういう事はPHP単体ではやらないかな…。
Namazuなんかはperl版はあった気がするが。
要望そのものには応えられないが「Namazu PHP」でググるといい。

>>39
具体的にコード載せては?
PHP5でphp.iniでallow_url_fopenがONになっていたら、
取ってくるだけならfile_get_contents()1行で終わりだけどね。

まぁ実際は2chの鯖と行儀よくおしゃべりしないと駄目なので
URLリンク(age.s22.xrea.com)
URLリンク(www.monazilla.org)
辺り読んで理解できないなら、もう少し勉強してからにした方がいい。

既に既存のスクリプトもあるみたいなので「PHP 2ch Viewer」とかでググルといい。

>>37
そもそも、Prepared Statement使ったほうがいいと思う。
PHPならPDO使えば簡単楽ちん。

45:nobodyさん
08/11/25 22:20:24
>>44
thx


46:nobodyさん
08/11/26 17:34:56
更新ボタンを押すとおk、キャンセルの確認画面を表示させる程度のものを作りたいのですが
phpのなかでjavascript使いたいんですが書き方がわからないです・・・
どなたか教えてください

47:nobodyさん
08/11/26 17:37:01
echoで出力する
<?php
echo "<script type=\"text/javascript\" src=\"hoge.js\"></script>\n";
?>

あるいは一回PHPモードから抜ける
<?php
//php script
?>
<script type="text/javascript" src="hoge.js"></script>
<?php
//php script
?>

48:37
08/11/26 18:03:51
>>38
>その人のは他のも動かないのあるね。
む、そうなんですか。

>>44
pdo->prepare 既に使ってたんですが、プリペアードステートメントってこれのことだったんですね。
名前だけ知ってたんですが、何のことかよく分かっていませんでした汗
ありがとうございましたm(_ _)m

49:46
08/11/26 18:41:54
>>47
早いレスありがとうございます。

print("<table border=\"1\">");
print("<tr><td>ISBNコード</td><td>題名</td><td>著者</td><td>出版社</td><td>出版年</td><td>更新</td><td>削除</td></tr>");
while($row=mysql_fetch_array($res)){
print("<tr>");
print("<td>".$row["bisbn"]."</td>");
print("<td>".$row["btitle"]."</td>");
print("<td>".$row["bauth"]."</td>");
print("<td>".$row["bpub"]."</td>");
print("<td>".$row["bpubyear"]."</td>");
print("<td><a href=\"update_form.php?bid=".$row["bid"]."\">更新</a></td>");
print("<td><a href=\"library_delete.php?bid=".$row[bid]."\">削除</a></td>");
print("</tr>");
}

さっきボタンと書きましたが実際ボタンじゃなかったです。すいません。
MySQLに接続した図書検索のページなんですが、更新をクリックしたときに確認画面を出したいです。
出力するのとPHPモードから抜けるの試したのですが、
前者は"更新"が表示されなくなってしまいました。
後者はページ自体表示できなくなってしまいました。。

50:nobodyさん
08/11/26 19:06:12
件数0なんでは?

51:nobodyさん
08/11/26 19:12:23
>>50
いえ、入れてあります。

52:nobodyさん
08/11/26 19:14:40
じゃ出るはず

53:nobodyさん
08/11/26 19:16:47
print("<td><a href=\"update_form.php?bid=".$row["bid"]."\"><script type=\"text/javascript\" src=\"hoge.js\">更新</script></a></td>");
だとまずいんでしょうか。。

54:初心者です
08/11/26 19:52:25 51PdxGfY
PHPのフォームからカタカナを検索すると?????になってしまうんですが
どうしたらいいのでしょうか?
データベースはMySQLで、文字コードはUTF−8に揃えてるはずなんですが^^;
いきずまってます。色々なサイト見てますが、出来ません><


55:nobodyさん
08/11/26 19:53:27
html的におかしいでしょ
更新ボタンをjavascriptで制御したいなら
<input type="button" onclick="javascript:event" value="更新">
onclickあたりでイベント発生させないと
ボタンじゃなくてアンカーだとしても同じこと
<a onclick="javascript:event">更新</a>

56:nobodyさん
08/11/26 20:10:53
>>54
×揃えてるはず
○揃ってない

57:nobodyさん
08/11/26 21:00:48
>>53
49のコードは嘘なん?

58:nobodyさん
08/11/26 21:31:17
>>57
32行しか書き込めないようなのでテーブルのとこだけ抜き出してみました
>53のはこうしてみたけどできませんでした、みたいな感じです

>55の方が指摘してくれてるonclickというのを調べて見ていますが
htmlもjavascriptも全然なもので・・・

59:nobodyさん
08/11/26 21:35:46
まずは、PHPとJSの特性を知ることからじゃないの?
どうちがうかってちゃんと把握できてるの?

60:nobodyさん
08/11/26 22:12:18
<a href="update.php" onClick="return confirm('更新するぞゴルァ!');">更新</a>

PHPまったく関係ないけどこういうことがやりたいとか?

61:nobodyさん
08/11/26 23:53:42
>>60
何・・・だと・・・?
phpもjavascriptもなくできるんですね・・・or2
ありがとうございます、ありがとうございます(´;ω;`)

62:nobodyさん
08/11/27 00:05:14
.jsファイルを読み込むのがJavaScriptだと思ってるのか

63:nobodyさん
08/11/27 00:13:42
>>60
これってjavascriptって書いてないけど、
javascriptで動いてるんだよね?

64:nobodyさん
08/11/27 00:25:36
手抜きせずに基礎からちゃんと学ぼうよ

65:nobodyさん
08/11/27 15:04:23
URLリンク(act.st)のアクセス解析を
URLリンク(www.php-labo.net)のブログにincludeを使った形で組み込みたくて
ブログのindex.phpに書いてみたんですが画面が白くなったり機能しなかったりします。

なんとか正常にinclude出来ないでしょうか。

66:nobodyさん
08/11/27 15:11:21
>>65
スレリンク(php板)
スレリンク(php板)

67:nobodyさん
08/11/27 15:26:09
改造とかそんなたいそうなものじゃなくてなんとか
include_once('lapis/write.php');の一行を正常に稼動させたかっただ・・・

68:nobodyさん
08/11/27 15:32:35
display_errors = On

69:nobodyさん
08/11/27 17:16:11
>>68
iniでやったけどやっぱり真っ白でした

最初の行に入れると真っ白だけどアクセス解析は機能しているようです。


70:初心者です。助けてください
08/11/27 21:17:24 7UVbMsyC
>>56
PHPinfo()でdefault_charsetってとこを見たらnovalueとかなってたんだけど
そこもUTF-8とかにしないといけないのかな?
MySQLの方もUTF-8にしてるんですが…
それとも、SQL文を送信するとこで何か他の方法があるんですか?
文字コードで気をつけないといけないところは他にもあるんですか?
漢字とアルファベットは検索出来ます。

71:nobodyさん
08/11/27 21:22:32
mbstringの設定しろよ

72:nobodyさん
08/11/28 02:13:04 6eZt1xO+
URLリンク(www.s-memo.net)
を参考にしてPEARを導入しようと思ってたのですが
go-pear.batをダブルクリックしても何もでません
よろしくおねがいします

73:nobodyさん
08/11/28 10:03:58
URLリンク(pear.php.net)を保存して実行でおk

74:nobodyさん
08/12/02 21:02:45 ZnEnsvHS
誰かお願いします。

内容
フォームからPOSTのメソッドを利用して「ユーザーID」と「パスワード」送信する。
受信したファイルでは「ユーザーID」と「パスワード」の妥協性を判断して出力する。

条件
データ送信用ファイル:input.html
データ受信用ファイル:check.php

input.htmlには2種類のテキストボックスを配置させる(txtId と txtPass)
check.phpでは以下の4種類のメッセージを出力させること

・ユーザーIDとパスワードの組み合わせが正しい場合
「認証成功!」
・ユーザーIDが存在しない場合
「ユーザーIDが存在しません」
・ユーザーIDは存在するがパスワードが誤っている場合
「パスワードが違います」
・ユーザーID、またはパスワードのいずれかが空白の場合
「ユ−ザーIDまたはパスワードが未入力です」

check.phpにおけるユーザーIDとパスワードの組み合わせ(3ユーザー分)
ユーザーID:guest admin test
パスワード:goma adm test

スクリプト以下の配列に格納し、プログラムによって判断を行う。
ユーザーID:$arrUser $arrUser = array(・・・・);
パスワード:$arrPass &arrPass = array(・・・・);

課題で出たのですが、受信側の処理がわからないです。
誰かお願いします。

75:nobodyさん
08/12/02 21:09:11
ID無し質問スレで書いた者だけど
マルチは最悪だな

76:nobodyさん
08/12/02 21:54:03
マルチとかはどうでもいいが
コピペで我が物顔で提出されるかと思うと、教える気失せるな。
せめて、ここまでやってみましたけどうまくできなせん、とか
努力を見せてほしいね。
講義をちゃんと聴いてない74が悪い

77:nobodyさん
08/12/02 21:55:58 ZnEnsvHS
ユーザーIDとパスワードのとこの配列の使い方が分からないです

78:nobodyさん
08/12/02 22:40:15
「ここから先ぜんぶわからないんだけど〜」

79:nobodyさん
08/12/03 06:17:09
>>74
PHP Tutorial #2 - Login form
URLリンク(jp.youtube.com)

80:nobodyさん
08/12/03 20:41:42 SBXcaNw7
fputcsvを使って入力データの保存を行おうと思ったのですが、
こういうのってトランザクションはどうするべきなのでしょうか?

81:nobodyさん
08/12/03 20:43:40
ロックかければ?

82:nobodyさん
08/12/04 01:40:03
ロック
ロック
ここでロック
あなたから
ロック
手を伸ばして
受け取ってよ


83:nobodyさん
08/12/04 02:49:51 6sD/pbke
pecl4winが落ちてるからimagick.dllがダウンロードできないんだけどどっかにないかな?

84:nobodyさん
08/12/04 10:12:39
自分でビルドすれば?

85:nobodyさん
08/12/04 14:10:31
$arr=array(15,34,10)
配列の要素の和を求める関数ありますか?
echo 59 の様な感じです。

86:nobodyさん
08/12/04 14:19:24
>>85
array_sum

87:nobodyさん
08/12/04 14:21:17
>>86
ありがとうございます。

88:nobodyさん
08/12/04 18:07:23
PHPは本当にどんな関数でもあるな
perlだったら、いちいち自分で書かないといけない。

89:nobodyさん
08/12/04 18:20:27
>>88
世の中はPHPとPerlだけではないのだよ?

90:nobodyさん
08/12/04 18:24:46
PHPはウェブありきで設計された言語だからな
つーか関数多過ぎ

91:nobodyさん
08/12/04 18:26:39
いやいや少ないだろ・・・

92:nobodyさん
08/12/04 22:46:59
多いから何なんだろう
学習コストが高い?
優秀な言語?

93:nobodyさん
08/12/04 23:39:39 ge2NtuW2
formタグを使って配列を受け渡したいのですが、そういうのってどうしたら良いのでしょうか?

94:nobodyさん
08/12/05 01:26:39 zoYImp6K
配列で0〜99まで格納ってわざわざ全部array(で打ち込んでいくしかないですか!?

95:nobodyさん
08/12/05 01:33:39 jMVHCYUr
>>94
意図がわからんが、rangeとか?

96:nobodyさん
08/12/05 01:37:35
日本語でOK
どういう値を渡したいのだ?

97:nobodyさん
08/12/05 04:44:41
$a=(0-99);

とかでしょ?

98:nobodyさん
08/12/05 09:25:55
rangeだろ

99:nobodyさん
08/12/05 16:28:02 fefynmKZ
csvファイルの15行目から25行目を読み込むみたいな処理をしたいんですが、
こういうファイルの途中から途中までの読み込みって出来ますか?
あるいは、やっぱり一行目から読んでいって、
目的のデータにくるまでは捨てていくしかないでしょうか?

100:nobodyさん
08/12/05 16:31:02
捨てていくっていう表現はおかしいな
例えばfileで配列に読み込んで
[14]〜[24]までを取り出せばいい
ファイルの中身が膨大でメモリの負担を考えるなら
また別の方法を考えるべきだが

101:nobodyさん
08/12/05 17:33:46
読み込み位置を変えるseekというものはあるが、
テキストファイルのように1行の長さが不定なものには使えない。

102:nobodyさん
08/12/05 18:34:07
Googleのように、ログインした後はブラウザを一回閉じても
再度開いたらログイン済になっているような機能を実装したいんですが、
参考になるサイトなど教えて貰えませんでしょうか?

クッキーを使うのかと思ったらGoogleはクッキーオフでも上記動作をしているようです。

こういう機能をなんと呼ぶのかも判らないので名前を教えて貰えるだけでも結構です。

よろしくお願いします。

103:nobodyさん
08/12/05 19:22:16
>>102
うそつけw
Cookieオンにしろといわれたぞ
IPやホスト名を鯖側で記録しておいて
変化するまで有効にする手なんてのも考えられるが
一般的じゃないしセキュリティ的にも危険

104:101
08/12/05 19:38:49
>>103
すいません、Firefoxでやったらエラーでました。

IEでクッキーを受信するときにダイアログを表示するように設定して、
僕のサイトで警告が出るのを確認してからGoogleにログオンしたんですけど
何故かオンになってたみたいです。

クッキー使うって事はユーザー名とか暗号化して記録すれば良いんですね。
ありがとうございました。

105:nobodyさん
08/12/05 19:53:32
Cookieを使ったセッションだと思うぞ。

106:nobodyさん
08/12/05 20:20:33
セッションでブラウザ閉じた後情報が保持されるかアフォ

107:nobodyさん
08/12/05 21:13:25
Cookieの中身を見てみりゃいいのに…

108:nobodyさん
08/12/05 21:45:22 jMVHCYUr
>>106
セッションID持たせて有効期限。

109:nobodyさん
08/12/05 22:26:45
実験してみればわかると思うけど、
クッキーを手動で削除すれば
強制ログアウトさせられるよ

110:nobodyさん
08/12/06 09:19:14 figaW1Vu
質問です

携帯サイトのトップページで
URLリンク(hoge.com)

リンク@←(id=1)
リンクA←(id=2)
リンクB←(id=3)
リンクC←(id=4)
リンクD←(id=5)

と表示し、URLリンク(hoge.com)とパラメータをつけて飛んで来た場合

リンクA
リンクB
リンクC
リンクD
リンク@

と、そのidのリンクを一番下へ自動で並び替えるにはどう書いたら良いでしょうか?
よろしくお願いします。

111:nobodyさん
08/12/06 09:45:43
$url= array("リンク1", "リンク2", ""
$count= count($url);
for ($id=$_GET['id']; $id<$count; $id++){
if ($id >= $count) $id= 1;
$link.= $url[$id];
}

こんなイメージでできそう

112:nobodyさん
08/12/06 10:09:00
$url = array(1 => "リンク1", 2 => "リンク2", ....
uksort($url, "cmp");
print_r($url);
function cmp ($a, $b)
{
switch ($_GET['id']) {
case $a:
return 1;
case $b:
return -1;
default:
return $a - $b;
}
}

113:110
08/12/06 10:23:36
ありがとうございます!!
今から出勤なので帰ってからやってみます。楽しみです
マジ感謝です。

114:nobodyさん
08/12/06 19:41:46 uHkDvuuY
onclickのようなイベントハンドラに対してphpのコードを実行させたいのですが、
こういうのってphpではできない感じでしょうか?

具体的にやりたいことは、
ボタンが押される
→Javascriptの関数を呼び出し入力項目をチェック
→良ければ、次のページに渡すphpの変数をセット
→次のページに遷移
って感じです。


115:nobodyさん
08/12/06 19:44:30 yGRUMO6W
できる。


116:nobodyさん
08/12/06 19:48:48
>>115
あれ?
サーバサイドのphpではクライアントサイドのJavascriptみたいにonclickでの
関数呼び出しは出来ないってのは良いですよね?
Javascriptの関数の中でphpを記述するってことですか??

117:nobodyさん
08/12/06 20:44:44
うん。
ちなみに
>具体的にやりたいことは、
>ボタンが押される
→Javascriptの関数を呼び出し入力項目をチェック
>→良ければ、次のページに渡すphpの変数をセット
>→次のページに遷移
これ読む限りではphpいらないと思うが?

118:nobodyさん
08/12/06 21:05:23
>>117
なんか自分でもそうやったら出来ないだろうかとやってみたんですが、
エラーコンソールに invalid flag after regular expressionと出てうまくいかないんです。
具体的には以下のように書いていて、
チェックフラグがtrueならそのページで使ったデータを二次元配列から取り除いて、
残りを次のページに渡すデータとするみたいな感じです。

<script type="text/javascript">
function isAllChecked(){
//省略
if(!flag)return false;
<?
global $num,$data;
for($i=0;$i<$num;$i++)array_shift($data);
?>
return true;
}
</script>
//省略
<input type="submit" value="次へ" onclick="return isAllChecked()" />

119:nobodyさん
08/12/06 21:06:41
javascriptの中にphpコード書いてどうすんの?

120:nobodyさん
08/12/06 21:08:28
>>114
書かれてるのは、onclickで変数をエンコードしてページを呼び出すだけだよな

もし、onclickでphpのコードを実行した結果をページに反映させたいなら
ajaxの仕組みを利用する。
xajaxってライブラリが実現してるのがその仕組みに近い。
シームレスに関数を呼び出す感じになるよ

121:110
08/12/06 22:06:53
何度もすみません
>>111 >>112試してみたのですがうまくできませんでした。
$url = array(
1 => "<a href=\"test1\">test1</a>",
2 => "<a href=\"test2\">test2</a>",
3 => "<a href=\"test3\">test3</a>",
4 => "<a href=\"test4\">test4</a>",
5 => "<a href=\"test5\">test5</a>",
);

if ($_GET['id'] == test1) {
$url1=$url[2];
$url2=$url[3];
$url3=$url[4];
$url4=$url[5];
$url5=$url[1];
} elseif ($_GET['id'] == test2) {
$url1=$url[1];
$url2=$url[3];
$url3=$url[4];
$url4=$url[5];
$url5=$url[2];
〜〜
以下elseifが数個ってな感じでやったのですがもうちょっとシンプルと言うか効率の良いやり方無いでしょうか?

122:nobodyさん
08/12/06 22:28:18
>>118
それじゃPHPの実行結果がjavascriptの一部と解釈されるだけだ・・・

123:nobodyさん
08/12/06 22:38:00
>>121
なんというO(n^2)

124:nobodyさん
08/12/06 23:31:00
>>121
おいおい、意味わかってれば、>>112は動くぜ?
a href= test1ならそれなりに工夫しろよw

125:110
08/12/07 02:06:11
>>112が何でこんな動きになるのか理解できませんが思い通りにいけました!
ありがとうございます
お世話になりました〜!!

126:nobodyさん
08/12/07 22:04:39
PHPの関数の数って全部でいくつあるの?

127:nobodyさん
08/12/08 00:43:56
約142,000くらい

128:nobodyさん
08/12/08 01:06:08
マニュアルの関数一覧は5900個
日々拡張されたり廃止されてるから増減するし
マニュアルにのってないのもあるのでなんともいえないな
PEARは各種FWのを含めるとさらに増える
ユーザー定義関数も含めると天文学的な数値になる
(9割型コードがかぶってたりコードは違うが動作が同じのも含む)

実際によく使うのは100個もないので数なんてどうでもいいやね

129:nobodyさん
08/12/08 01:10:38
6,000もあるのか
全部おぼえようとしていたが、
やる前に質問してよかった。

130:nobodyさん
08/12/08 01:11:12
それで、
「よく使う100個」の
リストは、どこかにある?

それから優先的に学習していきたい。

131:nobodyさん
08/12/08 01:13:49
アマゾンでPHPで一番売れている本を買おうと思ったんだけど、
なんでPHPってカテゴリはないの?

132:nobodyさん
08/12/08 01:14:33
確かに関数多過ぎてうんざりするからよく使うものとうんこ臭いのに分けてほしい

133:nobodyさん
08/12/08 02:58:26
ソース見りゃいいじゃん

134:nobodyさん
08/12/08 03:07:52
>>130
やっているうちに覚えていくから心配しなくていいよ
とにかく本でもマニュアルでもいいから順序通りにやっていってみ

135:nobodyさん
08/12/08 03:13:30
>>134
その作業が死ぬほどつまらんから
聞いているのです

「試験に出る英単語」って本知ってる?

あれは出現頻度順に並べたものなんです

136:nobodyさん
08/12/08 03:29:01
お前にゃ向いてないから諦めれ

137:nobodyさん
08/12/08 04:24:39
口よりも手が動かないと・・・

138:nobodyさん
08/12/08 04:41:01
>>135
似たようなリスト(別スレで見かけたのでコピペ)
URLリンク(www.1x1.jp)

しかし、英単語だって実用的に使って覚える方が楽だぞ
実用を伴わないで関数を勉強する方が余程ストイックな作業だと思うが


139:nobodyさん
08/12/08 08:32:40
>>138
>>135じゃないけど
俺は暗記得意だから先に仕様書とかリファレンスに一通り目を通してから実戦のほうが合ってる
結局人それぞれじゃね?

140:nobodyさん
08/12/08 09:49:20
>「試験に出る英単語」って本知ってる?
あれは出現頻度順に並べたものなんです

試験対策ってことは、当然一通り順序どおりに英文法をマスターしたうえで読む本だよな。
英単語だけ覚えても文章の1つも作れないだろ。
プログラミングだって順序立てて学習するのを避けて関数を覚えようとしても意味がない。

141:nobodyさん
08/12/08 20:33:26
死ぬほどつまらんならやらなければいいのにね

142:nobodyさん
08/12/08 20:43:10
しかし、ある程度勉強しないと
何も作れないじゃん

143:nobodyさん
08/12/08 20:50:23
じゃ勉強すればいいじゃん

144:nobodyさん
08/12/08 21:11:07
だがプログラミングの勉強はつまらんのだよ。
こういう風に教えてくれよ

URLリンク(jp.youtube.com)

145:nobodyさん
08/12/08 21:14:57
じゃやらなきゃいいじゃん

146:nobodyさん
08/12/08 21:18:11
相手にするだけ時間の無駄だぞ
放置してやれ

147:nobodyさん
08/12/09 02:09:02
どもども。

<タグ>あうあう</タグ><タグ>あうあう</タグ>ゲロゲロ<タグ>あうあう</タグ>

みたいな文字列からタグの中身をタグも含めて配列に格納していきたいのですが、どうやったらいいのでしょうか。

148:nobodyさん
08/12/09 02:16:12
XML DOMをつかいましょう!

149:nobodyさん
08/12/09 02:20:39
>>147
正規表現で抜き出す
URLリンク(jp.php.net)

150:nobodyさん
08/12/09 02:42:47
xmlに正規表現てw

151:nobodyさん
08/12/09 02:50:19
なんでxmlって決め付けてるんだよ

152:nobodyさん
08/12/09 03:19:03
>>149
できました!

>>148
こんど勉強してみます。

153:nobodyさん
08/12/09 04:53:11
トップページに検索フォームを用意しておいて
トップページと検索結果ページのレイアウトを全くの別物にしたい場合
GETに中身がなかったらトップページへ
中身があったら検索結果ページへとか言う風にif文でhtmlを丸ごと括って分岐させる感じでいいの?
なんかスマートじゃない気がするんだけど

154:nobodyさん
08/12/09 05:12:49
検索アクションがあったら中身が空であっても検索結果を出すべきだろ
検索単語を入れるように検索結果のページで促したり
単純にヒットしなかったと検索結果を出すのが普通

155:nobodyさん
08/12/09 13:03:23
いいことを教えてやろう。

<form action="search.php">

156:nobodyさん
08/12/09 14:41:55
入力エラーだからlocationヘッダでトップページに返せばいいんじゃない?
できればエラーメッセージつけてかえすと親切だな。

157:nobodyさん
08/12/09 20:34:24
トップページと同一のファイルで検索結果を表示しようとしてるの?
普通に検索用のスクリプト作ればいいじゃない。


158:nobodyさん
08/12/09 22:03:51
symfonyで作ったスクリプトって、単体じゃー動かないの?
symfony本体無いと動かない?

上の質問が正解だとすると、レンタルサーバではほぼ使えないですよね?
symfony使えるサーバじゃないと。

159:nobodyさん
08/12/09 22:10:06
>>158
フレームワークなんだからそれ通さないと動かないに決まってるだろ
PHPのフレームワークなんだからPHPで書かれてるだろ
PHPさえ使えればどの鯖でもつかえるんじゃね?

160:nobodyさん
08/12/09 22:56:48
よろしければご質問いたします

データベースに内に用事のある日付と人のIDを入れておくテーブルが有ったとします
(DATE, ID)
(11/29, K)
(12/5, F)
(12/7, F …みたいな感じ)

そこからSQL文で月を指定してまとめてデータを抜き出しておいて
画面テーブルのトップに日付と曜日の一覧を表示させておいて
人別に用事のある日付に×を書き込みたいのですけど
(5日と7日に用事があればF, , , , ,×, ,×, …みたいな感じ)

SQL文で範囲選択して取得したデータを保持しておいて
その中に条件にあったデータが有るかをチェックする事って出来ますか?

for文で画面テーブルを作成しながら$iの値を日付に合わせて増やしていき
SQL文で一度取得したデータの中に$i(日付)と同じものが有れば
×を記入さていこうかなと考えています

お分かりになるかた、もっといい方法を思いつく方
ご教授を願えたら有り難く思います

161:nobodyさん
08/12/09 23:00:33
> ご教授を願えたら有り難く思います

「ご教授願えますか」なら兎も角、不思議な日本語。

162:160
08/12/09 23:09:26
>>161
早速ご指摘を頂き有り難う御座います

追加ですが配列を使用せずに記述をしたいと考えております

お分かりになる方、もっといい方法を思いつく方
ご教授願えますか

163:nobodyさん
08/12/09 23:15:35
このスレを教授が見てる確率は限りなく低いので
無理でないかと思います
大学で聞くのが一番早いと思うのでそちらをお勧めします

164:160
08/12/09 23:21:52
>>163
度々のご指摘ありがとう御座います

正しくは教示の様ですね

>>160>>162に関しまして
お分かりになる方、もっといい方法を思いつく方
ご教示願えますか

165:nobodyさん
08/12/10 00:15:00
>>164
SQLのクイズ出してるつもりならスレチだよ。
MySQLならgroup_concat(DATE) と group by IDを使って行を取得というのが楽
標準SQLで組もうとすると、ちょっとパズルチックになるからね。
他人が書いた答えは知ってるけど、オリジナルじゃないからググってみることをお勧めする。

個人的にはfor文で処理するより、rangeと配列、array_mapでサクッとテーブル書く方が好きだな。
ループはダサい。

でもあえて配列を使わないんなら、ORDER BY ID, DATEでクエリの結果セットを
ループしながらifとswitchでテーブル組めば普通にできる。

166:160
08/12/10 07:53:28
>>165
ご返答有り難う御座います

現在インターン中なのですが
そこで課題として従業員のシフト表を作成しています

従業員テーブルから情報を引き出して
それを元に休日テーブルから情報を引き出して表を作成しようと考えています

当初は一度配列に入れてから配列一つひとつをfor文とif文で参照しようと考えていましたが
担当の方にそのアイデアを話してみた所
配列に入れなくても出来ると一蹴されて困っていました。

一度>>165様に頂いたワードを調べて参考にしたいと思います

また別の方法が有りましたら教えていただけると
有り難く思います

167:nobodyさん
08/12/10 07:54:29
2chでアルゴリズム聞いて実装するとか嫌なインターンだなw

168:nobodyさん
08/12/10 08:13:18
いや、話を聞いてみるとよくある話。
ちゃんと説明しない嫌な担当だな。

ところで、面白い方法(拡張しないなら冗長だけど)あるよ。
配列もforループも使わない。たぶんifも最小限になる。
RecursiveIteratorIteratorっていうのがあるから、
個人イテレーターを親に日付イテレーターを子に持つようなイテレーターを
定義して、PDOをマップする。日付イテレーターのnext()は次にSQLデータの
有無にかかわらず日付をインクリメントする。
フィルターイテレーターも同時に実装して月別フィルターとか年別フィルター
とか週別フィルターとかも実装する。
テーブルソースの作成部分はデコレーターでデータをラップして文字列化
するようなものにする。
すると、
$obj = new shiftTable(array('scope'=>'month', 'target' => 12));
echo $obj;
で表が自動出力されるようなものが作れる。

169:160
08/12/10 08:34:45
>>167
グループ課題の担当している部分なのでグループ全体に
影響が出ないよう早く見当を付けたいと思い質問させていただきました

>>168
私の知識では拡張という言葉がどれ程の物をあらわしているのか分かりませんが
>>160は若干端折って記入しており、実際には×では無く
休日テーブルを書き換える為のチェックボタンが付いており
従業員が現在休みになっている日は初期画面で黒くチェックが入って表示され
画面テーブルの外部にsubmitボタンが付いています

担当の人の話では
休日テーブルから5と7という値を取得すれば配列に入れなくても
画面テーブルの5番目に表示させてから7まで空のセルをつくり
7番目でまた表示させることが出来ると言われました

それを解決しようと思い>>160の質問に至ったわけです

>>168様の方法も調べて参考にさせて頂きたいと思います
ご返答ありがとうございました

170:nobodyさん
08/12/10 08:48:49
> 休日テーブルから5と7という値を取得すれば配列に入れなくても
> 画面テーブルの5番目に表示させてから7まで空のセルをつくり
> 7番目でまた表示させることが出来ると言われました

なんというトーニャハーディング、できりゃいいんかい!って感じの考えだな。
SELECTで前回表示のレコードを取得しとくのか、forループで前回データを保存するのか
いずれにしても、表示ロジックをデータ処理に放りこむのか・・・すごいな。
そういうところでは、はいはいって言うこと聞いて逆らわない方がよさそうw

もし、フォーム要素なんかが絡むんなら>>168の方法で基本ロジックを作成して
デコレーターでラップするといいんだけど、習得には多少なりとも時間が
かかるかもしれないのでお勧めはしない。

171:nobodyさん
08/12/10 10:52:26
fromのポストでsubmitのnameの値を取得する方法を教えてください。

<input type=”submit” name="取得する値” value=”送信” />



172:nobodyさん
08/12/10 11:00:06
$_POST['取得する値']

173:nobodyさん
08/12/10 11:01:37
もしくは"送信"が限定されてるなら、array_search("送信", $_POST);

174:nobodyさん
08/12/10 11:07:56
>>173
誤解していました。
ありがとうございます。
array_search覚えました。

175:nobodyさん
08/12/10 11:29:34
少しおしえてください。
PDOでInsertをプリペアドステートメントで行うとき、値が空っぽの時、
NULLを挿入したいのですが、NULLじゃなく、''の空が挿入されます。

これってPDOのオプションで自動で''の時は、NULLを挿入することは出来ないのですか?

176:nobodyさん
08/12/10 11:34:32
どんなソースで実装したの?

177:nobodyさん
08/12/10 12:04:52
>>176

例えばこんな感じ

$id = 1;
$name = 'abc';
$tel = '03-3333-3333';
$email = '';

$sth = $dbm->prepare("INSERT INTO `test` (id, name, tel, email) VALUES (?, ?, ?, ?);");
$sth->execute(array($id, $name, $tel, $email));

この場合、$email が空になってるので、''でInsertされたと同じになって、
NULLが入りませんので、これをPDOのオプションでNULLに出来たらなと・・



178:nobodyさん
08/12/10 12:13:26
$emailをNULLにすればよろしい

179:nobodyさん
08/12/10 12:33:55
$sth->execute(array($id, $name, $tel, null));
にすれば、NULLが入るのは分かってるのですが、、それはめんどくさいですよね。。

180:nobodyさん
08/12/10 12:47:47
空文字入れたいのか、null入れたいのかの区別がつかないじゃないか。
もし空文字のときは必ずnullでいいならば、間に関数1つかませばいいべ。

181:nobodyさん
08/12/10 12:57:22
>>179
バインドメソッドで明示的に指定すれば?

182:nobodyさん
08/12/10 12:57:33
そうですよね。
かますことにします。

ありがとうございます。

183:nobodyさん
08/12/10 13:03:54

もう一つ聞いてもいいですか?
PDOとMySQL5です。

PDOを使ってSELECTをした場合、クエリーキャッシュは使われてるのでしょうか?

(PDO::MYSQL_ATTR_USE_BUFFERED_QUERYは無効にしてあります)


184:nobodyさん
08/12/10 13:13:49
MySQLのクエリーキャッシュのことを言ってるなら、MySQLの設定次第

185:nobodyさん
08/12/10 13:18:14
書き忘れましたが、PHP5.2.0です。

>>184
PHPのネイティブ関数であれば、クエリーキャッシュは効いてるですが、PDOを使うとだめぽっい。。


PHP5.2.1にアップするしかないのかなぁ・・。


186:nobodyさん
08/12/10 14:41:30
動画データFLVの1コマ目だけをjpegにして、サムネイル化して表示
をしたいのですが、どうすれば出来るでしょうか?


PHP5.2を使ってます。詳しい方いらっしゃったらおしえてください。

187:nobodyさん
08/12/10 14:48:09
>>185
PHP5.2.0ってだめなの?5.1.17ぐらいから使えるはずだけど。
まぁ、書いてるんだしそうなのかな・・・

188:nobodyさん
08/12/10 15:00:33
>>187

PHP5.2.0のPDOだとクエリキャッシュが効いてないみたいですね。

PDO::MYSQL_ATTR_USE_BUFFERED_QUERYを有効にすると効きますが、副作用があって。。

189:nobodyさん
08/12/10 18:06:24
どんな?

190:nobodyさん
08/12/10 18:38:54
LIMIT ?,? とかやるとエラーになります。
なので、LIMIT 0,10 とか LIMIT {$offset}, {$limit}とやれば良いんですけど・・。 

191:nobodyさん
08/12/10 19:00:30
まだ勉強中なんですが、phpで実現可能かどうか質問させて下さい

メールを受信した後、それをHTMLとして表示させたいんです。
エンコード状態のマルチパートなメール(ソース?)があるとして、
それをHTMLとして出力するライブラリみたいなのとかありますか?
問題は画像の部分だと思っています。(どう実現するかイメージも沸きません)

具体的な使い方は調べますので、あるかどうかと、
名前とかヒント教えてもらえるとありがたいです。

ちなみに、レンタルサーバ借りて(Web/Mail/php/DB)
iPhoneから使えるWEBメールシステムを自分の為に作ってます

192:nobodyさん
08/12/10 19:05:12
PEAR Mailに受信したメールを読ませれば添付ファイルまで抽出できる。
メールサーバが立ってるなら、.forward等でphpプログラムに渡すと簡単。
他所のメールサーバーでも、POPやIMAP用の関数でアクセスすることも可能。
解釈部分はPEARが実績があると思う。


193:nobodyさん
08/12/11 01:53:18
>>191 レンタルサーバだと難しいと思うよ

194:nobodyさん
08/12/11 12:19:57
>>191
iPhoneならGmail使えば良いのに・・・


195:nobodyさん
08/12/11 12:31:14
191です
ありがとうございます

>>192
PEAR MailのPOP3でメールとってますが
画像部分を一旦保存しなきゃダメですかね〜
極端な話、メールのテキストと埋め込み画像をまとめて
1つの画像に落としてくれる関数があればいいんですけど都合よすぎですね><
>>193
ネックは画像を抽出する部分とかでしょうか?
>>194
Gmailはメール入力が難ありで・・・
Yahoo!JメールはiPhone用のメール作成画面ないし・・
それと、
あるAさん宛てのメールとAさんから来たメールを抽出して
一覧で見せるようなのをイメージしてます

196:nobodyさん
08/12/11 15:16:35
>>195 画像抽出は簡単だけど、
送信されてきたメールをプログラムに渡すにはサーバの設定が必要で、
POPから取得するとCRONの設定が必要。
メール送信して、スクリプトにアクセスするならいいけど。

197:nobodyさん
08/12/11 15:47:11
特定URLに定期的にアクセスしてくれる、CRONサービスがあるから、
それを利用すればOK

198:nobodyさん
08/12/11 15:48:27
WebMailに使うならアクセス時に全部取りに行けばいいので、
cronはいらないんじゃね?

199:196
08/12/11 17:30:03
ごめん勘違いしてた。じやあIMAP関数使えば楽勝。

200:nobodyさん
08/12/11 22:26:19 nahQekTa
//↑DB接続からSELECT文実行まで↑
$perPage=10;
$index=0;
for($i = $index; $i < $index + $perPage ; $i++){
$row = $res->fetchRow(DB_FETCHMODE_OBJECT,$i);
echo $row->id;
//↓$row->***を使用した処理
}
クエリ結果$resから順次行を取り出し$row->***で取得されるデータを使って処理をしたいのですが、echo $row->idを実行してもなにも表示されません(ソース上も)。

$row = $res->fetchRow(DB_FETCHMODE_OBJECT,$i);
↑この部分がおかしいんだとは思うんですが・・・

201:nobodyさん
08/12/11 22:51:56
fetchRowで$iやめてみたら?
そのままだと$rowでbreakする必要があるかもしれないけど。

202:nobodyさん
08/12/11 22:54:53 nahQekTa
>>201
レスありがとう

本当は$indexに現在のページ数が入って$indexの時は1〜10行目まで、$index=2のときは11〜20行目までという風に処理をさせたいのでfetchrowに$iを使わずwhileなどで処理できないんですorz

203:nobodyさん
08/12/11 23:04:10
>>202
それ、結果セット時点でseekしといた方がいいんじゃないの?
全結果セットから、毎回行指定じゃ重いでしょ。

とはいえ、やりたいことができない理由は他にあるだろうね。
クエリが間違ってるとかない?

204:nobodyさん
08/12/11 23:12:27
>>203
レスどうもです。
まだ勉強中なのでseekっていうのが・・・・
結果セットから配列なりに格納して結果セットを開放しておくということでしょうか?

クエリのコードは
sql = "select * from table ORDER BY id DESC ";
$res =& $db->query($sql);
if (PEAR::isError($res)) {
die($res->getMessage());
}
で、他のwhileで全行取り出しした場合には上手くうごいてくれているのでクエリは大丈夫かと思うのですが・・・

205:nobodyさん
08/12/11 23:46:54
あぁ、ごめん、seekって勢いでミスったw

ところで、クエリにLIMITを含めておくわけにいかないの?

あと、fetchRowの行指定は1回だけ発動して、あとはループでいいと
思うんだけど。

あと、単にフィールド名が違うとかじゃないよね?
var_dumpとかしてます?

206:nobodyさん
08/12/12 01:30:02
普通limitだわな

207:nobodyさん
08/12/12 11:46:01 MaDVXqed
if (!is_dir($dir)) {
$rc = mkdir($dir, 0755);
でディレクトリーを作ったら所有者がwwwになります
これをuserにして作ることはできないのでしょうか?
よろしくお願いします

208:nobodyさん
08/12/12 12:32:00
そんなことができたらセキュリティホールになるでしょう。

しかし、対応としては
Webサーバーの実行ユーザーを変えるか
root権限wで実行してchownもしくは、mkdirのオプションを買うか
CGIモード+suexecで起動するか、
setuidした別のラッパーをかますか、

ま、そんなとこだろう。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5345日前に更新/180 KB
担当:undef