0

既存のユーザー名のようなものを処理するページを作成しようとしています。これは私がこれまでに得たものです。

<?php 
// Parse the form data and add inventory item to the system

if (isset($_POST['username'])) {

    $username = ($_POST['username']);
    $password = ($_POST['password']);

    $level = ($_POST['level']);
    // See if that product name is an identical match to another product in the system
    $sql = mysql_query("SELECT id FROM users WHERE username='$username' LIMIT 1");
     include "storescripts/connect_to_mysql.php"; 
    $productMatch = mysql_num_rows($sql); // count the output amount
    if ($productMatch > 0) {
           header("location: message.php?msg=activation_failure");
        exit();
    }
    // Add this product into the database now
    $username = preg_replace('#[^a-z0-9]#i', '', $_POST['username']);
    $email = mysql_real_escape_string($_POST['email']);
    $p_hash = md5($password);
    $sql = mysql_query("INSERT INTO users (username, password, email, level, date_added) 
        VALUES('$username','$p_hash','$email','$level',now())") or die (mysql_error());
    header("location: order_complete.php"); 
    exit();
}
?>

if ステートメントは mysql にクエリを実行して、フォーム エントリとデータベースが一致するかどうかを判断します。次に、次のようなメッセージで message.php に移動したいと思います ...このユーザー名は既に存在します。これを行う方法またはそれにアプローチする方法に関するヒントは大歓迎です。

さらなる明確化..フォームの開始:

<form action="user-info.php" enctype="multipart/form-data" name="signupform" id="signupform" method="post">

および message.php

<?php
$message = "";
$msg = preg_replace('#[^a-z 0-9.:_()]#i', '', $_GET['msg']);
if($msg == "sorryuser"){
$message = 'No good';
} else if($msg == "activation_success"){
$message = 'test';
} else {
$message = $msg;
}
?>

<?php include_once("./includes/site-opener.php");?>
<title></title>
</head>
<body id="home">

            <?php include 'includes/header.php'; ?>
<?php include 'includes/content-opener.php'; ?>
            <div class="containOthers">
    <div style="width:300px;margin-left:auto;margin-right:auto;margin-bottom:40px;min-height:500px;">
<div><?php echo $message; ?><?php echo $emailError; ?></div>
</div>

            </div>
            <?php include 'includes/footer.php'; ?>



</body>
</html>

これは、フォーム送信後の user-info.php のエラーです。

警告: mysql_query(): 18 行目の /home3/onlinfaa/public_html/user-info.php のユーザー 'onlinfaa'@'localhost' (パスワードを使用: NO) のアクセスが拒否されました 警告: mysql_query(): サーバーへのリンク18 行目の /home3/onlinfaa/public_html/user-info.php で確立できませんでした 警告: mysql_num_rows() は、パラメーター 1 がリソースであると想定しています。キー「ユーザー名」のエントリ「test-email@aol.com」が重複しています

4

1 に答える 1

0

あなたのmysqlのユーザーは「onlinfaa」ですか?そして、このデータベースに対するすべての権限を持っています。おそらく、「YOURDB.* に対するすべての権限を onlinfaa@localhost に付与する」を実行して、権限をフラッシュする必要があります。

于 2013-07-23T02:46:59.933 に答える