» 訪客:  註冊 | 登入 | 搜尋 | 論壇銀行 | 管理團隊 | 論壇首頁 | 聯盟申請 | 幫助


 
作者:
標題: [求助]php的小問題!! 上一主題 | 下一主題

↓會員頭像↓
↓星星數目↓

名稱﹕ kouser
頭銜﹕invite members
暱稱﹕
積分﹕2190
發貼﹕33
現金﹕1000
存款﹕363697
財富﹕ 富可敵國
性別﹕ 保密
註冊﹕2007-9-4
狀態﹕離線
[求助]php的小問題!!

請問php能否做出像msn對話般的聊天視窗,就是對方輸入資料時
另一方也會變更顯示,我是用來連flash

再來內容是否都得放到www底下,還是說可以放到更底下......
如.../www/magic/...之下或是只能.../www/....

還有就是在連接資料庫時,
主機名稱到底是要加http:/還是不用加
以下是我用來連接的方法
<?php
$link=@mysql_connect("192.168.1.22","1111","123456789"or die(mysql_error());
                                      主機名稱  
$sql="select * from talkdata ";
$load=mysql_db_query("tzeng",$sql,$link);
while($data=mysql_fetch_array($load)){
$oldtalk=$data['name'];
}

$sql="truncate table talkdata ";
mysql_db_query ("tzeng" , $sql , $link);

$sql="insert into talkdata (name) values ('{$_POST['talk']}<br>{$oldtalk}')";
mysql_db_query ("tzeng" , $sql , $link);

$sql="select * from talkdata ";
$load=mysql_db_query("tzeng",$sql,$link);
while($data=mysql_fetch_array($load)){
$newtalk=$data['name'];
echo "retalk=".$newtalk."<br>".$oldtalk;
}

mysql_close($link) ;
?>
感謝^^"


2008-1-21 03:32 PM
查看資料  發送郵件  訪問主頁  搜尋該用戶的全部文章  發短訊   編輯文章  引用回覆

↓會員頭像↓
↓星星數目↓

名稱﹕ eightwing
頭銜﹕版主
暱稱﹕打雜的
寵物﹕小乓 (等級:51)
積分﹕50403
發貼﹕608
現金﹕36620000
存款﹕26943
財富﹕ 富可敵國
性別﹕
來自﹕外太空
註冊﹕2005-4-1
狀態﹕離線
PHP當然可以寫類似MSN(應該算是聊天室吧)對話般的聊天視窗,
方法應該有很多種吧......
我的方法會寫到資料庫(或是文字檔txt也可以)→顯示→寫入→顯示,
通常會設定一定的數量,如五筆,
每次輸入時都檢查總筆數mysql_num_rows,若超過五筆的話,
就用陣列讀取的方試取最舊一筆的序號並刪掉,
然後再insert,
在表單中也會加入hidden的參數,
在寫入前檢查這個hidden的參數是不是空的,
是的話就顯示不動作,
不是空的話將開始寫入的程序,
寫入成市幓N將hidden這個參數清空,
不知道這個是不是你要的.......
轉換成程式碼我會寫成如下:
<?
$host="localhost";//資料庫連結設定
$user="123456";
$password="123345";
$database="tzeng";

$link_ID=mysql_connect($host,$user,$password);
mysql_select_db($database,$link_ID);

$name=$_POST['name'];
$setsubmit=$_POST['setsubmit'];.

//寫前讀取已存在的訊息
$sql="select * from talkdata order by sn;";//欄位最好有兩欄(sn、name)以便判斷,sn欄位最好是auto_increment格式
$result=mysql_query($sql,$link_ID);
$num=mysql_num_rows($result);
for($i=0;$i<$num;$i++) {
        $arr[$i]=mysql_fetch_array($result);
};

if($setsubmit=="OK" and $name!=""){//判斷是否有送出表單

    if($num>=5) {
        $deletedata=$arr[0][sn];
        $sql2="delete from talkdata where sn='$deletedata';";//刪掉最前面的
        $result2=mysql_query($sql2,$link_ID);
    };

        $sql3="insert into talkdata (name) values ('$name');";//刪完後再寫入
        $result3=mysql_query($sql3,$link_ID);
        $setsubmit="";
        $name="";
};
  
$sql="select * from talkdata order by sn;";//寫後讀取
$result=mysql_query($sql,$link_ID);
$num=mysql_num_rows($result);
for($i=0;$i<$num;$i++) {
        $arr[$i]=mysql_fetch_array($result);
};
?>
<html>
<body>
//訊息顯示

<?
for($i=0;$i<$num;$i++) {
        echo $arr[$i][name]."<br>";
};  
?>
<form action="test.php" method="POST" style="margin:0">
<input name="name" type="text" size="40" vlaue="">
<input type="hidden" name="setsubmit" value="OK">
<input type="submit" value="確認送出">
</form>
</body>
</html>比較詳細一點的還可以加上發送的時間、表格判斷是否空白送出提示,
因為沒有實機測試,以上是想像出來的....
僅供參考:shine:
你的方式好像是先將舊訊息讀出來,
再清空資料,再寫入新訊息+舊訊息....
然後再讀出來.....

內容....是什麼樣的內容呢?
只要路徑設的正確,在哪一個資料夾底下應該都是OK的吧....

若是連結到本機的話用localhost就可以了,
若是其他電腦....這個我就沒試過了,
正常來說是不用加http的。

[ 本文由 eightwing 於 2008-1-23 在 05:16 PM 作最後編輯 ]





聽得到...
我的聲音嗎...
雖然我沒有能擁抱可愛的你們的雙臂,
但願這翅膀,
對治療你們的傷痕能有所益助,
啊,無論如果...
都希望能把我的祈禱傳達出去---...
截自:天使禁獵區 No.20 P.3
2008-1-23 04:26 PM
查看資料  發送郵件  訪問主頁  搜尋該用戶的全部文章  發短訊   編輯文章  引用回覆

↓會員頭像↓
↓星星數目↓

名稱﹕ kouser
頭銜﹕invite members
暱稱﹕
積分﹕2190
發貼﹕33
現金﹕1000
存款﹕363697
財富﹕ 富可敵國
性別﹕ 保密
註冊﹕2007-9-4
狀態﹕離線
處理php的.php檔是否都得放到www資料夾下,因為之前我都把它放在www/mag的下面,不過卻發現,只有我能運作,朋友進來都只有說一句"不行啦!!"

再來,我的對話方法  是 只設一個num  name
動作方式是先收取舊name之後,把資料庫的東西殺掉,之後再跟新進來的變數合在一起,存到資料庫內,最後再發給那一個電腦,應該就是你最後所寫的!!

不過這幾天的發現,我寫法好像不能互相更新
也就是說A打出的訊息,只有它本身會變動,而對方B則要等到它發出訊息才會發現到原來A也有打出訊息!!

目前我的規劃有 登錄!!進入!!  對話!!  跟^^"對戰!!

希望想寫一個可以網上對戰的方式

http://kouser.no-ip.biz
以上為網站,不過我是用它人的電腦!! 開放時間為!!上班時間!!
ps 最近公司無太多業務,所以我可以藉由寫一些程式順便練習一下我當初想寫的東西!!

不過我都會在網頁上鑲一個直通php的按鑑,畢竟用flash它不會告訴我php那裡錯哩!!

感謝!!版主老大!!


2008-1-24 02:54 PM
查看資料  發送郵件  訪問主頁  搜尋該用戶的全部文章  發短訊   編輯文章  引用回覆

↓會員頭像↓
↓星星數目↓

名稱﹕ eightwing
頭銜﹕版主
暱稱﹕打雜的
寵物﹕小乓 (等級:51)
積分﹕50403
發貼﹕608
現金﹕36620000
存款﹕26943
財富﹕ 富可敵國
性別﹕
來自﹕外太空
註冊﹕2005-4-1
狀態﹕離線
處理PHP檔是可以放在其他資料夾底下哦,
是不是你的伺服器設定的路徑不對?
httpd.conf?
不行的話是出現找不到檔案還是有錯誤訊息??
有錯誤訊息的話可以po上來.....

要互相更新的話加上Javascirpt的重新整理就OK囉,
可以設定5秒重整一次,
一般聊天室都是用這個方式,

對戰??是類似這個論壇的寵物對戰嗎?
可以參考別人的程式然後改成自已的....
呵....順便打一下廣告....
可以到論壇的寵物中心領養一隻寵物哦....

一起加油吧,可以互相討論....





聽得到...
我的聲音嗎...
雖然我沒有能擁抱可愛的你們的雙臂,
但願這翅膀,
對治療你們的傷痕能有所益助,
啊,無論如果...
都希望能把我的祈禱傳達出去---...
截自:天使禁獵區 No.20 P.3
2008-1-24 05:28 PM
查看資料  發送郵件  訪問主頁  搜尋該用戶的全部文章  發短訊   編輯文章  引用回覆

↓會員頭像↓
↓星星數目↓

名稱﹕ kouser
頭銜﹕invite members
暱稱﹕
積分﹕2190
發貼﹕33
現金﹕1000
存款﹕363697
財富﹕ 富可敵國
性別﹕ 保密
註冊﹕2007-9-4
狀態﹕離線
重整!!嗯!!所以就是說只能靠伺服自己去改變內容囉!!
而不能說當A傳訊時,伺服接到後,發一個指令改變所有使用者的內容囉?
因為 要跟flash配合,所以我都必須要先做一個動作!!  echo "flash變數=".$php變數!!

之後,我copy了版主想法 經過一段時間更新, 這方法我寫在flash  等到時間一到 傳值到php  不過傳出來的東西,令我不解

我只是把之前的留言php內容改一下變成另一個php檔,

如果內容跟資料庫的內容一樣就不變要不然就
先讀data,再清空data,再給flash一個變數呈現出對話內容,這時,我所看到的畫面應該為更新後的對話,不過結果卻是顯示前面舊的對話!!
我本以為php有錯,我按一下我查證的按鈕(它會直接到該php檔,有錯的話會跟我說)不過它卻有正確的顯示出該給flash接的值,也就是有接到新訊息!!

以上這一點我就覺得很頭大,詭異的是 我把這一更新的php檔故意不讓它連上線 每當更新時間到,照樣會出現舊的對話這我就不知道問題是出在那邊了,是flash的問題嗎?還是php的變數有重覆到,

放置位置ok了原來是我給朋友的網是錯的害我以為是不是我放錯資料夾,因為我都用本機位置 忘了對方要進來是要用外部的!!

寵物對戰?ㄟ 我都不知道能對戰我只以為是養養而已!!
多謝板大提醒了!!


2008-1-25 10:40 AM
查看資料  發送郵件  訪問主頁  搜尋該用戶的全部文章  發短訊   編輯文章  引用回覆

 


可列印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題


論壇跳轉:




 
< 聯繫我們 - 貓羽舖工作室 >

美化及改良由╰★超煩論壇☆╮與 貓羽舖工作室維護製作

Powered by Discuz! 3.1.2 Plus / License © 2001-26 Crossday-Bokavan Ltd.
Processed in 0.008316 second(s), 11 queries, Gzip enabled