rdp*_*rdp 1 html javascript php
我在php脚本中有一个表单.我正在使用javascript进行验证.
<?php
$con = mysql_connect("servername","login","passsword");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("dbadminatms", $con);
if (isset($_POST['email']) && isset($_POST['name']) && isset($_POST['comments']))
{
$sql="INSERT INTO feedback_comments (posted_by, email, comments_text, comment_date)
VALUES
('$_POST[name]','$_POST[email]','$_POST[comments]',NOW())";
$emailID = $_POST['email'];
$postedBy = $_POST['name'];
$message = $_POST['comments'];
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
else
{
mail( "aaa@bbb.coml.com", "Subject: Comments", $message, "From: $emailID\r\n $postedBy" );
}
}
else
{
echo '
<form action="contactus.php" method="POST" id="feedback" onsubmit="javascript:return validate("feedback","name","email","comments");">
<p id="errorMsg">All fields are required</p>
<label for="name" class="label" id="nameLabel">Your name: </label><input id="name" type="text" size="30" name="name" class="field"/>
<br /><br />
<label for="email" class="label" id="emailLabel">Your Email id: </label><input id="email" type="text" size="30" name="email" class="field"/>
<br /><br />
<label for="comments" class="label" id="commentsLabel">Comments:</label>
<div id="commentsSection">
<textarea name="comments" id="comments" class="ui-corner-all" cols="9" rows="5" tabindex="140"></textarea>
</div>
<p><input type="submit" value="Submit" id="submit"/> <input type="reset" /></p>
</form>';
}
mysql_close($con);
?>
Run Code Online (Sandbox Code Playgroud)
Everrything工作正常但我无法使用javascript验证表单.
相关摘录如下:
onsubmit="javascript:return validate("feedback","name","email","comments");"
Run Code Online (Sandbox Code Playgroud)
两件事情:
您使用该属性内的双引号将结束它过早(浏览器将只看到onsubmit="javascript:return validate(",这是无效的,并将由JavaScript解释器来扔).在属性值中使用单引号:
onsubmit="javascript:return validate('feedback','name','email','comments');"
Run Code Online (Sandbox Code Playgroud)你是否实际上有一个JavaScript函数validate,它被直接或通过外部JavaScript文件包含在页面中?
另外,请注意,如果您使用onsubmit,则不要javascript:在开头使用,只需:
onsubmit="return validate('feedback','name','email','comments');"
Run Code Online (Sandbox Code Playgroud)
的javascript:伪协议仅用于其中HTML通常包含一个链接,与href锚定件的属性.onsubmit和类似的不接受链接,只是JavaScript代码,所以你不要使用它.(这是如果你这样做主要是无害的,因为巧合的是它看起来像一个标签,在JavaScript中,所以代码解析好和运行,但它是错的.)
偏离主题,但很重要:永远不要依赖客户端验证; 客户端验证纯粹是一种用户体验改进练习(帮助人们向您发送您将接受的内容),从不替代服务器端验证.引你的PHP代码是SQL注入敞开(甚至是无辜的问题-会发生什么,如果有一个'在田里的一个,比如?).搜索"SQL注入PHP"以找到很多方法,以便正确处理提交的数据.
| 归档时间: |
|
| 查看次数: |
613 次 |
| 最近记录: |