2016-02-11 111 views
0

我使用PHP編寫了一個使用PHP & MySQL的新聞網站。我想以d-m-Y格式顯示日期。爲此,我已經使用:以d-m-Y格式顯示MySQL數據庫的日期

$date='<td>'.$row['date'].'</td>'; //'date' is the value from the database 
$newdate=strtotime($date);  

$showdate=date("d-m-Y",$newdate); 

     echo $showdate; 

但是,我只是得到日期爲1-1-1970所有提取。問題是什麼?

+0

哪裏是兩個貪利 –

+0

把這個'行動=「insert.php」'在第二個形式,否則將無法正常工作 –

+0

特殊字符在服務器端逃逸是處理黑客的好方法,逃避一切從客戶端到服務器的特殊字符。這可以保護你免受黑客的侵害。請參閱以下鏈接以獲取更多信息[跨站點腳本](https://en.wikipedia.org/wiki/Cross-site_scripting) –

回答

1

這不僅僅是爲了避免黑客入侵。您還需要檢查來自後端(PHP)的用戶輸入。

以下是有關驗證用戶輸入的文章:https://www.dreamhost.com/blog/2013/05/22/php-security-user-validation-and-sanitization-for-the-beginner/

您還可以閱讀有關SQL注入:http://php.net/manual/en/security.database.sql-injection.php

關於形式action屬性:http://www.sitepoint.com/web-foundations/action-html-attribute/

現在關於形式方法:

定義及用法

formmethod屬性定義了將表單數據 發送到操作URL的HTTP方法。

formmethod屬性重寫 元素的方法屬性。

注意:formmethod屬性可以與type =「submit」和 type =「image」一起使用。

表單數據可以作爲URL變量(method =「get」)發送,也可以作爲HTTP post事務(method =「post」)發送。

的「get」方法注:

This method appends the form-data to the URL in name/value pairs 
This method is useful for form submissions where a user want to bookmark the result 
There is a limit to how much data you can place in a URL (varies between browsers), therefore, you cannot be sure that all of the 

形式的數據將是正確傳遞 ,切勿使用「get」方法來傳遞敏感信息! (密碼或其他敏感信息將在 瀏覽器的地址欄中顯示)

注意事項「後」的方法:

This method sends the form-data as an HTTP post transaction 
Form submissions with the "post" method cannot be bookmarked 
The "post" method is more robust and secure than "get", and "post" does not have size limitations 

來源:http://www.w3schools.com/tags/att_input_formmethod.asp

0

都沒有。 從一種形式的數據傳遞到你的PHP腳本,你只需要創建一個響應腳本過濾等領域,可以使用strip_tagsfilter_var

的Html

<form action="myscript.php" method="post"> 
     <!-- your values --> 
    </form> 

你的PHP腳本

if(isset($_POST['your_input_name'])): 
    $name = strip_tags($_POST['your_input_name']); 
    $name = filter_var($name, FILTER_SANITIZE_STRING); 
    # Do something with your input.. 
endif; 
0

你的代碼使用幾個不同的日期字段,你不確定它是哪一天來自數據庫。不過,我想我可以用一個可以應用於您的案例的通用示例來回答這個問題。對於這個答案,我們將假設你有一個名爲$ date的變量來存儲數據庫中的值。

echo date('d-m-Y', strtotime($date)); 
+0

我已經顯示了正確的字段。我也使用了你的建議,但是我仍然以1-1-1970爲輸出。 –

+0

你能提供一個來自數據庫的日期字段原始數據的例子嗎?這可能會幫助我回答你。謝謝。 – colonelclick

0

正確的代碼:

$ DBDATE = $行[ '日期']; [這將持有從MySql數據庫的日期。]

$ newdate = strtotime($ dbdate);

$ showdate = date(「d-m-Y」,$ newdate);

echo $showdate; 

我得到了正確的結果。

+0

很高興聽到它。你的工作代碼與我上面的答案相同。正如你所看到的,我將數據庫中的日期傳遞給strtotime,然後用d-m-Y和date命令對其進行格式化。 – colonelclick

0

請添加爲像following..here首先檢查該珍惜你從數據庫中$行[「日期」]中得到。如果你在這裏約會,然後使用以下行DMY格式

轉換
$date=date_create($row['date']); // but here first check value of $row['date'] 
echo date_format($date,"d-m-Y"); 
+1

你能否解釋你的答案如何解決問題中的問題?僅有代碼的答案並不是很有用,特別是對於那些偶然發現這篇文章的讀者。謝謝! – Cristik