Cookie schreiben / lesen

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Cookie schreiben / lesen

Beitrag von Micha122 »

Hallo

Ohne weit auszuholen, hier eine PB cgi-exe die einen Text zurückgeben soll und gleichzeitig ein Cookie setzen soll.

Spiderbasic Code:

Code: Alles auswählen

EnableExplicit

Procedure myCallback(Success, Result.s, UserData)
  
  If Success = 0
    Result.s = "CGI antwortet nicht!"
  EndIf
  
  Debug "Success: " + Str(Success)
  Debug "Result: " + Result.s
  
EndProcedure

HTTPRequest(#PB_HTTP_Post, "http://localhost/cgi-bin/test_cgi.exe", "Hello World", @myCallback())
PureBasic Cgi:

Code: Alles auswählen

EnableExplicit

If Not InitCGI()
  End
EndIf

Define text.s
Define BufferSize = ReadCGI()

If BufferSize
  If CGIBuffer()
    text.s = PeekS(CGIBuffer(), BufferSize, #PB_Ascii)
    text.s = "Folgende Daten erhalten: " + text.s 
  EndIf
EndIf


WriteCGIHeader(#PB_CGI_HeaderContentType, "text/html")
WriteCGIHeader(#PB_CGI_HeaderSetCookie  , "testcookie=hello", #PB_CGI_LastHeader)

WriteCGIString(text.s)
Cookie setzten funktioniert leider nicht. :oops:
Vielleicht kann ja wer helfen.

Grüße, Micha122
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Cookie schreiben / lesen

Beitrag von Kiffi »

versuch mal, den Cookie direkt in SpiderBasic zu setzen:

Code: Alles auswählen

; https://www.w3schools.com/js/js_cookies.asp

Procedure setCookie(cname.s, cvalue.s, exdays)
! var d = new Date();
! d.setTime(d.getTime() + (v_exdays * 24 * 60 * 60 * 1000));
! var expires = "expires="+d.toUTCString();
! document.cookie = v_cname + "=" + v_cvalue + ";" + expires + ";path=/";
EndProcedure

Procedure.s getCookie(cname.s)
!     var name = v_cname + "=";
!     var ca = document.cookie.split(';');
!     for(var i = 0; i < ca.length; i++) {
!         var c = ca[i];
!         while (c.charAt(0) == ' ') {
!             c = c.substring(1);
!         }
!         if (c.indexOf(name) == 0) {
!             return c.substring(name.length, c.length);
!         }
!     }
!     return "";
EndProcedure

Define Username.s = getCookie("username")

If Username <> ""
  Debug "Hallo " + Username
Else
  setCookie("username", "Otto", 365)
  Debug "Cookie ist gesetzt worden"
EndIf
Grüße ... Peter
Hygge
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Cookie schreiben / lesen

Beitrag von Micha122 »

Danke Kiffi :allright:

Code funktioniert Prima.
Die Beiden Funktionen getCookie() und setCookie() sind im Prinzip schon alles was ich benötige.

Danke fürs´s Teilen :D

Grüße, Micha
Barcodes for PureBasic - http://micha122.bplaced.net/
Antworten