2011-11-15 14 views
0

を使用してログインを確定できません。コードイグナイターを使用して自分のサイトを記録しています。私は一見官能的なスクリプトでいくつかの欠点を抱えています。 1064codeigniter

あなたが持っている:

は私がパスワードを暗号化しないの承知していますが、私はサインインを取得することができ、ステップ2

エラー番号として実装するまではただ明確なテキストメッセージだということに注意してくださいSQL構文のエラー。 は、電子メール= MR-Tのユーザーからのライン1

SELECT IDで & &'@gmail.com近くパスワード=パスワードLIMIT 1' を使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書を確認してください@ gmail.com & &パスワード= パスワードLIMIT 1

HEREは私の問題の説明と一緒に私のコードです。

ありがとうございます。

+2

コードレビュー。もう一つの問題は、そのリンクがダウンした場合、またはコンテンツが変更された場合、この質問は実際には意味をなさないということです。 – Igor

答えて

1

selectステートメントのパスワードと電子メールに関する引用符が必要です。

あなたのケースのために働く必要があり、以下:CIで

$email = mysql_real_escape_string($this->input->post('email')); 
$password = mysql_real_escape_string($this->input->post('password')); 
$query = $this->db->query('SELECT id FROM users WHERE email = "' . $email . '" && password = "' . $password . '" LIMIT 1'); 
+0

すぐに働きました!私は何かマイナーなことを知っていたし、正しい道のりだった。ありがとう! – LightningWrist

+0

このコードでは、CodeIgniterを使用してクエリをビルドしていません。 CodeIgniterは値をエスケープしてクエリーを作成しますので、プロバイダーにとらわれない(仕事が少ない)方が多くなります。コードの私の答えを見てください。 – minboost

0

$this->input->post()セクションでは、一重引用符を二重引用符で置き換えてください。あなたは変数を逃していると思います。

0

、あなたは、このようにそれを行うことになっている:

$this->db->select("id"); 
$this->db->from("users"); 
$this->db->where("email", $this->input->post('email')); 
$this->db->where("password", $this->input->post('password')); 
$this->db->limit(1); 
$query = $this->db->query(); 
StackOverflowのは本当に一般的ではなく、特定のコーディングの問題のためのより多くを目的としている