阿村
Lv 4
阿村 asked in 電腦與網際網路程式設計 · 1 decade ago

php留言板 如何在加入驗正碼與留言者ip

請問有大大可交一下這兩個要怎麼寫嗎

留言頁面

$query_RecMember = "SELECT * FROM `memberdata` WHERE `m_username`='".$_SESSION["loginMember"]."'";

$RecMember = mysql_query($query_RecMember);

$row_RecMember=mysql_fetch_assoc($RecMember);

if(isset($_POST["action"])&&($_POST["action"]=="add")){

$query_insert = "INSERT INTO `board` (`boardname` ,`boardsex` ,`boardsubject` ,`boardtime` ,`boardmail` ,`boardweb` ,`boardcontent`) VALUES (";

$query_insert .= "'".$_POST["boardname"]."',";

$query_insert .= "'".$_POST["boardsex"]."',";

$query_insert .= "'".$_POST["boardsubject"]."',";

$query_insert .= "NOW(),";

$query_insert .= "'".$_POST["boardmail"]."',";

$query_insert .= "'".$_POST["boardweb"]."',";

$query_insert .= "'".$_POST["boardcontent"]."')";

$query_insert .= "'".$_POST["ip"]."')";

mysql_query($query_insert);

<html>

這邊我是用隱藏欄

接收頁面

<?php echo nl2br($row_RecBoard["ip"]);?>

我加了這行後 自己在去試一些方法 都沒辦法把ip送入接收頁面

欄位 ip 型態varchar

這邊應該如果加

然後驗正碼

我是貼人家的語法

只不過接收頁面還是怪怪的

請問有大大可以弄這兩個範例給我看嗎

或是即時通敲我 感謝

Update:

不好意思 我也不會講ㄟ 可否用即時通聯絡

我有架起來

Update 2:

Ryusuke-09 大大

請問那msn有嗎~

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    錯誤訊息是啥?貼來瞧瞧!

    另外這應該只是程式碼片段吧!

    2009-06-15 01:45:31 補充:

    大大我稍微看了一下程式碼

    其實你所謂的留言頁面他就已經新增了

    最後面不是有在拼一串 insert into xxx values xxxx的句子嗎?

    這就是輸入的語法最後再用mysql_query()去執行這段sql句子

    因此你的IP擷取應該要放在這段之前就要取得

    至於取得IP的方法我們必須利用到$_SERVER['HTTP_X_FORWARDED_FOR']這個環境變數

    下面是個網路上抓的簡易範例

    if (empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

    $myip = $_SERVER['REMOTE_ADDR'];

    } else {

    $myip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

    $myip = $myip[0];

    }

    echo $myip;

    最後的$myip就是client端最終端的IP

    把他加入你的insert語法中就可以儲存起來

    再來大大所說的接收頁面因為前一頁沒有寫表單或是用GET的方式傳值因此當然不會有東西可以收

    再來接收的方法也用錯了!因此沒有值過來是很正常低

    回應樓下的大大!nl2br()這個function是在字串結尾加上一個<br>

    這段並沒有錯!或許用意只是要顯示出IP問題是錯在接值的方式不對應該要用$_GET或是$_POST或是$_REQUEST這三種方式來接值才對

    不懂再補充問題!PS我沒有用即時通

    2009-06-18 17:18:20 補充:

    有阿~~

    Source(s): 自己
  • 1 decade ago

    $query_insert .= "'".$_POST["ip"]."')";

    <?php echo nl2br($row_RecBoard["ip"]);?>

    光看2行就知道---錯得亂七八糟---

    把 IP nl2br 要幹嘛 !!!!

    nl2br是什麼指令你到底知不知道--把IP斷行有意義嗎

    還有測別人IP的語法--我看妳根本寫錯吧

    你可以把測IP的直接寫再接收頁---因為設個影藏然為來發送對方IP根本無意義--直接在接收頁測對方IP入資料庫不就好了

    //====不管IP位置有無透過代理都把它給查出來;============ if (empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $myip = $_SERVER['REMOTE_ADDR']; //一般查IP語法 } else { $myip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); //透過代理查第1台主機IP語法 $myip = $myip[0]; //IP存入變數 } //======不管IP位置有無透過代理都把它給查出來結束;============ echo $myip;

    Source(s): SUFFIX
Still have questions? Get your answers by asking now.