0

そのため、単純な MySQL データベース/テーブルの更新を試みていますが、何かが機能しておらず、何が原因かわかりません。コードを追加します:
morepoints.php (ポイントの追加を処理します):

    <?php
if(!isset($_COOKIE["name"]))
{
    echo "<a href='index.php'>Username/points cookie not existent! Please login!</a>";
}
$con=mysql_connect("sqlserverip","name","password");
if(!$con)
{
    echo "Error while connecting to the MySQL server: " . mysql_error();
}
mysql_select_db("gendb1",$con);
$name=$_COOKIE["name"];
$pts=$_COOKIE["points"];
mysql_query("UPDATE  \"users\"  SET  \"pts\" =\"" . $pts . "\" WHERE name=\"" . $name . "\"");
echo "<div id='wrapper'>Updated database...checking if values match...</div>";
$result=mysql_query("SELECT * FROM users");
 while($row=mysql_fetch_array($result)
 {
            if($row["name"]==$name)
            {
                if($row["pts"]==$pts)
                {
                    echo "<a href=\"index.php\">Points awarded! Please login again.</a>";
                    mysql_close($con);
                }
            }
  } 
    ?> 

また、Cookie が設定されているログイン ページが必要な場合は、ここにあります。

    <?php
$con=mysql_connect("mysqlserverip","name","password");
if(!$con)
{
    echo "Connection to the MySQL server failed successfuly! " . mysql_error();
}
mysql_select_db("gendb1",$con);

$result=mysql_query("SELECT * FROM users");

//Getting Login Form Data
$name=$_POST['u'];
$pass=$_POST['p']; 
$points;
//$valid=1;
if($name=="" or $pass=="")
{
    echo "<div id=\"wrapper\">Name/pass cannot be blank. <a href=\"javascript:history.go(-1)\">Try again</a></div>";
}
while($row=mysql_fetch_array($result))
{
    if($row['name']==$name and $row['pass']==$pass)
    {
        setcookie("name",$row['name'],time()+300);
        setcookie("points",$row['pts'],time()+300);
        echo "<div id=\"wrapper\">Login successful! <a href=\"user.php\">Go to your page</a></div>";
        goto done;
        break;
    }
}
echo "<script>history.go(-1);</script>";
done:
    ?>

解決済み: HTTP エラー 500.0 - エラー コード: 0x00000000 の内部サーバー エラーが発生します更新されていません (スクリプトを実行してもエラーはスローされませんが、DB は更新されていないようです)

4

3 に答える 3

0

どのようなエラー/問題が発生していますか? MYSQL の更新を処理するときは、次のように MYSQL 呼び出しをエコーアウトすることを常にお勧めします。

$test_call = "UPDATE  \"users\"  SET  \"pts\" =\"" . $pts . "\" WHERE name=\"" . $name . "\"");

echo $test_call;

そうすれば、MYSQL に何が送信されているかを正確に確認でき、phpMyAdmin や MYSQL Query Browser などで結果を試すことができます。問題を絞り込むのに役立ちます。

また、次のように一重引用符を使用すると、同じ更新を少し簡単にすることができます。

$pts = mysql_real_escape_string($pts);
$name = mysql_real_escape_string($name);
"UPDATE `users`  SET  `pts` = '$pts' WHERE `name` = '$name'"
于 2013-04-04T18:21:33.350 に答える