php新手。我有一个仅供会员提交的表格。我需要什么PHP代码才能检查表单上的电子邮件地址是否找到我的成员数据库然后可以提交表单?
如果电子邮件地址不在会员数据库中,那么我想回应“只有会员才能提交此表单”。我需要什么PHP代码才能连接到表单中的数据库并进行检查,以便我不会从非成员提交表单? 感谢
答案 0 :(得分:1)
在你的php文件的顶部你可以做这样的事情:
if(isset($_POST['email'])) {
mysql_connect("hostname","username","password");
$result = mysql_query("SELECT * FROM users WHERE email = '".mysql_real_escape_string($_POST['email'])."'");
if($row = mysql_fetch_array($result)) {
// found email
} else {
// email wasn't found
}
}
当然,您需要将hostname
,username
和password
替换为正确的值,同时您应该更改users
和email
选择查询表和字段的名称。
这是一个虚拟形式:
<form method="POST" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<input type="text" name="email" />
<input type="submit" value="Send" />
</form>
答案 1 :(得分:0)
您想学习Mysql query和其他mysql函数。代码基本上看起来像:
$c = mysql_connect( ...);
mysql_select_db( 'database', $c);
$q = mysql_query( "SELECT COUNT(*) FROM users WHERE email = '" .
mysql_real_escape_string( $_POST['email'],$c) . "'");
$row = mysql_fetch_row( $q);
if( $row[0]){
echo "Thanks for submitting...";
} else {
echo "Only members...";
}
这只是一个很不完美的简短例子,但我认为这是你开始的好地方。
答案 2 :(得分:-1)
如果有人是注册会员,暗示您很可能使用$ _SESSION ['id_member']变量。
这将设置客户端可以看到的“成员”的cookie名称......
if (!headers_sent() && !isset($_SESSION))
{
session_name('member');
}
...然后当用户验证分配会话变量及其权限时......
$_SESSION['member_id'] = $mysql_row['id'];
$_SESSION['member_status'] = $mysql_row['id'];
以下是您可能会使用或更改的状态层次结构,但它应该是一个很好的参考点...
10 - 超级管理员(仅限你)
9 - 管理员//中级管理员
8 - 助理//限制性管理员
7 - 主持人//不要将此状态赋予任何混蛋
6 - 高级会员//他们给了你钱!
5 - 注册会员//普通帐户状态
4 - 冻结帐户//未被禁止但做错了,将“解冻”
3 - 未经验证的电子邮件地址//已注册但未验证电子邮件
2 - 未注册的访客//人类
1 - 好机器人
0 - 禁止
一般先确定如何抓住表格......
if ($_SERVER['REQUEST_METHOD']=='GET')
{
}
else if ($_SERVER['REQUEST_METHOD']=='POST')
{
if (isset($_POST['submit_button_name_value'])) {blog_post_ajax_comment();}
}
我添加name =“value”属性/值来提交按钮,为什么?有两个提交选项(在示例中预览和发布)您可能希望让服务器触发一个函数或另一个函数,非常简单有效(X)HTML。
您应该检查变量是否设置(记住权限)。
然后检查他们的用户权限是否足够,您可以使用一个简单的整数来表示这一点。
然后将isset和permission if语句包装在两个东西周围,一个是表单,第二个是确保在处理表单时使用这些条件。
我总是测试拒绝的东西并抛出数据库查询错误处理,以便给你一点额外的提升......
//function module_method_ajax_purpose()
function blog_post_ajax_comment()
{
if (!isset($_SESSION['member'])) {http_report('403',__FUNCTION__,'Error: you must be signed in to do that.');}
else if ($_SESSION['member_status']<=4) {http_report('403',__FUNCTION__,'Error: permission denied; your account has been flagged for abuse.');}
else if (flood_control($datetime,'60')!=1) {http_report('403',__FUNCTION__,'Error: you can only post a comment once every X seconds.');}
else if (!isset($_POST['post_form_name_1']) || !isset($_POST['post_form_name_2'])) {http_report('403',__FUNCTION__,'Error: permission denied.');}
else
{
// NOW process
$query1 = "SELECT * FROM table";
$result1 = mysql_query($query1);
if ($result1)
{
//successful, increment query number for further queries
}
else {mysql_error_report($query1,mysql_error(),__FUNCTION__);}
}
错误报告功能非常强大,可用于HTTP,JavaScript,PHP和MySQL。您也可以从我关于实时日志阅读的答案中受益:jQueryUI tabs and Firefox: getBBox broken?