ASP كيف يمكنني إدراج اسم مستخدم في جدول؟

StackOverflow https://stackoverflow.com/questions/1526385

  •  20-09-2019
  •  | 
  •  

سؤال

أنا أعاني من الكود الخاص بي أدناه، أنا أقرأ اسم مستخدم المستخدم المسجل المستخدمين ومحاولة إدراج اسمها في جدول SQL يسمى التراخيص، يحتوي الجدول على 2 أعمدة 1 تحتوي على أرقام الترخيص الأخرى هي كل شيء غير فارغ في الوقت الحالي ولكن يجب إدخال اسم المستخدم جنبا إلى جنب عند تحميل هذه الصفحة. حاليا الصفحة فقط الحلقات باستمرار ولا يتم إدخال أي شيء في الجدول. يحتوي المستخدم داخل Connection1.asp الوصول إلى القراءة / الكتابة إلى قاعدة البيانات.

أيه أفكار؟ شكرًا

<%@LANGUAGE="VBSCRIPT" LCID=1033%>
<%
aName = Split(Request.ServerVariables("LOGON_USER"), "\")
user = aName(UBound(aName))
user = UCase(user)
Erase aName
%>
<!--#include file="Connections/connection1.asp" -->
<%
Dim Recordset1
Dim Recordset1_numRows
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_connection1_STRING
Recordset1.Source = "SELECT * FROM Licenses2 WHERE userid = '" & user & "';"
Recordset1.Open()
%>
<HTML><HEAD></HEAD>
<BODY leftmargin="5" onLoad="setTimeout('reloadFunction()',500000)">

<% Do While NOT Recordset1.EOF %>
<% strUserName =(Recordset1.Fields.Item("userid").Value)%>
<% response.write strUserName %>'s Serial Number:

<% strSerial =(Recordset1.Fields.Item("serial").Value)%>
<% response.write strSerial %>
<% Recordset1.movenext %>

<% loop %>

<%
If strUserName = user then 
    'record found do nothing
    'response.write "user found"
else
    adoCon.Execute =  "SET ROWCOUNT 1; UPDATE Licenses2 SET userid = '" & user & "' WHERE userid = 'NULL';"
    Response.AddHeader "Refresh", "3" 
End if
%>
</BODY>
</HTML>

<%
Recordset1.Close()
Set Recordset1 = Nothing
Set Recordset2 = Nothing
%>
هل كانت مفيدة؟

المحلول

إذا لم يتم العثور على المستخدم، إذا كنت تقوم بعمل إدراج بدلا من التحديث؟

إذا كان التحديث صحيحا، فقم بتغيير الأخير NULL ... إزالة علامات الاقتباس. الآن أنت تقارن قيمة سلسلة 'NULL' بدلا من القيمة NULL وينبغي أن يكون فارغ

SET ROWCOUNT 1; UPDATE Licenses2 SET userid = '" & user & "' WHERE userid IS NULL;

أيضا، معرفة ما إذا كان يمكنك التعليق <BODY ... > ضع علامة وإنشاء واحدة جديدة دون إعادة الاتصال ومعرفة ما إذا كان ذلك يحدث فرقا.

أخيرا، اقرأ عن حقن SQL لأن الكود الخاص بك عرضة لهجمات الحقن. ابحث في Stackoverflow.com عن حقن SQL وستجد الكثير من التفسيرات والأمثلة والعلاجات.

نصائح أخرى

تحقق مما إذا كان Logon_User يعود بالفعل إلى أي بيانات. إذا تم تعيين أمان IIS إلى الوصول إلى "مجهول"، فلن يتم ملء هذا بأي شيء.

سيكون الكود الخاص بك أيضا عرضة لهجمات حقن SQL.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top