私は電子商取引サイト用のユーザー登録アプリケーションを作成していますが、私は非常に奇妙な問題に遭遇しました。私はこのコードを実行すると:このコードが行うことになっている何CFIfとCFElseの両方の文を実行するColdfusion 8
<cfif isValid("email", form.email)>
<cfquery name="check_user" datasource="#request.dsn#">
SELECT var_username, var_password
FROM tbl_users
WHERE var_username = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.EMAIL#">
AND var_password = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.PASSWORD#">
</cfquery>
<cfif check_user.recordcount LT 1>
<cfquery datasource="#request.dsn#" name="insertuser">
INSERT INTO tbl_users (var_username, var_password)
VALUES
(<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.EMAIL#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#FORM.PASSWORD#">)
</cfquery>
<cflogin idletimeout="1800">
<cfloginuser
name = "#FORM.email#"
password ="#FORM.password#"
roles = "0">
</cflogin>
<cflocation addtoken="No" url="#request.secure_url#checkout.cfm">
<cfelse>
<cfset client.error_message = "Your Email Address is already registered.">
<cflocation addtoken="No" url="#request.site_url#New-Account.html">
</cfif>
<cfelse>
<cfset client.error_message = "Your Email Address is not Valid.">
<cflocation addtoken="No" url="#request.site_url#New-Account.html">
</cfif>
を、電子メールがデータベースに既に存在するかどうかを確認され、そのない場合、それは、データベースに電子メール/パスワードを追加し、次に記録しますそれらを安全なチェックアウトサイトに移動します。 コードが実際に行っていることは、かなり異なっています。データベースに追加した後、データベースに追加した後、ログインとcflocationをスキップしてcfelseに行き、元のページ「New-Account」に戻ります。 client.error_messageを表示します。
コードはどのようにしてcfif check_user.recordcountを実行し、その途中でcfelseにスキップできますか?私はデータベースに直接アクセスし、ユーザーをサインアップしようとした後、私は削除するので、check_user文を渡し取得し、ユーザーを追加していただきましたhappening-
試してみて、絞り込むことが行われてきた
物事それを作り直してみてください(作成しようとすると作成するときに作成されることに注意してください)。私はcflocationをgoogleにリダイレクトするように変更しましたが、それはできません。また、ログインしているかどうかにかかわらずページに表示されるので、cfloginの前にcfelseにスキップしています。
あなたはcheckout.cfmにリダイレクトされていますか? – DG3
いいえ、このcfCaseでは、私はチェックアウトにリダイレクトされませんが、ページにある他のcfCase(ゲストとしてのIEチェックアウト、サインインとチェックアウト)では、これらの両方がスムーズに動作し、checkout.cfmに渡されます。 –