• 締切済み

PHP チャット 画像他

tracerの回答

  • tracer
  • ベストアンサー率41% (255/621)
回答No.3

既に似たような回答がありますが、サンプルはリアルタイムチャットではありませんよ。もっと言えば、JavaScriptによって10秒おきに強制的に読み込みを行っているだけなので、サーバーサイドの言語は、PHPであろうが、Perlではあろうが、「リアルタイム」という部分については一切関係がありません。10秒おきで十分であればよいのですが、リアルタイムにこだわるのであれば、サンプルをいくら読み解いてもゴールにはたどり着けないと思います。 昔ながらの方法であれば、ポーリングを行ってリアルタムチャットを実現していましたが、導入コスト的なこともあって、現在では、サーバー側のプッシュ通知を実装する例がほとんどだと思います。また、cometという高いソフトウェアを使わなくても、サーバーについて少し勉強すれば、無料で個人で余裕で実装(socket.i.oなど)できます。また、簡易なものであれば、サーバーの実装すらいらず、ブラウザの機能(javascript/WebRTC)だけでも実装できます。参考までに。

perlhogehoge
質問者

お礼

御回答ありがとうございます。 このサイトは、リアルタイムではないのですねΣ(゜Д゜) どうりで、少し反応が遅いはずですね リアルタイムのほうがいいですが、それに近ければいいのです しかし、10秒起きということはサーバー様に 負荷がかかるということですか?・・・ クライアント投稿までは、サーバーは応答せず 投稿すると、応答というほうがサーバーに 負荷がかからないですよね? これらの機能が、Comet ajax websocket socket.i.o などといったことでしょうか? まだ完全に理解できてません(`;ω;´)

関連するQ&A

  • perl で 画像を取得したい

    下記perlのコードを書いたのですが、なぜか、画像を取得することができません。 メモ帳で開くと、画像データっぽい文字列はあるのですが、普通に見ることができません。 なぜでしょうか?また、どのように改良すれば取得できますか? ご存知の方教えていただけないでしょうか? 宜しくお願い致します。 $source = &GetImg('http://www.goo.ne.jp/img/logo/gootop_logo.gif'); $FileOut = "tmp.gif"; open(OUT, ">$FileOut"); print OUT $source; close (OUT); sub GetImg() { my($url) = @_; use LWP::UserAgent; my $browser = LWP::UserAgent->new; my $response = $browser->get($url,'User-Agent' => 'Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.5) Gecko/20031007'); my $img_file = $response->content; return $img_file; }

    • ベストアンサー
    • Perl
  • PHP初心者です。

    xamppを使用して勉強してます。 htmlでファイルをアップロードするソースを作り、phpで <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8" /> <?php $file=$_FILES['my_img']; $filePath="./user_img/".$file['name']; move_uploaded_file($file['tmp_name'],$filePath); というコードを書いて実行したところ、 Warning: move_uploaded_file(./user_img/021.jpg): failed to open stream: No such file or directory in  このphpファイルの名前 on line 〇〇行目 Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\php6207.tmp' to './user_img/021.jpg' in このphpファイルの名前 on line 〇〇行目 とエラーになってしまいました。 なぜでしょうか?

    • 締切済み
    • PHP
  • PHPで画像をアップロード&保存したいのですが..

    初心者です. ブラウザから画像をアップロードし保存できるようにしたく, サンプルを基に以下のようなソースを書いてみたのですが, 画像の保存ができません. もし直さなければいけないところがわかる人がいらっしゃいましたら ぜひ教えてください. よろしくお願いいたします. <?php $img_name = $_FILES["img_path"]["name"]; $img_size = $_FILES["img_path"]["size"]; $img_type = $_FILES["img_path"]["type"]; $img_tmp = $_FILES["img_path"]["tmp_name"]; if($_REQUEST["up"] != ""){ if($img_tmp != "" and $img_size <= 30000){ $img_message = "名前は: $img_name <br>サイズは: $img_size <br>MIMEタイプは: $img_type <br>一時的に保存されているパスは: $img_tmp <br>"; }else{ $size_error = "サイズが大きすぎます。ファイルサイズは30キロバイト以下です。"; } } $FilePath = "./img/".src.".".GetExt($img_name); move_uploaded_file($img_temp,$FilePath); //GetExt function GetExt($FilePath){ $f = strrev($FilePath); $ext = substr($f, 0, strpos($f,".")); return strrev($ext); } ?>

    • 締切済み
    • PHP
  • 画像の複数登録についての質問です。

    画像を複数登録したいんですが500エラーが出てしまいます。 htmlから <input type="file" size="50" name="img1_1"> <input type="file" size="50" name="img1_2"> として、cgiにsubmitします。 cgi側でファイル名をデータ番号に変えて保存します。 例) aaaaa.jpg ↓ 1234.jpg ---cgi--- if ($param{'img1_1->name'} ne ""){ if ($param{'img1_1->name'} =~ /(\.gif|\.jpg|\.jpeg|\.pig|\.bmp)$/ ) { $extension = ($param{'img1_1->name'} =~ m/\.([^\.][0-9a-zA-Z]*)$/); $extension = $1; $filename1_1 = $upload_dir.$param{'data_num2'}."_1".$extension; if (open(OUT, ">$filename1_1")) { binmode(OUT); print OUT $param{'img1_1'}; close(OUT); } } } if ($param{'img1_2->name'} ne ""){ if ($param{'img1_2->name'} =~ /(\.gif|\.jpg|\.jpeg|\.pig|\.bmp)$/ ) { $extension = ($param{'img1_2->name'} =~ m/\.([^\.][0-9a-zA-Z]*)$/); $extension = $1; $filename1_2 = $upload_dir.$param{'data_num2'}."_2".$extension; if (open(OUT, ">$filename1_2")) { binmode(OUT); print OUT $param{'img1_2'}; close(OUT); } } } ------------ <input type="file" size="50" name="img1_1"> か <input type="file" size="50" name="img1_2"> のどちらか一方に画像ファイルを指定すれば大丈夫なんですが 両方画像を入れてしますと500エラーになってしまいます。 どのように修正すればいいんでしょうか?

    • ベストアンサー
    • Perl
  • php フォームで画像アップ

    phpにてフォームで画像をUPできる機能を持たせたいのですが、うまくできあがりません。 ファイルもUPされませんがその前の、 $_FILES ***; が機能していないようなのです。 (たとえば$img1をprintしても空となる) http://masago.kir.jp/php20030814.php http://masago.kir.jp/phpsc.php?s=php20030814s.php を参考に $img1 = $_FILES ['aaa']; $img1tmp = $_FILES ['aaa']['tmp_name']; $img1name = $_FILES ['aaa']['name']; $img1size = $_FILES ['aaa']['size']; $img1type = $_FILES ['aaa']['type']; とし、 <input type="file" name="aaa" ENCTYPE="multipart/form-data"> としています。 またレンタルサーバをもちいているのですが、 htaccessの中身は、 <IfModule mod_php4.c> php_value register_globals 1 ・ ・(省略) ・ php_value file_uploads 1 php_value upload_tmp_dir /○○/ </IfModule> としています。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHP 画像の表示

    プログラミング初心者です。 PHPでブラウザに画像を表示したいのですが映らなくて 以下のソースコードは間違っているでしょうか? <?php $fileName = "img/test.jpg"; //ファイル名 if (file_exists($fileName)) { header('Content-type: image/jpeg'); header('Content-Length: '.filesize("http://localhost:8080/test.jpg")); //あった方が良い readfile("http://localhost:8080/test.jpg"); //ファイルを読み込んで標準出力に書き出し exit; } ?>

    • ベストアンサー
    • PHP
  • perlでCSV形式ファイルのアップロード

    本日、同じ質問をしたものです。 前回の問題は解決したのですが、ファイルがアップロードできないで悩んでします。 CGIのプログラムは以下のソースです。 #! c:/perl/bin/perl use CGI; # CGIヘッダーの出力 print "Content-type: text/html\n\n"; my ($query,$fileName); $query = new CGI; $fileName = $query->param('fileName'); open(OUT, ">./a.csv"); binmode(OUT); while(read($fileName,$buffer,1024)) { print OUT $buffer; } close(OUT); close($fileName); #ファイルハンドルをcloseしています。 exit ; ファイルは、作られるのですが、中身が書き込まれません。 どなたか教えてください。 お願いします。

    • ベストアンサー
    • Perl
  • kcaptchaで画像が表示されません。

    kcaptchaという画像認証を導入しようとしていますが 画像が表示されず(パスが通ってない×印がでる) 投稿させていただきます。 http://freecode.com/projects/kcaptcha 画像表示部分のソースはいかになります。 <form action="index.php" method="post"> <p>Enter text shown below:</p> <p><img src="./kcaptcha.php?<?php echo session_name()?>=<?php echo session_id()?>"></p> <p><input type="text" name="keystring"></p> <p><input type="submit" value="Check"></p> </form> このimg src="./kcaptcha.php?<?php echo session_name()?>=<?php echo session_id()?> がうまく言ってないと思うのですがどう修正したらよいかわからず 投稿させていただきました。 img src="./kcaptcha.php?←の部分はindex.phpなどいろいろ試しましたがだめでした。 何か自作のphpファイルなどを用意する必要があるのでしょうか? 以下環境になります。 サクラレンタルサーバ スタンダードプラン session.save_path /home/user/tmp /home/user/tmp session.use_cookies On On session.use_only_cookies On On session.use_trans_sid 1 1 tmpフォルダにはsessionデータらしきファイルが保存されています。 提示不足の情報などありましたらできる限り 対応したいと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • はじめまして

    はじめまして 現在、PerlのMVCフレームワークCatalystのperlソースコード内で ボタンを押すと、ユーザーにとあるファイルをダウンロードさせたい と考え、以下のように実装しました my $filedir = '/var/www/html/Catal/lib/Catal/Controller/'; my $filename = 'test.zip'; my $filepath = $filedir . $filename; print "Content-type:application/download; name=\"$filename\"\n"; print "Content-Disposition: attachment; filename=\"hogehoge\"\n\n"; open(FILE,"< $filepath"); binmode FILE; binmode STDOUT; print while(<FILE>); close(FILE); 上記コードを動かすとIEのページにZIPファイルがバイナリ表示されるだけで ダウンロードダイアログすら出ません。 どうしたら、ダイアログを表示させ、ユーザーが望む場所にダウンロード させることができるでしょうか。 よろしくお願いします。

  • 画像投稿がない場合、特定画像を表示させたい

    画像投稿型BBSを改造しています。 画像を投稿すると、画像名をlinux時間に変換し、1296913178.jpgとして保管します。 一方、CSVファイルにも1296913178.jpgという名を記載します。 【困りごと】 画像投稿が前提とされているため、画像投稿がなかった場合CSVファイルへの記載 が空欄となるため<img src="./data/> となってしまい見た目がよくありません。 【改造したいこと。】 デフォルトで j.jpg という画像を置き、新規投稿時に、画像名がある場合は <img src="./data/j.jpg1296913178.jpg> となり、 画像がない時は、<img src="./data/j.jpg> となるように改造したいと考えています。 【今までに出来たこと】 下記のソースの一番下をj.jpg$attachに変更することにより、CSVファイルへの書き込み については j.jpg1296913178.jpg というものを作ることができました。 【出来ないこと(真の困りごと】 画像名をlinux時間に変換し、1296913178.jpgとして保管していますが、 これをj.jpg1296913178.jpgとして保管するようにすることができません。下記をテスト しましたが駄目でした。 if (!$original || !$filename) $filename = j.jpg$now.".".$ext; if (!$original || !$filename) $filename = j.jpg+$now.".".$ext; .htaccessでも結構です。対応アドバイスをお願いします。 【ソース】 // ファイル名を抽出 if (eregi("name=\"?([^\"\n]+)\"?",$m_head, $filereg)) { $filename = ereg_replace("[\t\r\n]", "", $filereg[1]); while (eregi("(.*)=\?iso-2022-jp\?B\?([^\?]+)\?=(.*)",$filename,$regs)) { $filename = $regs[1].base64_decode($regs[2]).$regs[3]; $filename = convert($filename); } $ext = substr($filename,strrpos($filename,".")+1,strlen($filename)-strrpos($filename,".")); } // 添付データをデコードして保存 if (eregi("\nContent-Transfer-Encoding:.*base64", $m_head) && eregi($subtype, $sub)) { $tmp = base64_decode($m_body); if (!$ext) $ext = $sub; if (!$original || !$filename) $filename = j.jpg+$now.".".$ext; if (strlen($tmp) < $maxbyte && !eregi($viri, $filename) && $write) { $fp = fopen($tmpdir.$filename, "w"); fputs($fp, $tmp); fclose($fp); $attach = $filename; } else { $write = false; } } } if ($imgonly && $attach=="") $write = false; list($old,$otime,$osubj,$ofrom,,) = explode("<>", $lines[0]); // 連続投稿 if ($from == $ofrom && $now - $otime < $wtime) $write = false; $id = $old + 1; $subject = trim if($subject=="") $subject = $nosubject; $line = "$id<>$now<>$subject<>$from<>$text<>j.jpg$attach<>\n

    • ベストアンサー
    • CGI