作者博客:漂小泊的博客
作者主站:小泊隨記
原文地址:文章地址
小泊在升級(jí)官網(wǎng)(小泊隨記)的時(shí)候需要實(shí)現(xiàn)一個(gè)留言功能,為了能夠比較簡(jiǎn)單的將數(shù)據(jù)存入數(shù)據(jù)庫(kù),小泊就簡(jiǎn)單用了php的方法。下面具體說(shuō)說(shuō)遇到的問(wèn)題和解決辦法。
500 Internal Server Error錯(cuò)誤:
首先,將數(shù)據(jù)發(fā)送到php文件的時(shí)候,頁(yè)面報(bào)出了“500 Internal Server Error”錯(cuò)誤。小泊關(guān)于這個(gè)問(wèn)題在網(wǎng)上也搜了好多解決辦法,但是最后都沒有解決。
因?yàn)樾〔词褂玫陌⒗镌啤癊CS服務(wù)器windows系統(tǒng)”,所有不存在權(quán)限的問(wèn)題,關(guān)于一些php的配置也根據(jù)網(wǎng)友給出的解決辦法進(jìn)行配置了還是不行,最后小泊在運(yùn)行php.exe的時(shí)候,發(fā)現(xiàn)程序報(bào)錯(cuò)無(wú)法運(yùn)行,最后發(fā)現(xiàn)是因?yàn)槿鄙僖恍ヾll文件,導(dǎo)致php沒有正常的運(yùn)行,導(dǎo)致了500錯(cuò)誤。
這里小泊推薦一個(gè)dll文件修復(fù)工具“DirectXrepair”,百度下載即可。通過(guò)修復(fù)后,500錯(cuò)誤消失。
mysql和mysqli問(wèn)題
500錯(cuò)誤解決后,在進(jìn)行傳數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)頁(yè)面報(bào)錯(cuò),大體意思就是建議用mysqli或者pdo方法,然后根據(jù)報(bào)錯(cuò)進(jìn)行更改后,解決問(wèn)題。
這里要注意的是,mysql和mysqli語(yǔ)法差別還是很大的,所以一定要注意語(yǔ)法的正確使用。
表單提交跳轉(zhuǎn)不跳轉(zhuǎn)
因?yàn)槲沂窃诠倬W(wǎng)使用,所以不需要表單跳轉(zhuǎn)到官網(wǎng)之外的頁(yè)面,所以,在發(fā)送的時(shí)候,小泊用ajax發(fā)送的方式,沒有用表單傳統(tǒng)的發(fā)送方式。
mysql建表
這里小泊提醒大家建表一定注意主鍵的問(wèn)題,以及字段長(zhǎng)度。
代碼(跳轉(zhuǎn))
html表單
<div class="inner columns divided">
<div class="span-3-25">
<form method="post" action="message/message.php">
<div class="field half">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
</div>
<div class="field half">
<label for="email">Email</label>
<input type="email" name="email" id="email" />
</div>
<div class="field">
<label for="message">Message</label>
<textarea name="message" id="message" rows="4"></textarea>
</div>
<ul class="actions">
<li><input type="submit" value="Send Message" class="button special" /></li>
</ul>
</form>
</div>
PHP
<?php
header('Content-Type: application/json');
header('Content-Type: text/html;charset=utf-8');
$con = mysqli_connect("localhost","root","adminroot123");
if($con){
echo "<br/>連接成功"."<br/>";
} else{
echo "<br/>連接失敗".mysql_error();
}
mysqli_select_db($con,"message");
$sql="INSERT INTO message_tal(name, email, message)
VALUES
('$_POST[name]','$_POST[email]','$_POST[message]')";
$res = mysqli_query($con,$sql);
if($res){
echo "<br/>插入成功";
} else {
echo "<br/>插入失敗";
}
echo "您的姓名是:".$_POST["name"]."<br/>";
echo "您的郵箱是:".$_POST["email"]."<br/>";
mysqli_close($con);
?>
代碼(不跳轉(zhuǎn))
html代碼
<div class="inner columns divided">
<div class="span-3-25">
<form action="">
<div class="field half">
<label for="name">Name</label>
<input type="text" name="name" id="name" />
</div>
<div class="field half">
<label for="email">Email</label>
<input type="email" name="email" id="email" />
</div>
<div class="field">
<label for="message">Message</label>
<textarea name="message" id="message" rows="4"></textarea>
</div>
<ul class="actions">
<li><input id="sendBtn" value="Send Message" class="button special" /></li>
</ul>
</form>
</div>
js代碼
//表單
$("#sendBtn").bind("click", function () {
var name = $('#name')[0].value;
var email = $('#email')[0].value;
var message = $('#message')[0].value;
$.ajax({
type: "post",
url: "message.php",
data: {name:name,email:email,message:message},
success: function (result) {
console.log(result); //返回結(jié)果
}
});
});
php代碼
<?php
header('Content-Type: application/json');
header('Content-Type: text/html;charset=utf-8');
$con = mysqli_connect("localhost","root","adminroot123");
mysqli_select_db($con,"message");
$sql="INSERT INTO message_tal(name, email, message)
VALUES
('$_POST[name]','$_POST[email]','$_POST[message]')";
$res = mysqli_query($con,$sql);
if($res){
echo $_POST['callback']."發(fā)送成功";
} else {
echo $_POST['callback']."發(fā)送失敗";
}
mysqli_close($con);
?>
這里小泊只是簡(jiǎn)單的寫了下功能,代碼相對(duì)比較簡(jiǎn)單。
聯(lián)系小泊
email:643209899@qq.com