PHP / MYSQL - 从DB信息中检查用户标识

时间:2012-02-02 16:39:10

标签: php mysql html

所以,我正在为我的网站制作博客系统,我有2张桌子。一个用于存储用户,他们的密码和图像(URL),另一个用于存储所有博客帖子,包括image_url,作者,日期和内容。 我的HTML的相关部分是:

<form action="../scripts/send.php" method="post"><input type="text" name="author" placeholder="Your name" style="width:30%;"/><input type="password" name="pass" placeholder="Password" style="width:30%;"/><br /><input type="text" name="title" placeholder="Post Title" style="width:60%;" /><br /><textarea name="content" rows="20" style="width:60%;"></textarea><br /><button >Post</button></form>

我的PHP代码(send.php)是:

<?php
mysql_connect("localhost","kroltan","eclipsepdt123") or die("Can't connect to DB");
mysql_select_db("kroltan_main") or die("Can't select to DB");
$result = mysql_query("SELECT * FROM `users`") or die("Can't fetch data");
if(mysql_num_rows($result) > 0){
    while($row = mysql_fetch_assoc($result)){
        if ($row['name'] == strtolower($_POST['author'])){
            if ($row['pass'] == strtolower($_POST['pass'])){
                $name = $_POST['name'];
                $comm = $_POST['comment'];
                $result = mysql_query("INSERT INTO blog_posts (img_url, author, title, content) VALUES(".$row['img'].", ".$_POST['author'].", ".$_POST['title'].", ".$_POST['content'].")") or die("Can't send data");
                header("Location: /?/=Talk");
            }
        }
    }
}
?>

当我尝试在网站上创建新帖子时,它不起作用。我甚至没有被重定向到页面

3 个答案:

答案 0 :(得分:1)

您没有提交按钮。这是一个HTML问题,而不是PHP / MySQL问题。

<input type="submit" value="Post" />

答案 1 :(得分:1)

我很抱歉,但是mysql的使用很糟糕:)

首先,让我们从修复查询开始:

$error = '';
if( isset( $_POST['user']) && isset( $_POST['pass'])){
    $user = mysql_real_escape_string( $_POST['user']);
    $pass = mysql_real_escape_string( $_POST['pass']);

    $q = mysql_query( "SELECT * FROM users WHERE user = '$user' AND pass '$pass'");
    if( !$q){
       $error = 'Query error: ' . mysql_error();
    } else {
        if( mysql_num_rows( $q)){
             // Redirect
        } else {
             $error = 'Wrong user name or password';
        }
    }
} else {
    $error = 'Missing post data.';
}
die( 'Error: ' . $error . "\n");

MattyB就如何修复表单提供了很好的答案。

答案 2 :(得分:0)

您不需要按钮,您想要输入提交类型:

<INPUT TYPE=submit VALUE="Post"/>

http://htmlhelp.com/reference/html40/forms/input.html