Avatar billede donslund Nybegynder
23. april 2007 - 15:00 Der er 41 kommentarer og
1 løsning

Læse XMLoutput

Jeg kalder en webservice og få følgende retur:

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Mon, 23 Apr 2007 12:58:07 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 845

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><LogOnResponse xmlns="http://tempuri.org/"><LogOnResult><strSessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</strSessionID><strLoginID>4179</strLoginID><strRoleType>Account User</strRoleType><arryRights><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int></arryRights><SessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</SessionID><LoginID>4179</LoginID><RoleType>Account User</RoleType></LogOnResult></LogOnResponse></soap:Body></soap:Envelope>

Men dette kan jeg kun få ud ved at sættes det som indholdet af et textarea.

Kan jeg ikke lave det sådan, at jeg får selve XML delen ned i en streng som jeg så kan behandle med SimpleXML?
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:06 #1
prøv htmlentities()
Avatar billede donslund Nybegynder
23. april 2007 - 15:13 #2
print "SOAP Response Message<br /><textarea name='resultmessage' rows='30' nowrap cols='80'>";

fpassthru($fp);

print "</textarea></form>";

print  htmlentities($fp);

Skulle dette så give 2 tekster, en i et textarea og en udenfor?

Den sidste udskrives slet ikke.
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:15 #3
Eks.
<?
$str = "<xml>
<RoleType>123</RoleType>
</xml>";
echo htmlentities($str);
?>
Skulle give
<xml>
<RoleType>123</RoleType>
</xml>

Smider lige et svar, hvis du skulle bruge det :-)
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:18 #4
htmlentities() skulle efter hensigten lave alle specialtegn om, sådan så fx. < bliver &gt; og > bliver &lt;

Jeg bliver nødt til at smutte på arbejde, håber du kan få det til at virke.
Avatar billede donslund Nybegynder
23. april 2007 - 15:18 #5
Min htmlentities udskriver slet ingenting.

Mit output som indeholder xml starter med

HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Mon, 23 Apr 2007 12:58:07 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 845

Er det er problem?
Avatar billede donslund Nybegynder
23. april 2007 - 15:20 #6
En ren print $fp giver: Resource id #1
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:21 #7
Hmm, det lyder underligt, jeg undersøger det lige.
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:22 #8
Prøv at give mig det du skal have udskrevet
Avatar billede donslund Nybegynder
23. april 2007 - 15:26 #9
Dette er hvad jeg kan få udskrevet som indhold i et textarea:


HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Mon, 23 Apr 2007 12:58:07 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 845

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><LogOnResponse xmlns="http://tempuri.org/"><LogOnResult><strSessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</strSessionID><strLoginID>4179</strLoginID><strRoleType>Account User</strRoleType><arryRights><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int></arryRights><SessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</SessionID><LoginID>4179</LoginID><RoleType>Account User</RoleType></LogOnResult></LogOnResponse></soap:Body></soap:Envelope>
Avatar billede donslund Nybegynder
23. april 2007 - 15:27 #10
Men det er jo kun selve XML'en jeg skal bruge videre.
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:29 #11
Altså dette her virker hos mig:

udskriv.php
<html>
<body>
<?
$fp = 'HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Date: Mon, 23 Apr 2007 12:58:07 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 845

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><LogOnResponse xmlns="http://tempuri.org/"><LogOnResult><strSessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</strSessionID><strLoginID>4179</strLoginID><strRoleType>Account User</strRoleType><arryRights><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int></arryRights><SessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</SessionID><LoginID>4179</LoginID><RoleType>Account User</RoleType></LogOnResult></LogOnResponse></soap:Body></soap:Envelope>';
echo nl2br(htmlentities($fp));
?>
</body>
</html>

Det giver:
udskriv.php
<html>
<body>
HTTP/1.1 100 Continue<br />
<br />
HTTP/1.1 200 OK<br />
Date: Mon, 23 Apr 2007 12:58:07 GMT<br />
Server: Microsoft-IIS/6.0<br />
X-Powered-By: ASP.NET<br />
X-AspNet-Version: 1.1.4322<br />
Cache-Control: private, max-age=0<br />

Content-Type: text/xml; charset=utf-8<br />
Content-Length: 845<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;&lt;soap:Body&gt;&lt;LogOnResponse xmlns=&quot;http://tempuri.org/&quot;&gt;&lt;LogOnResult&gt;&lt;strSessionID&gt;88310959-d83a-4b16-ae7d-1f24fe87bf7d&lt;/strSessionID&gt;&lt;strLoginID&gt;4179&lt;/strLoginID&gt;&lt;strRoleType&gt;Account User&lt;/strRoleType&gt;&lt;arryRights&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;int&gt;0&lt;/int&gt;&lt;/arryRights&gt;&lt;SessionID&gt;88310959-d83a-4b16-ae7d-1f24fe87bf7d&lt;/SessionID&gt;&lt;LoginID&gt;4179&lt;/LoginID&gt;&lt;RoleType&gt;Account User&lt;/RoleType&gt;&lt;/LogOnResult&gt;&lt;/LogOnResponse&gt;&lt;/soap:Body&gt;&lt;/soap:Envelope&gt;</body>

</html>
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:31 #12
Jeg kender slet ikke til fpassthru(), så jeg kan ikke rigtigt dele xml'en fra resten.

Men dit ønsker var at skrive xml'en ud, så den bliver læselig for brugeren, ikke?
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:32 #13
Forresten har jeg bruge nl2br(), for at lave <br /> istedet for linieskift, som ikke kan ses i browseren jo.
Avatar billede donslund Nybegynder
23. april 2007 - 15:38 #14
Mit $fp er ikke en streng som du gør det til i dit eksempel, det er en resource, det vil sige det er noget en webservice returnerer. Jeg ser det ligesom hvis jeg vil læse et tekstdokument.

Det skal ikke vises på skærmen, men bruges i endnu et webservicekald.

Det er lidt langhåret, men tak for dit forsøg.
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:38 #15
Nu smutter jeg altså, men kig lige på http://htmlentities.ansbak.dk/ hvor der er et eksempel.

Desuden kan du tage et kig på http://php.net/htmlentities/
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:40 #16
Hmm, hvis du vil skrive xml til browseren, kan du bruge header() til fortælle, at du skriver xml.

Jeg tror ikke jeg forstår dig. Kig på http://php.net og søg :-)
Avatar billede donslund Nybegynder
23. april 2007 - 15:50 #17
Jeg er bange for, at det slet ikke et htmlentities jeg skal bruge. Jeg skal bare have php til at forstå, at det er xml der ligger i $fp.

Jeg leder videre.
Avatar billede intenz Novice
23. april 2007 - 21:01 #18
Jeg kan heller ikke se hvad det egentlig er du vil. Men tror måske det er noget i stil med det 2. eksempel på:
http://dk2.php.net/manual/da/ref.xml.php (Eksempel 2518)
Avatar billede donslund Nybegynder
23. april 2007 - 21:38 #19
Nej, jeg har nok ikke forklaret mig ordentligt.

Først kalder jeg en webservice der returnerer et sessionId og andet som skal bruges i endnu et webservicekald hvori man kan administrere et mailingsystem.

Så jeg skal kalde en webservice med svaret fra en anden webservice.
Avatar billede tobias_louv Nybegynder
23. april 2007 - 23:11 #20
Jeg forstår altså minder, men hvis du vil have, at browseren skal forstå, at den modtager noget xml, kan du så ikke bruge:

header ('Content-Type: text/xml');

Den fortæller php, at det indhold, der senere vil komme, er xml-side. Er det det du søger?
Avatar billede tobias_louv Nybegynder
23. april 2007 - 23:22 #21
Avatar billede tobias_louv Nybegynder
23. april 2007 - 23:24 #22
Forresten er denne kode:
<?
header ("Content-Type: text/xml");

//Et eller andet, der deffinerer xml'en - og KUN xml'en (ikke det der står før). Fx:
$xml = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><LogOnResponse xmlns="http://tempuri.org/"><LogOnResult><strSessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</strSessionID><strLoginID>4179</strLoginID><strRoleType>Account User</strRoleType><arryRights><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int><int>0</int></arryRights><SessionID>88310959-d83a-4b16-ae7d-1f24fe87bf7d</SessionID><LoginID>4179</LoginID><RoleType>Account User</RoleType></LogOnResult></LogOnResponse></soap:Body></soap:Envelope>';

echo $xml
?>
Avatar billede donslund Nybegynder
24. april 2007 - 08:42 #23
Hej Tobias. Du kæmper. Det er dejligt. Det sætter jeg pris på.

Vi nærmer os. For det er det jeg gerne vil.

Men det jeg ikke kan hitte ud af er hvordan jeg får indholdet af $fp ud i det du viser. For det du har mellem ' ' er det jeg får ud i mit textarea, men jeg synes ikke jeg kan få det ud på andre måder.

Jeg får jo ikke XML'en leveret så direkte som du skriver, men som en variable $fp.
Avatar billede donslund Nybegynder
24. april 2007 - 08:48 #24
Øhhh, nu tænker jeg lige lidt. Det er jo i pricippet ikke browseren der skal vide hvad kommer retur, det skal jo videre med det samme i et nyt php-script.
Avatar billede donslund Nybegynder
24. april 2007 - 09:36 #25
Hvis jeg kører fpassthru($fp) udenfor mit textarea returnerer den 0.
Avatar billede intenz Novice
24. april 2007 - 11:43 #26
_skal_ det den sender videre være som xml fil? Eller er det nok bare at gemme indholdet (f.eks. strLoginID, osv) som variabler og sende dem på den måde?
Avatar billede donslund Nybegynder
24. april 2007 - 12:54 #27
Næ, hvis jeg bare kan få dem ud i variabler så vil det være helt perfekt.
Avatar billede donslund Nybegynder
24. april 2007 - 15:14 #28
Nu synes jeg jeg har været gennem både fgets, fread og alt mulig andet. Kan ikke rigtig få noget gennembrud.
Avatar billede tobias_louv Nybegynder
24. april 2007 - 15:20 #29
Jeg tror efterhånden, du leder efter noget, hvor mine kompetancer ikke rækker.
Du vil på en eller anden måde få en variabel ud af fpassthru($fp) - men denne funktion vil kun give noget, hvis du sætter den ind i et textarea, det forstår jeg så ikke, hvad mener du?
Avatar billede intenz Novice
24. april 2007 - 16:29 #30
Jeg har bikset lidt kode sammen til dig lidt rundt omkring fra http://dk2.php.net/manual/da/ref.xml.php og de underliggende funktioner.

Du kan hente variablerne ud med f.eks.
$xml_array['STRLOGINID']['data'] (hvis du vil have indholdet af STRLOGINID).

Jeg har efterladt:
print "<pre>";
var_dump($xml_array);
print "</pre>";

i bundet så du kan se hvad array'et indeholder. Det kan du bare fjerne.

Her er koden, ret xml filen i toppen:
-------
<?php
$file = "test2.xml";

function startElement($parser, $name, $attrs)
{
global $count, $xml_array, $temp_array;
$count++;

$temp_array[$count]['name'] = $name;
}

function endElement($parser, $name)
{

}

function characterData($parser, $data)
{
global $count_data, $xml_array, $temp_array, $count;

$data = trim($data);

$name = $temp_array[$count]['name'];
$xml_array[$name]['data'] = $data;

$count_data++;
}

$xml_parser = xml_parser_create();

$count = -1;
xml_set_element_handler($xml_parser, "startElement", "endElement");

$count_data = 0;
xml_set_character_data_handler($xml_parser, "characterData");


if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);

print "<pre>";
var_dump($xml_array);
print "</pre>";

?>
Avatar billede donslund Nybegynder
24. april 2007 - 18:45 #31
Warning: fopen() expects parameter 1 to be string, resource given in /customers/testmasters.dk/testmasters.dk/httpd.www/nyhedsbrev/zoomio/sendsoapmessage.php on line 78
could not open XML input

Denne fejl får jeg.

Og det er jo heller ikke en fysisk fil jeg arbejder ud fra, med et response fra en webservice. Denne response ligger i variablen $fp der, når jeg printer den direkte, returnerer Resource ID #1.

Tidligt i tråden kan du se hvordan den ser ud hvis den bliver skrevet ud i et textarea.

Men glad fordi du bruger din tid :-)
Avatar billede intenz Novice
24. april 2007 - 20:34 #32
Men den 'response fra en webservice' hvordan får du så fat i den? Altså hvordan får du sat variablen $fp.
Avatar billede tobias_louv Nybegynder
24. april 2007 - 20:35 #33
MEN hvad mener du med, at den bliver udskrevet i et textarea, php er da ligeglad med om det er i et textarea eller direkte i dokumentet. Eller hvad?
Prøv at skrive noget kode, så vi kan se, hvordan det bliver til noget kode eller ikke noget kode og bare Resource ID #1.
Avatar billede donslund Nybegynder
24. april 2007 - 22:02 #34
Denne kode:

// strip slahes to handle magic_quotes_gpc condition
$holdsoap="<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$holdsoap.="<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$holdsoap.="<soap:Body>";
$holdsoap.="<LogOn xmlns=\"http://tempuri.org/\">";
$holdsoap.="<strUserName>MitUsername</strUserName>";
$holdsoap.="<strPwd>MitPassword</strPwd>";
$holdsoap.="</LogOn>";
$holdsoap.="</soap:Body>";
$holdsoap.="</soap:Envelope>";
$messagesize=strlen($holdsoap);
//print $messagesize;

# create HTTP header
$query = "POST /zoomiowebservice/login.asmx HTTP/1.1\r\n".
    "Host: campaigns.emailserver2.com:80\r\n".
    "Content-Type: text/xml\r\n". // ". ; charset=UTF-8\r\n".
    "Content-length: ".$messagesize."\r\n".
    "SOAPAction: http://tempuri.org/LogOn\r\n".
    "\r\n";
   
// print str_replace("\r\n", "<br>", $query);
# Open TCP/IP port
$fp = fsockopen("campaigns.emailserver2.com",80);

if(!$fp) {
    print "Failed to connect";
} else {
//    print "FP: ".$fp;
    #inject the header and soapmessage
    fputs($fp, $query, strlen($query));
    fputs($fp, $query, "<?xml version='1.0' ?>");
    fputs($fp, $holdsoap, $messagesize);
}

# Print response
print "<html><body>";




print "SOAP Response Message<br /><textarea name='resultmessage' rows='50' nowrap cols='80'>";

$fp2 = fpassthru($fp);
   
print "</textarea></form><br><br>\n\n";


Kalder en webservice og returnere resultatet. Dette bliver vis fpassthru udskrevet i et textarea.

Giver det mere mening?
Avatar billede tobias_louv Nybegynder
24. april 2007 - 22:29 #35
Jeg må indrømme, jeg ikke rigtigt forstår mig på koden, men som jeg kan se, skriver fpassthru($fp) indholdet ud. Kan man sige, at fpassthru($fp) nærmest er inklude af en fil?

Hmm, hvad skal koden bruges til?
Avatar billede tobias_louv Nybegynder
24. april 2007 - 22:38 #36
Hvis du nu bruge fread() istedet for fpassthru(), kan du få det som en variabel, men er du interesseret i det?
Avatar billede donslund Nybegynder
24. april 2007 - 22:39 #37
Dette er et login kald.
Resultatet herfra skal bruges til et kald der administrerer en mailingliste.
Avatar billede tobias_louv Nybegynder
24. april 2007 - 22:47 #38
Så når det engang virker, vil der genereres en xml-fil på campaigns.emailserver2.com, som giver noget xml lignende det du giver ved hjælp af fputs?

Ønsker du, at jeg får indholdet af xml'en ned i en variabel?
Avatar billede donslund Nybegynder
25. april 2007 - 08:09 #39
Ja, det ville være dejligt. Hvis først jeg har det der, så er jeg sikker på jeg nok selv kan pille det i stykker.
Avatar billede tobias_louv Nybegynder
25. april 2007 - 11:53 #40
<?

// strip slahes to handle magic_quotes_gpc condition
$holdsoap="<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$holdsoap.="<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
$holdsoap.="<soap:Body>";
$holdsoap.="<LogOn xmlns=\"http://tempuri.org/\">";
$holdsoap.="<strUserName>MitUsername</strUserName>";
$holdsoap.="<strPwd>MitPassword</strPwd>";
$holdsoap.="</LogOn>";
$holdsoap.="</soap:Body>";
$holdsoap.="</soap:Envelope>";
$messagesize=strlen($holdsoap);
//print $messagesize;

# create HTTP header
$query = "POST /zoomiowebservice/login.asmx HTTP/1.1\r\n".
    "Host: campaigns.emailserver2.com:80\r\n".
    "Content-Type: text/xml\r\n". // ". ; charset=UTF-8\r\n".
    "Content-length: ".$messagesize."\r\n".
    "SOAPAction: http://tempuri.org/LogOn\r\n".
    "\r\n";
   
// print str_replace("\r\n", "<br>", $query);
# Open TCP/IP port
$fp = fsockopen("campaigns.emailserver2.com",80);

if(!$fp) {
    print "Failed to connect";
} else {
//    print "FP: ".$fp;
    #inject the header and soapmessage
    $str = fputs($fp, $query, strlen($query));
    $str += fputs($fp, $query, "<?xml version='1.0' ?>");
    $str += fputs($fp, $holdsoap, $messagesize);
}

# Print response
print "<html><body>";

$fp2 = fread($fp, $str*8);
print $fp2;
print "<br><br>". $str;
   
print "</body></html>";

fclose($fp);

?>
Dette her giver xml'en i variablen $fp2, som jeg så senere udskriver.
Er du tilfreds?
Avatar billede donslund Nybegynder
07. maj 2007 - 10:58 #41
Tobias, du kom ikke helt med det brugbare svar, men har unægteligt skubbet mig i den rigtige retning. Du får pointene så vi kan få lukket.
Avatar billede tobias_louv Nybegynder
07. maj 2007 - 21:07 #42
Jeg beklager og takker på samme tid. Håber du finder ud af problemet :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester