/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
automatiseret upload til webpack
Fra : Leif Neland


Dato : 19-11-08 16:30

Jeg vil gerne uploade automatisk til webpack fra et php-script, der emulerer
at en bruger har udfyldt en formular. Men jeg får bare em fejl 500 internal
error fra webpack.
Et andet script. der er opbygget med det samme login-modul, kan poste data
til en formular, og få returneret data (ordrenr->TNT-numre for de afsendte
pakker), så selve login-delen virker. Jeg har bare problemer med at poste
til http://www.postdanmark.dk/pfs/PfsGetLabelDataServlet.



<?php
$pwd="Hemmelig";
$UID="00000000";

// funktion, der poster en form, og returnerer hvad der matcher regexp.
// Den funktion virker....
function matchurl($url,$data,$regexp,$asarray=FALSE) {
$cmd= "/usr/bin/wget -S --save-cookies /tmp/cookies1 --load-cookies
/tmp/cookies1 --keep-session-cookies --user-agent='Mozilla/4.0 (compatible;
MSIE 6.0; Windows NT 5.0; T312461; .NET CLR 2.0.50727)' ";
if ($data>"") $cmd .= " --post-data='".$data."'";
$cmd .=" '".$url."' -O - ";
exec ($cmd,$return_message_array, $return_number);
if ($asarray) {return $return_message_array;}
else {
for ($i = 0; $i < count($return_message_array); $i++) {
$results = $results.$filler.$return_message_array[$i];
}
if (preg_match($regexp,$results,$matches))
{return $matches[1];}
}
}

// Login på webpack

$data="clientID=".$UID."&userID=admin&password=".$pwd."&submit=Start+Webpack&gotoURL=http://www.postdanmark.dk/pfs/pfsWelcome.jsp";
$url="http://www.postdanmark.dk/pfs/PfsLoginServlet";
$res=matchurl($url,$data,"/window.open\(\"(.*?)\"/"); // Send login auth,
og se efter "window open(url)" i resultat
// Vi ledes videre til et vindue, åben det
$url2="http://www.postdanmark.dk".$res;
$token=matchurl($url2,"","/pfsWelcome.jsp\?token=(.*?)&/");

// Vi er logget ind; token er værdi, der skal sendes med, så webpack kan
kende os
// Indtil her virker det; det bliver brugt i andre scripts

// Nedenstående giver en fejl 500 fra www.postdanmark.dk

// Lav request body
$body = http_request_body_encode (
array ("token" => $token,
"programID" => "pfs",
"clientID" => $UID,
"userID" => "admin",
"sessionID" => "0",
"accessCode" => "UC",
"exTime" => "120",
"spID" => "pfsWelcome.jsp",
"tpID" => "pfsShowNoOfItems.jsp",
"cpID" => "pfsReadFile.jsp",
"errorID" => "",
"buttonPressed" => "OK",
"importType" => "WEBPACK",
"ModtagerType" => "")
,array(array("name" => "fileName","type" => "text/plain","file" =>
"/dev/null")) // Dummy værdier for fil
);

// Data, der skal uploades. Når det virker, skal data hentes fra db
istedet;
$data="DK;;PIP;19.11.2008;69098;18341;Andersine And;;;Ved Søen
25;;;1234;Andeby;;;;;;;;;;;;;;1;1;;P;;";


$aBody=split("\r\n",$body,2); // Første linie er Content-Type:
multipart/form-data; boundary=---------c9f76f056d7c
// Klip den af
$type=split(":",$aBody[0],2); // Del den i key og value
$aB=split("=",$type[1]); // Split value igen efter =
$boundary=$aB[1]; // Value er boundary
$end="\r\n--".$boundary."--"; // Sidste linie
// $realbody=$aBody[1]; // Send ikke første linie
$realbody=$body; // Det er ligegyldigt....

// Indsæt csv-data og navn i stedet for dummy
$realbody=str_replace(array("null",$end),array("webpack.csv",$data.$end),$realbody);

// echo "<pre>$realbody</pre>";
$MODTAGER="http://www.postdanmark.dk/pfs/PfsGetLabelDataServlet";


// www.postdanmark.dk giver som sagt fejl 500 internal server error.
// Postes til en side, der udskriver phpinfo(), ser det korrekt ud.
echo http_request ( HTTP_METH_POST ,$MODTAGER, $realbody ,
array("headers" =>array ($type[0] => $type[1],
"Content_Length" => strlen($realbody),
"User_agent" => $_SERVER["HTTP_USER_AGENT"]), // Måske
foretrækker postdanmark IE?
"cookiestore" => "/tmp/cookies1") ,
$info );
?>




 
 
Stig Johansen (19-11-2008)
Kommentar
Fra : Stig Johansen


Dato : 19-11-08 16:49

Leif Neland wrote:

> Jeg vil gerne uploade automatisk til webpack fra et php-script, der
> emulerer at en bruger har udfyldt en formular. Men jeg får bare em fejl
> 500 internal error fra webpack.

<http://www.postdanmark.dk/pfs/pfsWelcome.jsp>
giver:
.....
WebPack ude af drift
WebPack er midlertidigt ude af drift.
Kontakt venligst PFS support på telefon 33 75 63 63.
.....

Måske er det bare dét, men har Posten ikke en XML-RPC/SOAP/REST funktion til
den slags?

--
Med venlig hilsen
Stig Johansen

Carsten (19-11-2008)
Kommentar
Fra : Carsten


Dato : 19-11-08 19:09

"Leif Neland" <leif@neland.dk> skrev i en meddelelse
news:4924311b$0$56785$edfadb0f@dtext02.news.tele.dk...
> Jeg vil gerne uploade automatisk til webpack fra et php-script, der
> emulerer at en bruger har udfyldt en formular. Men jeg får bare em fejl
> 500 internal error fra webpack.
> Et andet script. der er opbygget med det samme login-modul, kan poste data
> til en formular, og få returneret data (ordrenr->TNT-numre for de afsendte
> pakker), så selve login-delen virker. Jeg har bare problemer med at poste
> til http://www.postdanmark.dk/pfs/PfsGetLabelDataServlet.

Det du prøver at lave kaldes screen-scraping, og det kan være en svær
disciplin Når du får en 500 fejl så tyder det lidt på at du har glemt
et eller andet i dine post data, muligvis et hidden field fra den "side" du
kommer fra.
Jeg kender en smule til webpack, og jeg ved at der findes en xml baseret
indgang til webpack som er beregnet til dit formål (server-to-server
kommunikation). Prøv at skrive til PFS support og spørg om du kan få
dokumentationen til den xml baserede webpack.

Carsten



Leif Neland (19-11-2008)
Kommentar
Fra : Leif Neland


Dato : 19-11-08 20:04


> Jeg kender en smule til webpack, og jeg ved at der findes en xml baseret
> indgang til webpack som er beregnet til dit formål (server-to-server
> kommunikation). Prøv at skrive til PFS support og spørg om du kan få
> dokumentationen til den xml baserede webpack.
>

Pokkers... Hvorfor skriver de ikke noget om xml i dokumentationen?

Leif

Leif Neland (21-11-2008)
Kommentar
Fra : Leif Neland


Dato : 21-11-08 13:25

Carsten wrote:

> Jeg kender en smule til webpack, og jeg ved at der findes en xml
> baseret indgang til webpack som er beregnet til dit formål
> (server-to-server kommunikation). Prøv at skrive til PFS support og
> spørg om du kan få dokumentationen til den xml baserede webpack.
>
> Carsten

Er du sikker på det?

PFS-support har ikke svaret på mail, og så ringede jeg.

"Nej, man kan ikke bruge andet end at uploade en csv-fil via hjemmesiden"
"Ok så må jeg prøve at hacke mig igennem jeres hjemmeside på anden måde"
"Ja, ok"
"Farvel"
"Farvel"....



Toke Suhr (18-10-2010)
Kommentar
Fra : Toke Suhr


Dato : 18-10-10 19:41

Fandt du en løsning på dette problem?
Det kunne være fedt, hvis det fx. lykkes at integrere Virtuemart som kører i Joomla, der også er skrevet i php.
Evt. en opgave som kunne estimeres, hvis nogle har mulighed for at udvikle dette!

/Toke

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Leif Neland (18-10-2010)
Kommentar
Fra : Leif Neland


Dato : 18-10-10 22:47

Den 18-10-2010 20:41, Toke Suhr skrev:
> Fandt du en løsning på dette problem?
> Det kunne være fedt, hvis det fx. lykkes at integrere Virtuemart som kører i Joomla, der også er skrevet i php.
> Evt. en opgave som kunne estimeres, hvis nogle har mulighed for at udvikle dette!
>
Ikke webpack.

Jeg laver det med edifact; laver selv labels med stregkoder, og uploader
filen med adresser med ftp til post.dk

Leif

--
Bevar P2, luk P3, der er nok P3'er i forvejen.

Toke Suhr (01-11-2010)
Kommentar
Fra : Toke Suhr


Dato : 01-11-10 20:20

Suwision - Web & Design har lavet et PHP-script, der sender til Post Danmark.
Se mere her:
http://suwision.dk/index.php/webpack

/Toke

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste