PHP+MySQL+Dreamweaver整合教學(PHPMaker運用設計網站教學):快速設計網站與網頁
總教頭特別企畫【專業整合課程】比傳統的學習的還要快速與實用!


感謝您造訪 PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學)密訓基地。 你可進入教學詳細內容介紹頁面,詳細瞭解PHP程式設計+MySQL資料庫(PHPMaker運用設計網站教學)及相關技術維護影片教學(完整配套措施),馬上可以設計架站程式與PHP網頁,快速建立MySQL資料庫、自動生成PHP網頁。可對資料庫進行瀏覽、修改、查詢、加入和刪除(整合成我們需要的網站)。

要在網路上經營網站賺大錢,不能只會下載現有的程式來架站(自己設計才能完全符合專業的特殊需求),你不用死背PHP語法,更可以完全不用花錢用購買資料庫(PHPMySQL完全免費!)你可以透過技術學習,讓PHP程式網頁+網路資料庫+Dreamweaver整合教學→讓你快速成為:【動態網站程式設計專家→你能因此賺大錢】!

 PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學):

http://por.tw/php/new-E_learning/index.php


PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用教學)密訓基地  總教頭  敬上



瀏覽模式: 普通 | 列表

最短的PHP微網誌程式代碼

您知道最短的PHP微網誌程式代碼如何編寫嗎?

最短的PHP微網誌程式。
基本需求是:
1.無亂碼(最好UTF-8)。
2.有輸入框可以發佈新訊息。
3.送出後馬上可以看到新發的內容。
4.必須使用POST模式送出。
5.訊息後面要有時間標示。
6.不能發佈任何HTML標籤。


<?php
header("content-type:text/html; charset=utf-8");
$a=@file_get_contents(l);
($p=$_POST[s])&&file_put_contents(l,$a='<hr>'.htmlspecialchars($p).date(' Y-m-d H:i').$a);
echo '<form method=post><input name=s></form>'.$a;
?>

運行效果如圖:

attachments/201205/1553844664.gif

註釋一下:

<?php
header("content-type:text/html; charset=utf-8"); //傳送到utf-8聲明
/*
* 從名叫l的檔案裡面讀取資料。
* php裡面的常量如果沒有先聲明,那麼預設值是等於常量本身的那個字串。
* 也就是說沒有聲明過的l=="l" , ABCD == "ABCD"
*/
$a=@file_get_contents(l);
/*
* a && b; 貌似是php特有的語法結構。 大概意思是 先執行a,
* 然後判斷a是否為true,如果是,那麼繼續執行b
*
* ($p=$_POST[s]) 是先把$_POST[s]的值賦給$p,
* 然後括號的值為$p轉換為布爾型。也就是說,只要$p不是空字串,
* 或是false,或是0,或是null。就會繼續執行後面的語句
*
* 後面操作是把剛剛讀出來的$a的前面加上新的資料,然後寫入l檔案
*/
($p=$_POST[s])&&file_put_contents(l,$a='<hr>'.htmlspecialchars($p).date(' Y-m-d H:i').$a);
/*
* 顯示html語句,用於構造一個可以post送出的輸入框,沒有送出按鈕,直接按換行送出。
* 由於頁面是用utf-8編碼,所以送出的資料也是utf-8編碼
*/
echo '<form method=post><input name=s></form>'.$a;//#註釋2
?>

問題:
請問為什麼我向另一網頁傳送變數時,只得到前半部分,以空格開頭的則全部丟失?


<?php
$Var="hello php";//修改為$Var="   hello php";試試得到什麼結果
$post= "receive.php?Name=".$Var;
header("location:$post");
?>

receive.php的內容:


<?PHP
Echo "<pre>";
Echo  $_GET["Name"];
Echo "</pre>";
?>


回覆:
正確的方法是:


<?php
$Var="hello php";
$post= "receive.php?Name=".urlencode($Var);
header("location:$post");
?>

在接收頁面你不需要使用Urldecode(),變數會自動編碼.

網站發生警語:atal error: Allowed memory size of 16777216 bytes exhausted(記憶體不夠用)之處理方法

網站架站或網站升級後,網站發生類似警語:atal error: Allowed memory size of XXXXXXXX bytes exhausted
不管是管理介面(Dashboard),或者登入出問題,看來幾乎都是記憶體不夠用。


例如其發生的警語:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 4023 bytes)

這是什麼意思呢?又該如何解決?
答案是:記憶體的需求是更大了,這邊提供幾個解決的方法。

當出現以下的類似情況,要來調整PHP的記憶體,來執行更多的程式
1.找到php.ini的路徑(/etc/php5/apache2/php.ini)
2.搜尋:memory_limit 字串
3.找到:memory_limit = 16M      ; Maximum amount of memory a script may consume (16MB)

A.如果有權限修改php.ini,那麼請將memory_limit = 32M的32提高,看是要64還是96或者128。
    
B.如果沒有權限修改php.ini,可以在.htaccess裡面加上php_value memory_limit 32M,或者更高的數字。

備註:php.ini修改後apache要重新啟動才會生效!

語法如下:
service apache2 restart


-------------------------------------------------------------
【文章標題】:(PHP程式設計) EclipsePHP Studio 1.2.2 ( EPP) 繁體中文版
【文章作者】: PHP-MySQL-程式設計教學密訓基地-總教頭
【作者信箱】: ster168ster@gmail.com
【作者首頁】: http://por.tw/php
【最新教學課程】: http://por.tw/php/new-E_learning/index.php
【基地首頁】: http://por.tw
【版權聲明】: 【原創】PHP-MySQL-程式設計教學密訓基地,轉載必須保留完整標頭。刪除者依法追究!
--------------------------------------------------------------------------------
【文章內容】
  (PHP程式設計) EclipsePHP Studio 1.2.2 ( EPP) 繁體中文版
 
  EclipsePHP Studio 1.2.2 (以下簡稱:EPP 1.2.2)是一個大型PHP項目開發編譯器,給予Eclipse底層開發而來,並且整合了JDK,免除處了安裝配置的麻煩,一次安裝即可使用無需配置。
此編譯器為PHP編譯器,輔助PHP代碼的開發和除錯,整合了代碼高亮,函數追蹤,時時糾錯等功能。
同時還增加了合作開發版本伺服器功能: SVN , CVS 。 內嵌瀏覽器可以在除錯簡單代碼時時瀏覽。
不僅支援php ,也支援其他網路語系像html、xhtml、xml、css和javascript、java、perl、python等!

attachments/201009/8984073170.png
 
(PHP程式設計)EclipsePHP Studio 1.2.2 特點:
1、方便PHP面向物件開發,有類整合追蹤功能。
2、代碼時時糾錯,讓語法錯誤扼殺在搖籃中。
3、內嵌瀏覽器除錯更加方便快捷。
4、整合了常用的版本伺服器用戶端功能 SVN CVS。
5、豐富的快捷鍵讓開發提高效率。
6、函數,變量,快捷提示,讓開發變的簡單輕鬆。
7、強調的除錯和結構操作,使得更容易開發大型的項目
8、多項目管理,可以用開發者在多個項目之間切換。
9、很好的延伸功能,可以安裝多種外掛程式。
 
(PHP程式設計)EclipsePHP Studio 1.2.2更新:
1、修正編寫PHP代碼時行號不能標準顯示每次開啟丟失問題
2、增加了在EPP中直接開啟檔案目錄方便操作。
3、解決了在Vista 、Windows7 中假死的問題。
4、重新修正了PHP支援內核反應速度更快
5、去除了一些不必要的說明檔案編輯器在增加功能的基礎上較少體積。
 
  備註:本軟體是大陸內地軟體,安裝時是簡體畫面,安裝後可以正常顯示繁體中文。
 
 
  (PHP程式設計)EclipsePHP Studio 1.2.2 ( EPP) 繁體中文版下載網址:
 
  http://por.tw/Downloads/EclipsePHP.Studio-1.2.2.rar
 
--------------------------------------------------------------------------------
你還在自己摸索PHP-MySQL-網頁與網站程式設計嗎?你有【技術顧問服務】可以諮詢嗎?
問題無法解決你要發很多時間處理(或許永遠找出答案)那是自己摸索程式設計的痛苦!
購買【PHP+MySQL程式設計】課程錄影DVD教學課程,你就可獲得技術【顧問諮詢服務】!
網站經營一陣子後,內容越來越多(MySql資料庫就會變成很大)
有些架站程式後台可以備份與還原(會自動分割)
所以網站的備份與還原當然沒有問題!
但是萬一你的網站或架站程式並沒有此功能時
您使用phpMyAdmin將MySQL資料庫匯出時當然沒有問題
但是當你要還原(匯入)時,可能就匯出現:MySql檔案過大無法匯入的窘境!
那該怎麼辦呢?


使用phpmyadmin匯出與匯入方式更換MySql Server時
若在匯入時遇到"你正嘗試上載大容量檔案,請查看此文件如何略過此限制"的訊息.這是因為匯入的檔超過限制。

-----------------------------------------------------------
總教頭教你解決的辦法如下:

下載BigDump這個軟體,下載網址:

http://www.ozerov.de/bigdump.zip

官方網址:http://www.ozerov.de/bigdump/

-----------------------------------------------------------

接下來自動將SQL檔案分割上傳:

1. 下載 BigDump
2. 在轉檔Server的Web根目錄下建立暫存目錄(例如:temp),解壓縮bigdump.php與將要匯入的sql檔放於該暫存目錄下
3. 修改bigdump.php檔案

$db_server = ""; //server位址,一般為 "localhost"
$db_name = "AAA"; //MySql資料庫名稱
$db_username = "BBB"; //MySql帳號
$db_password = "CCC"; //MySql密碼

4.匯入mysql檔案:  http://你的網站網址/temp(暫存檔目錄)/bigdump.php
-----------------------------------------------------------
若使用BigDump 後仍然發生 max_allowed_packet 問題

解決方法:

vi /etc/my.ini
在[mysqld]項下增加如下敘述
max_allowed_packet=64M

重新啟動 MySQL 即可大功告成!
-----------------------------------------------------------
標籤: mysql phpMyAdmin

簡單的使用PHP程式(日曆算法)

您知道在使用PHP程式中,日曆算法是如何達成的嗎?

/**
  * 日曆
  *
  */
 if (function_exists('date_default_timezone_set')) {
     date_default_timezone_set('Asia/Chongqing');
 }
 $date = isset($_GET['date']) ? $_GET['date'] : date('Y-m-d');
 $date = getdate(strtotime($date));
 $end = getdate(mktime(0, 0, 0, $date['mon'] + 1, 1, $date['year']) - 1);
 $start = getdate(mktime(0, 0, 0, $date['mon'], 1, $date['year']));
 $pre = date('Y-m-d', $start[0] - 1);
 $next = date('Y-m-d', $end[0] + 86400);
 $html = '<table border="1">';
 $html .= '<tr>';
 $html .= '<td><a href="' . $PHP_SELF . '?date=' . $pre . '">-</a></td>';
 $html .= '<td colspan="5">' . $date['year'] . ';' . $date['month'] . '</td>';
 $html .= '<td><a href="' . $PHP_SELF . '?date=' . $next . '">+</a></td>';
 $html .= '</tr>';
 $arr_tpl = array(0 => '', 1 => '', 2 => '', 3 => '', 4 => '', 5 => '', 6 => '');
 $date_arr = array();
 $j = 0;
 for ($i = 0; $i < $end['mday']; $i++) {
     if (!isset($date_arr[$j])) {
         $date_arr[$j] = $arr_tpl;
     }
     $date_arr[$j][($i+$start['wday'])%7] = $i+1;
     if ($date_arr[$j][6]) {
         $j++;
     }
 }
 foreach ($date_arr as $value) {
     $html .= '<tr>';
     foreach ($value as $v) {
         if ($v) {
             if ($v == $date['mday']) {
                 $html .= '<td><b>' . $v . '</b></td>';
             } else {
                 $html .= '<td>' . $v . '</td>';
             }
         } else {
             $html .= '<td>&nbsp;</td>';
         }
     }
     $html .= '</tr>';
 }
 $html .= '</table>';
 echo $html;  
網站發生:Fatal error: Allowed memory size of 錯誤之處理

網站使用PHP程式去呼叫.dat的資料
在網站輸入搜尋就會有以下訊息產生:

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 4023 bytes) in /var/www/web/data_04/index.php on line 34


你的伺服器上PHP設定的記憶容量太少了, 在php.ini裡將
memory_limit = 8M
改成
memory_limit = 32M

然后重啟apache就可以啦!

也可以通過在php程式申請大一些的記憶容量實現

ini_set( 'memory_limit', '32M' );

----------------------------------------------------------------
PHP程式設計問題諮詢:
為什麼我升級PHP後,原來的程式出現滿螢幕的 Notice: Undefined variable:


---------------------------------------------------------
PHP程式設計問題回覆:
 Notice: Undefined variable:
這是警告的意思,由於變數未定義引起的.
打開php.ini,找到最下面的error_reporting,修改為error_reporting = E_ALL & ~E_NOTICE

對於Parse error錯誤
error_reporting(0)無法關閉.
如果你想關閉任何錯誤提示,打開php.ini,找到display_errors,設置為display_errors = Off.以後任何錯誤都不會提示.
PHP程式設計問題諮詢:
我想在每個檔最前,最後面都加上一檔.但一個一個添加很麻煩
有沒有解決的辦法?

---------------------------------------------------------
PHP程式設計問題回覆:
 我想在每個檔最前,最後面都加上一檔.但一個一個添加很麻煩
您可以這樣處理:

1:打開php.ini文件
設置 include_path= "c:"

2:寫兩個文件
auto_prepend_file.php 和 auto_append_file.php 保存在c磁碟,他們將自動依附在每個php檔的頭部和尾部.

3:在php.ini中找到:
Automatically add files before or after any PHP document.
auto_prepend_file = auto_prepend_file.php;依附在頭部
auto_append_file = auto_append_file.php;依附在尾部

以後你每個php檔就相當於
<?php
Include "auto_prepend_file.php" ;

.......//這裏是你的程式


Include "auto_append_file.php";
?>
---------------------------------------------------------

隱藏apache和php的版本訊息可以盡量減少敏感訊息洩露的方法,並不會使你的伺服器真的更安全,如果你現在使用的版本比較舊,請務必盡快將系統升級,降低被蠕蟲攻擊的風險。

隱藏apache和php的版本訊息,web server避免一些不必要的麻煩,可以把apache和php的版本訊息不顯示


隱藏 Apache 版本訊息

/etc/apache2/apache2.conf 或 /etc/httpd/conf/httpd.conf

ServerTokens ProductOnly
ServerSignature Off

重啟 apache
現在 http 頭裡面只看到:
Server: Apache

隱藏 PHP 版本
php.ini

expose_php On
改成
expose_php Off

重啟apache後,php版本在http頭中隱藏了。

詳解 :

為了防止某些別有用心的傢伙窺視我們的伺服器,應該做些什麼.
我們來看一下關聯的2個參數,分別為ServerTokens和ServerSignature,通過控制這2個閥門應該就能起到一些作用,比如我們可以在配置檔案中這麼寫:
ServerTokens Prod
ServerSignature Off

ServerTokens
用於控制伺服器是否相應來自使用者端的請求,向使用者端輸出伺服器系統類型或內建模組等重要的系統訊息。 在主配置檔案中提供全局控制預設閥值為"Full"(ServerTokens Full),所以,如果你的Linux發行版本沒有變更過這個閥值的話,所有與你的系統有關的敏感訊息都會向全世界公開。比如RHEL會將該 閥值變更為"ServerTokens OS",而Debian依然使用預設的"Full"閥值
以apache-2.0.55為例,閥值可以設定為以下某項(後面為相對應的Banner Header):
Prod >>> Server: Apache
Major >>> Server: Apache/2
Minor >>> Server: Apache/2.0
Minimal >>> Server: Apache/2.0.55
OS >>> Server: Apache/2.0.55 (Debian)
Full (or not specified) default >>> Server: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b

ServerSignature
控制由系統生成的頁面(錯誤訊息,mod_proxy ftp directory listing等等)的頁腳中如何顯示訊息。

可在全局設定檔案中控制,或是通過.htaccess檔案控制
預設為"off"(ServerSignature Off),有些Linux發行版本可能會開啟這個閥門,比如Debian在預設的虛擬主電腦上預設將這個閥門設定為開放
全局閥門的閥值會被虛擬主電腦或目錄單位的配置檔案中的閥值所覆蓋,所以,必須確保這樣的事情不應該發生
可用的閥值為下面所示:
Off (default): 不輸出任何頁腳訊息 (如同Apache1.2以及更舊版本,用於迷惑)
On:輸出一行關於版本號以及處於運行中的虛擬主電腦的ServerName (2.0.44之後的版本,由ServerTokens負責是否輸出版本號)
EMail: 建立一個傳輸到給ServerAdmin的"mailto"

注意:上述關於如何設定2個閥門從而盡量減少敏感訊息洩露的方法,並不會使你的伺服器真的更安全,如果你現在使用的版本比較舊,請務必盡快將系統升級,降低被蠕蟲攻擊的風險。

本PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學)密訓基地立志於收集各類PHP程式設計、MySQL資料庫及網頁設計技術教學資訊,便於本人和廣大網友及網友查詢檢索,無論公司或個人認為本站存在侵權內容均可與本站聯繫,任何此類反饋資訊一經查明屬實後,將立即移除!