2017-02-06 3 views
0
私はここ

のmysql && ID

127.0.0.1:36368 [500]: /create_account.php - Uncaught PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in /home/hue/social_network/classes/DB.php:10 
Stack trace: 
#0 /home/hue/social_network/classes/DB.php(10): PDOStatement->execute(Array) 
#1 /home/hue/social_network/create_account.php(7): DB::query('INSERT INTO use...', Array) 
#2 {main} 
    thrown in /home/hue/social_network/classes/DB.php on line 10 

ターミナルで次のエラーを取得しています

とPHPの問題は、私のPHPコードでありますID: ":id"と "\ '\'"の値をINSERTしますが、何も変わりません。あなたが列指定を省略している

INSERT INTO users (username, password, email) VALUES (:username, :password, :email) 

をデフォルトの可能性が高いidが含まので、:あなたはあなたが使っているものを指定する必要がありますすべて列を挿入している場合を除き、私のidフィールドは

+3

**パスワードのセキュリティを処理するには、PHPの[組み込み関数](http://jayblanchard.net/proper_password_hashing_with_PHP.html)を使用してください。 5.5より小さいPHPバージョンを使用している場合、 'password_hash()' [互換パック](https://github.com/ircmaxell/password_compat)を使用することができます。 *** [パスワードをエスケープしない](http://stackoverflow.com/q/36628418/1011527)***を確認するか、ハッシュする前に他のクレンジングメカニズムを使用してください。パスワードを変更すると、パスワードが変更され、不要な追加のコーディングが発生します。 –

+0

**警告**:独自のアクセス制御レイヤーを作成するのは簡単ではなく、重大な誤りを犯す機会がたくさんあります。 [Laravel](http://laravel.com/)のような最新の[開発フレームワーク](http://codegeekz.com/best-php-frameworks-for-developers/)がある場合は、独自の認証システムを作成しないでください。強力な[認証システム](https://laravel.com/docs/5.3/authentication)が組み込まれています。絶対に[推奨されるセキュリティのベストプラクティス](http://www.phptherightway.com/#security)に従ってください。パスワードはプレーンテキスト**として保存しないでください。 – tadman

答えて

4

AUTO_INCREMENTです他のものがたくさんあります。また

あなたが行く前に、誤ってその機能が完全なものであることそこにいくつかがある心に留めておく独自のORMを書き、戦いテスト、および文書化:DoctrinePropelEloquentはほんの一例です。

+0

多くのthnx。また、アドバイスのthnx、私はちょうど基本を得るために試した –

+0

ここに注意してください。認証システムは大変に難しいものです。 XSS、CSRF、SQLインジェクションの問題は、現代のインターネットでは常に懸念されています。 – tadman