<!-- START PASSWORT (c) by: Steven Varco See: www.tech-island.com for many more usefull Scripts (Bitte diesen Vermerk stehen lassen!) --> <!-- <Script language="JavaScript"> var passwort=prompt("Bitte geben Sie das Passwort ein","xxxxx"); document.write('<META HTTP-EQUIV="REFRESH" content="0;URL=' + passwort + '.html">') </Script> <CENTER><H2>Uups, falsches Passwort ? Dann gehen Sie bitte auf reload</H2></CENTER> //--> <!-- END PASSWORT --> |
Autor: tech-island.com
String-trenner Funktion
Diese Funktionen musst ich mal während meiner LAP arbeit machen, findet selber raus wozu sie gut sind… 😉
char <em>strtrenner(char </em>string, char trennzeichen, int element) //Gibt den n'ten teil eines strings zurück den man mit dem Trennzeichen unterteilt hat, //wobei n = element. //Beispiel: stringtrenner("123:456:789", ':', 2) = "456" //Wenn das Attribut element eine höhere Zahl erhält als der String Elemente besitzt wird das letzte Element //zurückgegeben. { static char returnstring [50]; unsigned int i_count; int i_elementcount; int i_endstrpos; int i_startstrpos; i_startstrpos = 0; i_elementcount = 0; for(i_count = 0; (i_count <= strlen(string)) && (element != i_elementcount); i_count++) { if((string[i_count] == trennzeichen) || (string[i_count] == 'n')) { i_elementcount++; if(i_elementcount < element) { i_startstrpos = i_count+1; } } } i_endstrpos = i_count-1; strncpy(returnstring, &string[i_startstrpos], i_endstrpos - i_startstrpos); returnstring[i_endstrpos-i_startstrpos] = ' '; return returnstring; } |
Zeitfunktionen
long zeitinh(char *string, char trenn1, char trenn2, char trenn3) //wandelt einen String der eine Zeit enthält in hundertstelsekunden um. //erwartet wird ein string im format: HH:mm:ss:hh wobei der erste Doppelpunkt dem //trenn1, der zweite dem trenn2 und der dritte dem trenn3 entspricht. //Vorsicht: die funktion strtrenner() wird benötigt { long l_hundertstel; char s_temp[12]; l_hundertstel = 0; strcpy(s_temp, strtrenner(string, trenn1, 1)); printf("n%st", s_temp); l_hundertstel += atoi(s_temp) <em> 60 </em> 60 * 100; strcpy(s_temp, strtrenner(strtrenner(string, trenn1, 2), trenn2, 1)); printf("%st", s_temp); l_hundertstel += atoi(s_temp) <em> 60 </em> 100; strcpy(s_temp, strtrenner(strtrenner(strtrenner(string, trenn1, 3), trenn2, 2), trenn3, 1)); printf("%st", s_temp); l_hundertstel += atoi(s_temp) * 100; strcpy(s_temp, strtrenner(strtrenner(strtrenner(string, trenn1, 4), trenn2, 3), trenn3, 2)); printf("%sn", s_temp); l_hundertstel += atoi(s_temp); return l_hundertstel; } char *zeitformatieren(long zeitinh, char trenn1, char trenn2, char trenn3) //gegenstueck zu zeitinh() //formatiert die zeit mit den angegebenen Trennzeichen //als eingabe wird die zeit in hundertstelsekunden erwartet { long l_hundertstel; static char returnstring[20]; int stunden; int minuten; int sekunden; int hundertstel; l_hundertstel = zeitinh; stunden = l_hundertstel / 100 / 60 / 60; l_hundertstel -= stunden <em> 100 </em> 60 * 60; minuten = l_hundertstel / 100 / 60; l_hundertstel -= minuten <em> 100 </em> 60; sekunden = l_hundertstel / 100; l_hundertstel -= sekunden *100; hundertstel = l_hundertstel; strcpy(returnstring, " "); if(stunden >= 10) itoa(stunden, returnstring, 10); else itoa(stunden, &returnstring[1], 10); returnstring[2] = trenn1; if(minuten >= 10) itoa(minuten, &returnstring[3], 10); else { returnstring[3] = '0'; itoa(minuten, &returnstring[4], 10); } returnstring[5] = trenn2; if(sekunden >= 10) itoa(sekunden, &returnstring[6], 10); else { returnstring[6] = '0'; itoa(sekunden, &returnstring[7], 10); } returnstring[8] = trenn3; if(hundertstel >= 10) itoa(hundertstel, &returnstring[9], 10); else { returnstring[9] = '0'; itoa(hundertstel, &returnstring[10], 10); } return returnstring; } |
Spaltennamen einer DB auslesen
Dim RS set RS = Server.CreateObject("ADODB.Recordset") RS.ActiveConnection = Cnn RS.Source = "SELECT * FROM Tabelle" RS.Open Dim Feld FOR EACH Feld IN RS.Fields Response.Write Feld.Name & "<br>" Response.Write Feld.Type & "<br>" Next RS.Close set RS = nothing Cnn.Close set Conn = nothing |
".Type" gibt Dir dann auch den datentyp aus.
Tabellen einer Access Datenbank auflisten
Die einfachste Variante ist die Abfrage der Systemtabellen der Datenbank. Unter Access muss der
User "Administrator" Lesezugriff auf die Tabelle "MSysObjects" haben. Dies können Sie in Access 2000
unter "Extras -> Sicherheit -> Benutzer- und Gruppenberechtigungen" einstellen.
[listtables.asp]
<% ' --- SQL-String für Access ListSQL = "SELECT name AS tablename FROM MSysObjects WHERE [type] = 1 AND [flags] = 0" ' --- SQL-String für Microsoft SQL Server 7.0 ' --- ListSQL = "SELECT name AS tablename FROM SysObjects WHERE [type] = 'U'" ' --- SQL-String für Oracle 7.x oder höher (alle Tabellen, auf die der User Zugriff hat) ' --- ListSQL = "SELECT table_name AS tablename FROM all_tables" ' --- SQL-String für Oracle 7.x oder höher (alle Tabellen, die dem User gehören) ' --- ListSQL = "SELECT table_name AS tablename FROM user_tables" Set ListRS = Server.CreateObject("ADODB.Recordset") ListRS.Open ListSQL, objConn, 3, 3 ' --- Ausgabe der Überschrift Response.Write "<b><u>Tabellen in DB</u></b><br>" & vbCrLf Do While Not ListRS.EOF ' --- Ausgabe des Tabellennamens Response.Write ListRS.Fields("tablename") & "<br>" & vbCrLf ListRS.MoveNext Loop ListRS.Close Set ListRS = Nothing %> |
——————————————————————————–
Alternativ kann man auch auf eine relativ unbekannte Methode des Connection-Objekts zurückgreifen.
Die OpenSchema-Methode. Mit Hilfe dieser Methode können Sie sehr viel über Ihre Datenbank erfahren.
So zum Beispiel auch, welche Tabellen in der Datenbank enthalten sind.
[listtables.asp]
<% ' --- Öffnen der Datenbankverbindung Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "<DSN>", "<UID>", "<PWD>" ' --- Instantiieren des Recordsets für das Auslesen der Tabellen ' --- adSchemaTables = 20 (Konstante definiert in adovbs.inc) Set objRS = objConn.OpenSchema(adSchemaTables) Response.Write "<b>Tabellenname</b><br>" Do Until objRS.EOF ' --- Da auch die Systemtabelle (objRS.Fields("TABLE_TYPE") = "SYSTEM_TABLE") ' --- zurückgegeben werden, wird eine Eingrenzung auf die Usertabellen implementiert If objRS.Fields("TABLE_TYPE") = "TABLE" THEN Response.Write objRS.Fields("TABLE_NAME") & "<br>" & vbCrLf End if objRS.MoveNext Loop ' --- Schliessen und terminieren des Recordets objRS.Close Set objRS = Nothing ' --- Schliessen und terminieren der Datenbankverbindung objConn.Close Set objConn = Nothing %> |
Browser ermitteln
' --- Ermitteln des Browsertyps Set objBrowser = Server.CreateObject("MSWC.BrowserType") If objBrowser.Browser = "IE" Then CSSFile = "ie.css" Else CSSFile = "ns.css" End if Set objBrowser = Nothing In den Head-Tag fügst du dann folgendes ein: <link rel=stylesheet href="<%=CSSFile%>" type="text/css"> |
An NT-Domäne anmelden
Wartefunktion
Mittels diesem code kann man in ASP eine warte-funktion wie in VB erstellen:
<% While a=1 Response.Write "Hi" & "<br>" WaitNSeconds(1) Wend Private Sub WaitNSeconds(n) Response.Write Now & " - " & Timer & "<br>" StopTimer = Timer + n Do While Timer < StopTimer Loop Response.Write Now & " - " & Timer & "<br>" End Sub %> |
Pfad entfernen
' Pfad entfernen Function GetFileName(FileName) Dim TmpFileName TmpFileName = FileName TmpFileName = Trim(Replace(TmpFileName,"", "/")) TmpFileName = Right(TmpFileName, Len(TmpFileName) - InStrRev(TmpFileName, "/",true, vbTextCompare)) GetFileName = TmpFileName End Function |
Respone.Write GetFileName("c:inetpubwwwrootfilesblabla.asp") |
ergibt
blabla.asp
Statt einem phys. Pfad kann man auch eine URL der Func. übergeben
ggf. muss man es noch ein wenig anpassen.
Application / Session / global.asa – Unterschiede und FAQ
[…]
> In der global.asa kann man für Application_OnStart/OnEnd Code angeben. Mir
> ist aber nicht ganz klar wann OnStart/OnEnd ausgeführt wird.
[…]
Application_onStart wird beim ersten Aufruf der Applikation (nach Start des
IIS oder nach Änderung der global.asa) aufgerufen
Application_onEnd wird beim Beenden des IIS aufgerufen
Session_onStart wird beim ersten Aufruf eines Users innerhalb einer
Applikation aufgerufen (wenn der User keine Cookies akzeptiert, wird
die Session_onStart bei jedem Aufruf einer ASP-Seite aufgerufen.
Session_onEnd wird nach dem Session-Timeout (Zeit, in der der User
kein ASP-Skript mehr aufruft, Standard 20 Minuten) oder beim
Aufruf von Session.Abandon aufgerufen. ACHTUNG !!! Session.Abandon
wird IMMER AM ENDE des Scripts aufgerufen, selbst wenn es in der
ersten Zeile des Scripts steht.
> Zur Global.asa dann noch: Kann man in Application_Onstart oder irgendwo in
> der global.asa eine Variable angeben die überall in der Webseite ablesbar
> ist oder ist genau für diesen Zweck Session()/Application() gedacht?
Application("") ist auf allen Seiten für alle User verfügbar.
Session("") ist auf allen Seiten für einen User verfügbar.
> Dann hab ich auch vor kurzem gelesen das man in die global.asa folgendes
> eintragen kann . Welchen
> Zweck hat das?
Damit kannst Du Objekte instantiieren, die dann mit dem entsprechenden Namen
(nicht Application(""), sondern angesprochen werden
können.