くだすれPHP(超初心者用)3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/10/25(木) 16:04:31ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
---前スレのテンプレここまで---
前スレ: くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
△▲ WebProg 初心者の質問 Part16 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1187729623/
完走したら、雑談スレで待機でどうでしょう
【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/
0341nobodyさん
2008/02/03(日) 14:54:58ID:???PHPのソースコードに変な記号を表示させる記述がないのであれば、
間違って?を書いてるとかの可能性が考えられる。
あと、実行後のhtmlのソースのどの部分に記述があるかによって、
推測する事になると思う。
<?php
echo "test!<br>";
と、あえて書いてみるとか。
0342nobodyさん
2008/02/03(日) 15:18:25ID:???echo "test!<br>";
と書いてためしに実行してみましたが、?test!と表示されます。
色んなPHPで実行してみましたが必ず?がついてきます。
間違って?を書いているということは無いと思うのですが・・・
0343nobodyさん
2008/02/03(日) 15:51:00ID:???0344nobodyさん
2008/02/03(日) 16:13:35ID:???BOMというのは始めて知りました。ありがとうございます。
このBOMを削除するのにUTF-8nで保存すると直るようなのですが、普通のメモ帳ではUTF-8でしか保存できません。
function delete_bom($str)
{
if (ord($str{0}) == 0xef && ord($str{1}) == 0xbb && ord($str{2}) == 0xbf) {
$str = substr($str, 3);
}
return $str;
}
上のコードでBOMを削除できるそうなのですが。<?phpの処理の中で記述すればいいのでしょうか?
?が消えないのですが。本当にわからない事だらけで申し訳ありません
0345nobodyさん
2008/02/03(日) 16:16:54ID:???0346nobodyさん
2008/02/03(日) 16:18:30ID:???メモ帳で開発は有り得ない。
参考:http://besunday.hp.infoseek.co.jp/html_editor.htm
0348nobodyさん
2008/02/04(月) 00:53:06ID:???いつも秀丸使っててbom有りでスクリプト書いてたんだが…
0349nobodyさん
2008/02/05(火) 16:49:29ID:???予期せぬエラーが起きる
0350nobodyさん
2008/02/05(火) 19:30:27ID:???bom有りで書いてたぜ。
具体的にどんなエラーが起きるの?
0351nobodyさん
2008/02/05(火) 20:27:52ID:???秀丸だと保存オプションもUTF-8Nとかもないしbom入らないのかな。
メモ帳でUTF-8で保存して実行したら ・ソtest!<br> みたいのは出た。
0352nobodyさん
2008/02/05(火) 20:48:26ID:???あんまり古いのだとないかもしれんけど。
これはphpが読み込んだときに自動的に削るべきもんかもね。
0353nobodyさん
2008/02/05(火) 23:51:41ID:???web 上では見た目上、変化無かったけど、
CLI で実行させたら、bom付きでは頭に 0x81, 0x45, 0xbf の3バイトがくっついてきた。
0354nobodyさん
2008/02/06(水) 00:11:29ID:???そのくっついてくるのがアレ。
BOMつきUTF-8でファイル冒頭に
<?php
header("Content-Type: text/html; charset=UTF-8"); // 例。
なんてのを書くと「ヘッダ送ったあとでヘッダ変えたいとか、無理」と
PHPさんが優しく語りかけてくれる。
0355nobodyさん
2008/02/06(水) 00:16:53ID:???0356354
2008/02/06(水) 00:24:06ID:???> 頭に 0x81, 0x45, 0xbf の3バイト
0xef 0xbb 0xbf の3バイト(>>344参照)、じゃないのね。
0357nobodyさん
2008/02/07(木) 16:59:49ID:d+qc2qYDPOSTのデータと一致してるかどうかでforeach書いてるんですけど
なんとなく無駄な感じがしてます…
いい書き方ってありますか?
foreach ( $hoge as $k => $v ) {
$checked = "";
if (isset($_POST['hoge'])) {
foreach ( $_POST['hoge'] as $key ) {
if ($key == $v) {
$checked = " checked=\"checked\"";
}
}
}
echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}
0358nobodyさん
2008/02/07(木) 17:42:05ID:???こーかな?判定は一行にもできるけど逆に見づらいし。
foreach ( $hoge as $k => $v ) {
$checked = "";
if( is_array($_POST['hoge']) && array_search($v, $_POST['hoge']) != FALSE ){
$checked = " checked=\"checked\"";
}
echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}
0359nobodyさん
2008/02/07(木) 17:44:38ID:???0361nobodyさん
2008/02/08(金) 13:37:59ID:???359 はクロスサイトスクリプティングの可能性を示唆してるんだろ。
0362357
2008/02/08(金) 17:52:07ID:???これは例なのでいれてないだけです。
$vはこっちで作成してる配列なのにな〜と思って。
ちなみに358は
!= FALSE ではなく !== FALSE ですね
0363nobodyさん
2008/02/08(金) 18:47:04ID:???0364nobodyさん
2008/02/09(土) 01:31:23ID:???0365nobodyさん
2008/02/10(日) 18:46:39ID:???それをそのまま出力したら\"となるのですが、
どうすれば\をつけずに表示や保存できるんですか?
0366nobodyさん
2008/02/10(日) 19:57:48ID:???0367nobodyさん
2008/02/10(日) 20:08:37ID:???それしか方法ないのですか?
0368nobodyさん
2008/02/10(日) 20:10:21ID:???0369nobodyさん
2008/02/10(日) 20:19:51ID:???0370nobodyさん
2008/02/10(日) 20:42:46ID:???http://jp.php.net/manual/ja/function.stripcslashes.php
0371nobodyさん
2008/02/10(日) 20:43:34ID:???http://jp.php.net/manual/ja/function.stripslashes.php
0372nobodyさん
2008/02/10(日) 21:12:31ID:???stripcslashes(htmlspecialchars())っていう風につかったんだけどこれでいいのかな
0374nobodyさん
2008/02/10(日) 22:06:12ID:???"はフォームを通すと\\\"として送られてくるんですね
だから先に勝手につけられたスラッシュを消して
htmlspecialchars(stripcslashes($a, ENT_QUOTES)) とやれば"も'もHTML上できちんと表示できるようになりますね
勉強になりました
0375nobodyさん
2008/02/10(日) 22:35:31ID:rhutwfEM<BODY>
<?php
print <table>
print <tr>
<td>print"値"</td>
<td>print"値2"</td>
<td>print"演算"</td>
<td>print"答"</td>
print </tr>
print </table>
?>
</BODY>
</HTML>
だと、エラーがでます。だれかご教授ください・・・
0377nobodyさん
2008/02/10(日) 22:39:38ID:???0378nobodyさん
2008/02/10(日) 22:40:35ID:rhutwfEMすいません、テーブルタグでした。
申し訳ありませんが、参考ページを教えてくれますか?
0380nobodyさん
2008/02/10(日) 22:48:34ID:rhutwfEMわかりました。もう一日考えます。。。
0381nobodyさん
2008/02/10(日) 22:48:39ID:???0382nobodyさん
2008/02/10(日) 23:21:00ID:???0383nobodyさん
2008/02/10(日) 23:54:56ID:???だとしたら文法根本的に間違えてるだろうに。
<BODY>
<table>
<tr>
<td><?php print"値";?></td>
<td><?php print"値2";?></td>
<td><?php print"演算";?></td>
<td><?php print"答";?></td>
</tr>
</table>
</BODY>
</HTML>
0384nobodyさん
2008/02/11(月) 00:20:01ID:???解った後でもう一度このスレに来て自分の書き込み見てみろw
0385nobodyさん
2008/02/11(月) 03:49:39ID:???http://blogn.hustle-user.com/e19.htmlを参考にして、
index.htmlをindex.phpにリネームして、先頭に
<?php
$title="○○";
$page_e='http://www.○○/m/index.html';
$page_j='http://www.○○/m/index.html';
$page_i='http://www.○○/m/index.html';
$i=$_SERVER['HTTP_USER_AGENT'];
require_once('agent.txt');
?>
としました。そして携帯からアクセスしたところ無事振り分けることが出来ました。
しかしPCからみたら外部のcssを読み込んでいないようでページレイアウトが崩れてしまいました。
相対パスなのがいけないと思って、
<link href="http://○○/css/global.css" rel="stylesheet" type="text/css" />
と、絶対パスに書き換えましたが改善しませんでした。
そしてさらにわからないことに、ブラウザ(Sleipnir)で何回も読み込んでいると
5回に一階ぐらいきちんと読み込んで表示されるのです。
どういうことなのでしょうか。もしかしてphpの問題じゃなくhtmlの問題でしたら板違い申し訳ありません。
0386nobodyさん
2008/02/11(月) 04:14:40ID:???0387nobodyさん
2008/02/11(月) 05:29:22ID:???0388385
2008/02/11(月) 05:49:50ID:???問題の切り分けですか。
まずCSSのパスは間違ってませんでした。
htmlや画像のリンクは相対パスでも問題なく通ってるんで
もしかしたらパスの問題ではないんでしょうか?
となると。。文字コードとかでしょうか・・?
ちなみにphpもcssもS-Jis、改行コードはCR+LFでした。
>>387
ふ、振り分けられないですか?
サイトを参考にしつつやってみたのですが・・
0390nobodyさん
2008/02/11(月) 11:04:25ID:???いや、それは別にそういう作り方もあるから別にいいけど
そもそも参考したっていうサイトの内容が突っ込みどころが多すぎて…
0391nobodyさん
2008/02/11(月) 11:10:17ID:???の処理に、腹抱えてワロタ
0393385
2008/02/11(月) 17:22:49ID:???>>389
あ、それはケータイのキャリア別に振りわけていないからです。。。
基本はみんなパソコンのメインサイトのindex.phpにアクセスしてもらって
ケータイの人は別のサイトに飛んでもらうってことで。。
なんか参考にしたサイトがまずかったようで。。。
もしおすすめなどあれば教えて頂けると嬉しいです。
>>392
firefoxはいれてないんで、今からいれて確認してみます。
ところで、火虫とは・・・?
0394nobodyさん
2008/02/11(月) 17:30:47ID:???水虫のライバル。
0395nobodyさん
2008/02/11(月) 17:57:57ID:???0396385
2008/02/11(月) 17:59:06ID:???となると、IE側の問題になるのでしょうか?
そして火虫はわかりませんでした><
0397385
2008/02/11(月) 18:13:19ID:???0398nobodyさん
2008/02/11(月) 20:29:28ID:???どうすれば改行してつなげていけますか?
たとえば
$fh = fopen($file, 'a');
fwrite($fh, "test\n");
としても改行してつないでくれません
0399nobodyさん
2008/02/11(月) 20:42:17ID:???fwrite($fh, "\n");
fwrite($fh, "test");
だろw
0400nobodyさん
2008/02/11(月) 22:35:00ID:???それでもできてませんよ
ためしてください
<?
$file = "test.txt";
$fh = fopen($file, 'a');
fwrite($fh, "\n");
fwrite($fh, "test");
fclose($fh);
?>
いやあ納得いきませんね
いちおうtest\nとやって書き込んで、ファイルを見ると最後は改行されている。
なのに書き込むときはなぜ改行されたところから始まらないのですか?
0401nobodyさん
2008/02/11(月) 23:06:13ID:???もしくは 'ab'
0402nobodyさん
2008/02/11(月) 23:07:39ID:???0403nobodyさん
2008/02/11(月) 23:17:32ID:???0404nobodyさん
2008/02/11(月) 23:24:11ID:???できてました
どうもでした
0405385
2008/02/11(月) 23:42:52ID:???CSSの文字コードをきちんとしていなかったのが問題だったようです。
CSSの先頭に
@charset "shift_jis";
といれると解決しました。
phpじゃなかったですね。申し訳ないです。
0406nobodyさん
2008/02/12(火) 03:40:48ID:???,......,___ ___ お前初めてかここは?
{ r-}"''; (,- ,_'',; 力抜けよ
__ノYv"-ァ'=;} ,_、 Y' リ''ー
ヽー-ハ '、 / キ}、 {"ー {⌒
ト ハ } ,. -ー─-- 、___ / ハノ`{ {
! ! !__! ,-、_ ,,( ,  ̄`ー、 /"''ー;ー'"
|___|! !ー-ニー、;、;'""ノ';{ iー ヽ=ニ=),..- '"
K \ヽ !`ーニ'-、{ (e 人 |' ̄ ̄/`ー! | / /⌒
\ヽ !、ヽ, "")ー-'"| ! | | /! |___{,、 / /
\"'ヽ'ー-" _! || } ー─| | / ヽ/ /
ニ=ー- `!!!' ''''ー'"{ | | / /`ー|\/
ーーーー' _ | ./ ヽ__ / | !
0407nobodyさん
2008/02/18(月) 19:07:50ID:???<?php
$mysql=mysql_connect("localhost","user","password");
if(mysql_select_db("dbname", $mysql)){
print "OK";
}else{
print "NG";
}
?>
このようなソースを書いて(user passはサーバーのもの)
PHPとMYSQLがちゃんと動いているのか確認をしようとしたのですが
画面が真っ白になってエラーも帰ってきません。
PHP php-5.1.6-1.6
mysql mysql-5.0.27-1.fc5
FedoraCore5で
php-mbstring php-mysql php-gd php-devel mysql-serverなども全部入れています。
解決方法ご指南ください
0409nobodyさん
2008/02/18(月) 22:25:40ID:???パスワードが通っていない感じのエラーが出ていました
ただ、パスワードは合っていて
コンソールで mysql -u user -pでログインが出来ている状態です
/etc/hosts にもデータベース名は記述してあり(localhost)
なんで通らないのかわからなくなっています
今まで使っていたときは大丈夫で
突然この状態になってしまいました。
どなたかお願いします…
0410nobodyさん
2008/02/19(火) 02:56:13ID:???0411nobodyさん
2008/02/19(火) 10:06:45ID:???PHPには、.NET Framework の ADO.NET のように、自作した csv ファイルに SQL 文で
データを抽出することは可能なのでしょうか。
以下のサイトのような感じで動かす場合です。
ttp://park5.wakwak.com/~weblab/selectTextFile.html
一般的なテキストファイルを開いたり、書き込んだりする方法とは別という意味です。
こういった方法以外でという意味です。
$fh = fopen("csv.txt", "r");
$line = fgets($fh, 1024);
// ここで$lineの条件を調べる。
fclose($fh);
ヒントとなるキーワードでもいいので、お願いします。
0412nobodyさん
2008/02/19(火) 10:26:38ID:???0413nobodyさん
2008/02/19(火) 12:43:40ID:???よく情報が足りないといわれるのですが
どこら辺が足りないですか
>>407でバージョンやOSも書いてますが
エラーはサーバーから離れていたので書けなかったですが
後学のためにもお願いします
0416nobodyさん
2008/02/19(火) 19:38:04ID:???http://kissho.xii.jp/1/src/1jyou27419.txt.html
0417nobodyさん
2008/02/19(火) 20:44:23ID:???よくわからんが、こんなコードがある時点でろくなもんじゃない
if(file_exists("B:\\")){
echo "<center><a href='./$this_file?dir=B:\\'>B:\\</a></center>";
} else {}
if(file_exists("C:\\")){
echo "<center><a href='./$this_file?dir=C:\\'>C:\\</a></center>";
} else {}
if (file_exists("D:\\")){
echo "<center><a href='./$this_file?dir=D:\\'>D:\\</a></center>";
} else {}
if (file_exists("E:\\")){
echo "<center><a href='./$this_file?dir=E:\\'>E:\\</a></center>";
} else {}
if (file_exists("F:\\")){
echo "<center><a href='./$this_file?dir=F:\\'>F:\\</a></center>";
} else {}
if (file_exists("G:\\")){
echo "<center><a href='./$this_file?dir=G:\\'>G:\\</a></center>";
} else {}
if (file_exists("H:\\")){
echo "<center><a href='./$this_file?dir=H:\\'>H:\\</a></center>";
} else {}
0418nobodyさん
2008/02/21(木) 03:11:11ID:???Windowsの拡張漢字(IBM拡張やNEC拡張)や、外字領域も
きっちり対応してくれるような、関数とかないんでしょうか?
0419nobodyさん
2008/02/21(木) 03:39:48ID:???0420nobodyさん
2008/02/21(木) 04:46:45ID:uBvv/k1HXAMPPをインストール後に以下の手順でエラーがでてしまうのですが、何が原因なのでしょうか???
1. Terminal shellに行って、システム管理者ルートでログインします。
sudo su
2. XAMPPをスタートするには、このコマンドをコールしてください:
/Applications/xampp/xamppfiles/mampp start
ここで、このような感じのエラーメッセージがでていまいます。
(No such file or directory, errno = 2)
XAMPP: Error 133! Couln't start ProFTPD!
ちなみにこの段階でXAMPP Control Panelを起動しようとすると「このシステムとは互換性がないためアプリケーションを起動できません」とメッセージが出てしまいます。
OSはMacOSX.2.8で、インストールしたのがXAMPP Mac OS X 0.7.2です。PHP使用以前の問題で恐縮ですがとても困っていますのでどなたかよろしくおねがいします。
0421nobodyさん
2008/02/21(木) 08:00:49ID:???0422420
2008/02/21(木) 15:40:03ID:uBvv/k1Hありがとうございました。。。
0423nobodyさん
2008/02/21(木) 20:36:09ID:???0424nobodyさん
2008/02/21(木) 21:13:13ID:???0425nobodyさん
2008/02/21(木) 22:15:59ID:FbPK8kbcなぜか本文とか件名が化けてしまいます。
文字化け
「あ」→「$B$"(B」
このサイトを参考にしてます。
http://www.phppro.jp/phptips/archives/vol35/1
改行コードが「LFのみ」にしてるからかな?と思うのですが、わかりません。
ご教授お願いします。
0426nobodyさん
2008/02/21(木) 22:17:02ID:???0428nobodyさん
2008/02/21(木) 22:29:31ID:FbPK8kbcsjis,EUC,utf-8に変更したんですが、何も変わりません。。。
0429nobodyさん
2008/02/21(木) 22:37:31ID:???0430nobodyさん
2008/02/21(木) 22:40:10ID:???0431nobodyさん
2008/02/21(木) 22:56:44ID:FbPK8kbcとりあえず33行目から変更してみたんですが、今度はなにも表示されなくなってしまいました。
33 switch(strtolower($structure->ctype_primary)){
34 case "text": // シングルパート(テキストのみ)
35 $diary_body = $structure->body;
36 $diary_body = mb_decode_mimeheader( $diary_body , 'ISO-2022-JP');
あと言い忘れたんですけど、スクリプトはSJIS、DBもSJISでやってます。
0432nobodyさん
2008/02/21(木) 23:00:32ID:???header見て文字コードが何か確かめてSJISに変換しなされ
0433nobodyさん
2008/02/21(木) 23:10:41ID:???0434nobodyさん
2008/02/21(木) 23:14:40ID:FbPK8kbcすみません!!
あと>>432さんの書き込みの意味がわかないんですが、具体的にはどうすればいいんでしょうか?
0435nobodyさん
2008/02/21(木) 23:57:05ID:FbPK8kbcご迷惑欠けて申し訳ありませんでした。
0437nobodyさん
2008/02/26(火) 22:29:16ID:8JcMjBPY$str = $i;
}
こうすると$strには0〜99999999が入りますが、a〜zzzzzzzzまでを$strに入れるにはどう書けばよいのでしょうか?
0438nobodyさん
2008/02/26(火) 23:24:57ID:???aを0、bを1、cを2・・・て対応させればとりあえず入るな。
0439nobodyさん
2008/02/27(水) 00:33:52ID:???$str[] = $i;
}
■ このスレッドは過去ログ倉庫に格納されています