Seite 1 von 1

String in URL codiert

Verfasst: Sa, 29. Nov 2008 12:32
von Wolfgang Ciriack
Hallo,
gibt es eine Funktion, mit der ich einen String umwandel kann in URL-Encodiert (Sonderzeichen -> %XX) ?

Re: String in URL codiert

Verfasst: Sa, 29. Nov 2008 12:46
von Martin Altmann
Yup - nutzt Du nicht Xb2.NET? Da ist das drin:
xbEscape() bzw. xbUnEscape()
(ausserdem noch xbBase64Encode() und xbBase64Decode() sowie xbCrypt())

Viele Grüße,
Martin

Re: String in URL codiert

Verfasst: Sa, 29. Nov 2008 13:01
von Wolfgang Ciriack
Hallo Martin,
vielen Dank. Noch eine zusätzliche Frage:
Ich kann das ganze auch per XML übergeben. Dazu muss ich ein php Script aufrufen:

http://............/addmessagexml.php

und per HTTP-Post ein XML-Dokument übertragen.
Welche Funktion nimmt man denn da von Xb2net ?

Bisher habe ich probiert das so zu übergeben:

Code: Alles auswählen

cStr:=".........."
#define MM_XMLHEADER  '<?xml version="1.0" encoding="windows-1252" ?>'+CRLF

oSR:=DC_XmlNode():new( 'message',NIL,{ {"version","1.0"}, ;
                                                 {"receiver", gid }, ;
                                                 {"messageText", cExp }, ;
                                                 {"messageNumber",strzero(auf->aufnum,7)}, ;
                                                 {"requestResponse","false"} })
cSendStr:=ConvToAnsiCp(MM_XMLHEADER+oSR:asString())


oXml := xbXMLDocument():new()
oResponse := oXml:Execute("http://........../addmessagexml.php", cSendStr)
Das ergibt keine Fehlermeldung, oResponse bringt auch den Header zurück, aber auf dem Webserver landet nichts :(

Ist das mit xbXMLDocument richtig oder muss man da noch etwas anderes beachten ?

Re: String in URL codiert

Verfasst: Sa, 29. Nov 2008 13:15
von Martin Altmann
Moin,
habe ich selber noch nicht gemacht - nur damals beim DevCon-Server was ähnliches mit PayPal. Schau mal dort in die Sourcen... Da habe ich sowas ähnliches gemacht:

Code: Alles auswählen

oHttp := xbHTTPClient():new()
oHttp:Transport := VIA_WININET
oForm := xbForm():new()
oForm:MimeType := "text/html; charset=UTF-8"
oForm:SetVar( "cmd", "_xclick" )
oForm:SetVar( "business", MEMVAR->paypalac )
oForm:SetVar( "currency_code", "EUR" )
oForm:SetVar( "item_name", "DevCon 2007 - ID: " + alleFelder[ I_TEILNEHMID ] )
oForm:SetVar( "city", alltrim( alleFelder[ I_ORT ] ) )
oForm:SetVar( "address1", alltrim( alleFelder[ I_STRASSE ] ) )
oForm:SetVar( "country", bla )
oForm:SetVar( "email", alltrim( alleFelder[ I_EMAIL ] ) )
oForm:SetVar( "first_name", alltrim( alleFelder[ I_VORNAME ] ) )
oForm:SetVar( "last_name", alltrim( alleFelder[ I_NACHNAME ] ) )
oForm:SetVar( "lc", upper( bla1 ) )
if bla <> "DE"
	oForm:SetVar( "state", alltrim( alleFelder[ I_STAAT ] ) )
endif
oForm:SetVar( "rm", "2" )
oForm:SetVar( "zip", alltrim( alleFelder[ I_PLZ ] ) )
oForm:SetVar( "amount", alleFelder[ I_PREIS ] )
oForm:SetVar( "notify_url", MEMVAR->paypalnurl + alleFelder[ I_TEILNEHMID ] )
oForm:SetVar( "return", MEMVAR->paypalrurl + sprache )
oForm:SetVar( "cancel_return", MEMVAR->paypalcrurl + sprache )

oResp := oHttp:Execute( "https://www.paypal.com/cgi-bin/webscr","POST",oForm )
if oResp == NIL
	text1 := '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Error: PayPal not working!</title><link rel="stylesheet" href="devcon.css" type="text/css"></head><body BGCOLOR="#FFFFFF">' + "<B>Error:</B> <I>" + str(oHttp:ErrorCode) + '</T><P>' + oHttp:ErrorMessage + '<P>' + oHttp:ErrorSource + '<HR></BODY></HTML>'
else
	text1 := oResp:Content
endif
Ansonsten ist auf der XB2.NET-Newsgroup von Boris gerade aktuell ein Thread, gestartet von Cliff Wiernik, zu dem Thema.
Sorry, ich muss jetzt meiner Freundin beim Plätzchenteigkneten helfen... :roll:

Viele Grüße,
Martin

Re: String in URL codiert

Verfasst: Sa, 29. Nov 2008 18:54
von Wolfgang Ciriack
Vielen dank erst mal, ich werde weiter probieren.