WAMP的hinet的郵件寄出設定
想要測試WAMP的郵件寄出功能,本來想要用gmail的,沒想到一直不成功,還是回頭用Hinet的好了,比較順
我是使用msa.hinet.net,如果郵件伺服器不同,請自行尋找
有兩個地方的php.ini要改 C:\wamp\php\php.ini 和 C:\wamp\apache2\bin\php.ini
打開後找到以下的[mail function]程式碼,修改如下,兩個都要改
[mail function]
; For Win32 only.
SMTP = msa.hinet.net
smtp_port = 25
auth_username =你自己郵件的帳號,就是@前面那一串英文數字
auth_password =你自己的密碼
; For Win32 only.
sendmail_from = 你自己的帳號@msa.hinet.net
如果有人試成功gmail設定的,歡迎分享
後來自己發現了設定gmail的方法,原來不用在php.ini弄,直接在程式裏設定就行了
<?php
require_once("Mail.php"); // 引用 PEAR::Mail
// 檢查收件人及主旨均非空字串, 才會進行以下處理
//其他設定是參照 http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page
if(!empty($_POST['to']) && !empty($_POST['subject'])){
$params = array('host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '你的gmail的帳號@gmail.com', // SMTP 帳號
'password' => '你的gmail密碼'); // SMTP 密碼
$mailer = &Mail::factory('smtp',$params); // 建立使用SMTP的物件
mb_internal_encoding('utf-8'); // 指定編碼格式
$headers = array( // 設定檔頭資訊
// 用 mb_encode_mimeheader() 將寄件人中的字串
// 轉成符合 SMTP 通訊協定要求的格式
'From' => "from.gmail.com",
'To' => $_POST['to'],
// 用 mb_encode_mimeheader() 將郵件標題
// 轉成符合 SMTP 通訊協定要求的格式
'Subject' => mb_encode_mimeheader($_POST['subject']),
'Content-Type' => 'text/plain; charset="UTF-8"',
'Content-Transfer-Encoding' => '8bit');
// 呼叫 send() 方法寄出郵件, 並取得其傳回值
$result=$mailer->send($_POST['to'], $headers, $_POST['body']);
// 由 send() 傳回值判斷結果並顯示對應訊息
// 如果寄件失敗, $result 將會是 PEAR_:Error 的物件
// 如果寄件成功, 則傳回值為 true
if(PEAR::isError($result))
// 呼叫 PEAR_Error 的 getMessage() 方法取得錯誤訊息字串
echo '<p>寄送失敗:' . $result->getMessage() . '</p>';
else
echo '<p>郵件已成功寄出!</p>';
echo '</body></html>';
exit();
}
?>
<form method="post">
<div>收件人:<input type="text" name="to" size="50"/></div>
<br />
<div>主 旨:<input type="text" name="subject" size="50"/></div>
<br />
<div>信件內容:<br />
<textarea rows="10" cols="72" name="body"></textarea>
</div>
<input type="submit" value="立即寄出"/>
<input type="reset" value="清除重寫"/>
</form>
----------------------------------------------------------------------------------------
WAMP 5 在windows xp下安裝xdebug
主要是參考這一篇http://mitulmpatel.wordpress.com/2009/11/02/how-to-install-xdebug-on-wamp/
1.去http://www.xdebug.org/下載"php_xdebug-2.1.2-5.2-vc6.dll"
我的電腦不支援MS VC9,所以用MS VC6,而且似乎只能用TS版本。主要也是參考這裏的解釋http://lzhxiaoyu.blog.51cto.com/10707/238562
2.把下載的php_xdebug-2.1.2-5.2-vc6.dll放到 c:\wamp\php\ext
3.同時修改c:\wamp\php\php.ini和c:\wamp\Apache2\bin\php.ini。兩個都要改。在這兩個檔案內,加入以下數值
[xdebug]
zend_extension_ts="c:/wamp/php/ext/php_xdebug-2.1.2-5.2-vc6.dll"
xdebug.profiler_output_dir = "c:/wamp/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%p"
xdebug.profiler_enable = 0
xdebug.profiler_append=0
xdebug.extended_info=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=xdebug
xdebug.remote_log="c:/wamp/tmp/xdebug/xdebug_remot.log"
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0
4.新增 ‘xdebug’資料夾到 ‘c:\wamp\tmp’裏面
5.重新啟動所有服務 Restart ALL Service
如果成功,在首頁點選 phpinfo() ,裏面的 Zend Scripting Language Engine 可以找到 with Xdebug v2.1.2 的字串
----------------------------------------------------------------------------------------
修正 Warning: Cannot add header information - headers already sent by...
以下內容是別人(Neo)寫的,我只是貼上來做一個記錄而已,所以不是我寫的:
寫過 PHP 的人一定看過這個訊息..
Warning: Cannot add header information - headers already sent by ..
有空再解釋原理及發生的原因,一般可以用 PHP 的 ob 系列函數來處理,但是比較簡單的方式也可以用打開 PHP Output buffer 的方式來解決。
打開的方法:
方法1.在 php.ini 裡面找到 output_buffering ,並改為1。
方法2.由於虛擬主機不可能改 php.ini ,因此只要在自己網站的根目錄新增一個 .htaccess 的檔案,並且加入下面這一行:
PHP_FLAG output_buffering On
這個方法跟 apache 的 .htaccess AllowOverride 權限有關,所以如果用 phpinfo(); 看還是沒有的話,就要先在 .htaccess 裡面改為:
AllowOverride Options
PHP_FLAG output_buffering On
或
AllowOverride All
PHP_FLAG output_buffering On
這樣看看有沒有 HTTP 500 Error 的錯誤訊息,如果有的話,就可能要請主機商打開 .htaccess AllowOverride 了。
----------------------------------------------------------------------------------------
phpMyAdmin出現#1045 - Access denied for user 'root'@'localhost' (using password: YES)
我用的是 phpMyAdmin 版本 2.10.1 。可能新版會更新這個bug吧.....但如果你也碰到相同問題,以下是我的經驗
如果在phpMyAdmin的權限更改root密碼,再重新開phpMyAdmin網頁時,會出現以下訊息
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
解決方法如下:
(1)到wamp/phpmyadmin的資料夾底下,找一個 config.inc.php 檔案,用文字編輯器打開來
(2)在config.inc.php 檔案裏,搜尋 $cfg['Servers'][$i]['password']
(3)找到後,後面那個=''之後的就是你的密碼了,但很明顯發現它沒有隨著權限設定而更新,所以,我們用手寫的方式輸入新密碼(和權限更新密碼裏的一樣的密碼),改好後儲存檔案
(4)重新啟動WAMP (Restart All Service)
(5)清除瀏覽器的快取和歷史記錄,主要目的是把session清掉 (所以如果有選擇的話,cookie可以不用清)
(6)再登入看看,就成功了!