0

これは奇妙に聞こえるかもしれませんが、コードで何か間違ったことをしているような気がします。ローカルでテストしましたが、正常に機能しましたが、データをオンラインで送信しようとすると、データベースに入力されません。現時点で何が間違っているのかわかりません。また、エラーを確認することもできません(コードなどをよく調べている可能性があります)。時々、新鮮な外観がより良く役立つかもしれません。

HTML:

<form method="post" class="signin" action="inc/actions/processing.php">
        <fieldset class="textbox">
            <label class="username">
                <span>Username</span>
                <input id="username" name="username" value="" type="text" autocomplete="off" placeholder="username">
            </label>
            <label class="charactername">
                <span>Charactername</span>
                <input id="charactername" name="charactername" value="" type="text" autocomplete="off" placeholder="Your character's first name">
            </label>
            <label class="password">
                <span>Password</span>
                <input id="password" name="password" value="" type="password" placeholder="Password">
            </label>
            <button class="submit button" name="RegisterUser" type="submit">Register User</button> 
        </fieldset>
  </form>

PHP、処理部分:

if(isset($_POST['RegisterUser'])){
        $Username = $_POST['username'];
        $Pass_nomdf5 = $_POST['password'];
        $Password = md5($Pass_nomdf5);
        $Charactername = $_POST['charactername'];       
        RegisterMember($Charactername,$Username,$Password);
        CloseConnection();
        header( "Location: http://" . strip_tags( $_SERVER ['HTTP_HOST'] ) . "/newHolo/" );
        exit;           
}

関数のPHP RegisterMember

function RegisterMember($Charactername,$Username,$Password){
    $query = "INSERT INTO User(CharacterFname,Username,Password) VALUES ('".$Charactername."','".$Username."','".$Password."');";
    SendQuery($query);
}

何度も実行しましたが、データベースの設定が私を悩ませているような気がします。NOT_NULLIDフィールドを除いて、すべてのsをsに切り替えましNULLた(以下のデータベーステーブルの写真を参照)。

ここに画像の説明を入力してください エラーがどこにあるのかわからないので、アップロードする前にローカルで正常に実行されました。私は古いバージョンのPHPで実行しましたが、それも関係しているのではないかと感じています。誰かがここで私を助けることができますか?

4

3 に答える 3

0

MySQLデータベースに接続している場所がわかりません!

私が使う:

$mysqli = mysqli_connect("localhost", "username", "password", "database");

私のMySQLデータベースへのリンクを作成するために—あなたはそれをあなたの質問から除外したと思います!

コードがローカルで機能している場合は、「接続」が機能していることを確認します。コードがローカルで機能している場合はサーバー上で機能するはずなので、パスワードまたはユーザー名が異なる可能性があります。

于 2012-09-10T11:09:58.637 に答える
0

私はそれをローカルでテストしました、そしてそれは私のために働きます。(ただし、外部キーを設定していないことに注意してください。)

私が見る限り、コード自体に問題はないようですが、接続などのようなものです。

接続はOKで、データベースは選択されていますか?

mysql_connect("servername", "username", "password");
mysql_select_db("dababase/schema");

一方、外部キー制約が失敗することはありますか?

于 2012-09-10T11:28:04.323 に答える
0

私が上で述べたように、それは戻ってきたSQLエラーであり、実際に私のコードとは何の関係もありませんでした。Sgroupのデータフィールドにまだデータを入力していないことに気付いたとき、エラーメッセージをクリアしました。

 #1452 - Cannot add or update a child row: a foreign key constraint fails (darktide_newdarktide/User, CONSTRAINT User_ibfk_1 FOREIGN KEY (SgroupId) REFERENCES Sgroup (SgroupId))

ばかげて、私がフィールドに制約がある場合、それは少なくともデータで満たされているべきであることを知っていたはずです。それで、私はそのテーブルをいっぱいにしました、そして出来上がり、それはトリックをしました。あなたの入力の人々に感謝します。

于 2012-09-10T11:32:58.693 に答える