如何避免MySQL中的“访问被拒绝”警告?

时间:2015-07-09 02:48:34

标签: php mysql url

我在grendalhosting上使用phpMyAdmin。无论我做什么,我都会继续犯这些错误。我是PHP / MySQL的新手。

  

警告:mysql_connect():用户'root'@'10.1.2.21'拒绝访问   (使用密码:否)/ home / u438954871 / public_html / url   第8行的shortner / connect.php

     

警告:mysql_select_db():拒绝访问用户“root”@“localhost”   (使用密码:否)/ home / u438954871 / public_html / url   第9行的shortner / connect.php

     

警告:mysql_select_db():无法链接到服务器   在/ home / u438954871 / public_html / url shortner / connect.php中建立   第9行

     

警告:mysql_query():拒绝访问用户“root”@“localhost”   (使用密码:否)/ home / u438954871 / public_html / url   第28行的shortner / shorten.php

     

警告:mysql_query():无法建立指向服务器的链接   在/ home / u438954871 / public_html / url shortner / shorten.php 28号线

     

警告:mysql_num_rows()要求参数1为resource,boolean   在/ home / u438954871 / public_html / url shortner / shorten.php中给出   29

     

警告:mysql_query():拒绝访问用户“root”@“localhost”   (使用密码:否)/ home / u438954871 / public_html / url   第34行的shortner / shorten.php

     

警告:mysql_query():无法建立指向服务器的链接   在/ home / u438954871 / public_html / url shortner / shorten.php第34行

     

警告:mysql_query():拒绝访问用户“root”@“localhost”   (使用密码:否)/ home / u438954871 / public_html / url   第35行的shortner / shorten.php

     

警告:mysql_query():无法建立指向服务器的链接   在/ home / u438954871 / public_html / url shortner / shorten.php第35行

     

警告:mysql_num_rows()要求参数1为resource,boolean   在/ home / u438954871 / public_html / url shortner / shorten.php中给出   36您的信息未添加。警告:mysql_close():没有MySQL-Link   / home / u438954871 / public_html / url中提供的资源   第45行的shortner / shorten.php

Php:

    <!DOCTYPE html>
<html>
<head>
    <title>URL shortner</title>
</head>
<link rel="stylesheet" type="text/css" href="./index.css">
<body>

<?php 
    if ($_POST['shortbtn']){
        $url = $_POST['url'];

        if ($url) {

            require ("./connect.php");

            $charset = "abcdefghiklmnopqrstuvwxyzABCDEFGHIKLMNOPQRSTUVWXYZ0123456789";
            $len = 5;
            $numrows = 1;

            while ($numrows != 0) {
            for ($i = 0; $i <= $len; $i++){
                    $rand = rand () % strlen($charset);
                    $tmp = $substr($charset, $rand, 1);
                    $code .= $tmp;
            }

            $query = mysql_query("SELECT * FROM urls WHERE code='$code'");
            $numrows = mysql_num_rows($query);
        }

        $data = date("F d, Y"); // July 8, 2015

        mysql_query("INSERT INTO urls VALUES ('', '$url', '$code', '$date')");
        $query = mysql_query("SELECT * FROM urls WHERE code='$code'");
        $numrows = mysql_num_rows($query);

        if ($numrows == 1) {
            $site = "shrty";
            echo "Your shortened url: <input type='text' size='40' value='$site/$code'>";
        }
        else
            echo "Your info was not added.";

            mysql_close();
        }

        else
            echo "<script type="text/javascript">window.location = './index.html'</script>";
    }
    else
        echo "<script type="text/javascript">window.location = './index.html'</script>";

?>

</body>
</html>

load.php:

<?php

$code = $_GET['code'];

require("./connect.php");

$query = mysql_query("SELECT * FROM urls WHERE code='$code'");
$numrows = mysql_num_rows($query);

if ($numrows == 1){
    $row = mysql_fetch_assoc($query);
    $url = $row['url'];

    header("Location: $url");

    echo "<script text="text/javascript">window.location = '$url'</script>";
}

mysql_close();
?>

connect.php:

<?php

$server = "mysql.grendalhosting.com";
$db_user = "username";
$db_pass = "password";
$db_table = "urls";

mysql_connect ($server, $db_user);
mysql_select_db($db_table);

?>

PS:我没有安装WAMP。

4 个答案:

答案 0 :(得分:0)

您不应该使用mysql_connect,因为不推荐使用此功能。你可以改用mysqli。

根据您的错误,您的root用户没有密码。你应该把“”作为其值

答案 1 :(得分:0)

您没有将第三个参数即密码参数传递给mysql_connect()函数。如果你的mysql服务器没有密码,则传递为空白(&#34;&#34;)到mysql_connect()功能。 正如我所说,您的代码应如下所示。

$server="mysql.grendalhosting.com";
$db_user="username";
$db_pass="password";//If no password, then keep it as blank ("")
mysql_connect($server, $db_user, $db_pass);

然后您的数据库选择代码就是问题。

答案 2 :(得分:0)

我想你忘了在connect方法中传递密码参数。

答案 3 :(得分:0)

你应该试试这个

$server="mysql.grendalhosting.com";
$db_user="username";
$db_pass="";
mysql_connect($server, $db_user, $db_pass);