Just nu i M3-nätverket
Gå till innehåll

Behöver hjälp med curl och inloggning


kungmats

Rekommendera Poster

Hej
 
Mitt script har fungerat klanderfritt under en ganska lång tid, men sedan några månader bakåt loggar det inte längre in på mosms.
Jag kan inte se att det finns några förändringar i adresserna hos dom och jag vet inte hur jag skall felsöka.
Anledningen till att jag vill logga in automatiskt är att jag behöver kunna läsa av dagens saldo bl.a.
 
Tacksam för tips/hjälp hur jag skall lösa detta.
 
<?
include'conn.php';


$konton = mysql_query(" SELECT * FROM mosms_konton ORDER BY owner, account  ")or die(mysql_error() );
while($m = mysql_fetch_array($konton))
{
$fields = array("login_username" => $m['account'], "login_password" => $m['password'], "login" => "Logga in");
$ch = curl_init();


//Set curl options
$options = array(
CURLOPT_URL => "https://www.mosms.com/se/index.php",
    CURLOPT_COOKIEJAR => "cookie.txt",
    CURLOPT_COOKIEFILE => "cookie.txt",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $fields
);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, "https://www.mosms.com/se/index.php");
$page = curl_exec($ch);
preg_match('/kontobalans: <b>(.*?)</b>/', $page, $v);
echo '<tr><td>'.$m['owner'].'</td><td>'.$m['account'].'</td><td align=right>...'.$v[1].'</td></tr>';
}
?>

 

Länk till kommentar
Dela på andra webbplatser

Ser du vad du får för svar när din inloggning körs? Om det är så att sidan berättar att det är ogiligt lösenord eller liknande?

Länk till kommentar
Dela på andra webbplatser

Inget ändrat på serversidan, tex att loginfälten har andra namn?

Nej, jag har kollat flera gånger och kan inte se att det är något ändrat.

Länk till kommentar
Dela på andra webbplatser

Ser du vad du får för svar när din inloggning körs? Om det är så att sidan berättar att det är ogiligt lösenord eller liknande?

Nej, jag får inga meddelanden.

Jag ser ju inte sidan när jag loggar in heller med mitt script.

Men jag kan logga in manuellt med samma uppgifter så det är inte dom som är fel.

Något  är ändrat på mosms. Dom fick nya ägare ungefär samtidigt som min inloggning slutade fungera.

Länk till kommentar
Dela på andra webbplatser

Men du borde få tillbaka en statuskod. 200 = allt är ok, andra koder kan betyda att något gått fel.

 

Så du får nog sätta ihop en liten loggfil.

Länk till kommentar
Dela på andra webbplatser

Det verkar som att dom klurat ut vad du håller på med, ogillar det och har spärrat dig från att logga in via ditt script.Kan du logga in som vanligt via webbläsaren? Kanske är så att dom även har avslutat ditt konto i värsta fall.

Länk till kommentar
Dela på andra webbplatser

Det verkar som att dom klurat ut vad du håller på med, ogillar det och har spärrat dig från att logga in via ditt script.Kan du logga in som vanligt via webbläsaren? Kanske är så att dom även har avslutat ditt konto i värsta fall.

Inga problem att logga in vanligt

Länk till kommentar
Dela på andra webbplatser

Då får vi kanske klura ut hur som ser att du loggar in via script. Du sätter ingen user-agent, det kanske du ska göra. Ange en user-agent som stämmer med den webbläsare du normalt använder.

 

Annars kanske dom triggar på ip-adressen om det är så att du kör ifrån en server. Det är knepigare att ändra på. Antagligen får du köra via en proxy i så fall, men börja med att sätta en user-agent och se om det hjälper.

Länk till kommentar
Dela på andra webbplatser

Då får vi kanske klura ut hur som ser att du loggar in via script. Du sätter ingen user-agent, det kanske du ska göra. Ange en user-agent som stämmer med den webbläsare du normalt använder.

 

Annars kanske dom triggar på ip-adressen om det är så att du kör ifrån en server. Det är knepigare att ändra på. Antagligen får du köra via en proxy i så fall, men börja med att sätta en user-agent och se om det hjälper.

Jag har precis pratat med dom och det var spärrat pga för många inloggningsförsök.

Dom har släppt på det nu så nu loggar scriptet in, men min preg_match fungerar inte fortfarande.

 

echo $page skriver ut den inloggade sidan så det är min preg_match() som inte fungerar nu, men varför?

 

EDIT!! Hittade just felet i min preg_match ... ett saknat \

preg_match('/kontobalans: <b>(.*?)<\/b>/', $page, $v);

 
preg_match('/kontobalans: <b>(.*?)</b>/', $page, $v);
echo '<tr><td>'.utf8_encode($m['owner']).'</td><td>'.$m['account'].'</td><td align=right>...'.$v[1].'</td></tr>';

SIDKÄLLA

<div class="container_16">
<div class="grid_16 bottomSpacer" id="head"><a STYLE="color: black; text-decoration: none;" href="index.php"><img src="img/top_logo.gif" alt="logo"><span STYLE="font-size: 21px; position: relative; left: +7px; top: +4px; font-style: italic; text-shadow: 2px 2px white;">mo-sms</span></a><span STYLE="font-size: 14px; position: relative; left: +17px; top: +4px; color:#919191; font-style: italic;">i branschen sedan 2003</span>
<a href="logout.php" class="buttonH floatR"><img src="img/icon_loggaut.png" alt="logout" />Logga ut</a>
<a class="floatR" style="padding-top: 4px; padding-right: 15px; color: black; font-size: 12px; text-decoration: none;" href="vinst_logg.php"><img STYLE="margin-right: 7px; position: relative; top: -2px;" src="img/icon_coins.png"/> Din kontobalans: <b>181,20</b> kr (exkl moms)</a>
</div>
Länk till kommentar
Dela på andra webbplatser

  • 3 veckor senare...

Hej testa med den här 
 

$re = "/Din kontobalans: <b>(?<kontobalans>[^< ]+)/"; 

$str = "<div class=\"container_16\">\n<div class=\"grid_16 bottomSpacer\" id=\"head\"><a STYLE=\"color: black; text-decoration: none;\" href=\"index.php\"><img src=\"img/top_logo.gif\" alt=\"logo\"><span STYLE=\"font-size: 21px; position: relative; left: +7px; top: +4px; font-style: italic; text-shadow: 2px 2px white;\">mo-sms</span></a><span STYLE=\"font-size: 14px; position: relative; left: +17px; top: +4px; color:#919191; font-style: italic;\">i branschen sedan 2003</span>\n<a href=\"logout.php\" class=\"buttonH floatR\"><img src=\"img/icon_loggaut.png\" alt=\"logout\" />Logga ut</a>\n<a class=\"floatR\" style=\"padding-top: 4px; padding-right: 15px; color: black; font-size: 12px; text-decoration: none;\" href=\"vinst_logg.php\"><img STYLE=\"margin-right: 7px; position: relative; top: -2px;\" src=\"img/icon_coins.png\"/> Din kontobalans: <b>181,20</b> kr (exkl moms)</a>\n</div>"; 
 
preg_match($re, $str, $matches);
Länk till kommentar
Dela på andra webbplatser

 

Hej testa med den här 

 

$re = "/Din kontobalans: <b>(?<kontobalans>[^< ]+)/"; 

$str = "<div class=\"container_16\">\n<div class=\"grid_16 bottomSpacer\" id=\"head\"><a STYLE=\"color: black; text-decoration: none;\" href=\"index.php\"><img src=\"img/top_logo.gif\" alt=\"logo\"><span STYLE=\"font-size: 21px; position: relative; left: +7px; top: +4px; font-style: italic; text-shadow: 2px 2px white;\">mo-sms</span></a><span STYLE=\"font-size: 14px; position: relative; left: +17px; top: +4px; color:#919191; font-style: italic;\">i branschen sedan 2003</span>\n<a href=\"logout.php\" class=\"buttonH floatR\"><img src=\"img/icon_loggaut.png\" alt=\"logout\" />Logga ut</a>\n<a class=\"floatR\" style=\"padding-top: 4px; padding-right: 15px; color: black; font-size: 12px; text-decoration: none;\" href=\"vinst_logg.php\"><img STYLE=\"margin-right: 7px; position: relative; top: -2px;\" src=\"img/icon_coins.png\"/> Din kontobalans: <b>181,20</b> kr (exkl moms)</a>\n</div>"; 
 
preg_match($re, $str, $matches);

Tack .. jag kan testa din variant vid tillfälle, men som du kanske såg ovanför så har jag fått det att fungera.

Länk till kommentar
Dela på andra webbplatser

Tack .. jag kan testa din variant vid tillfälle, men som du kanske såg ovanför så har jag fått det att fungera.

 

jag tänkte om du ville ha med namn på nyckeln när du skriver ut  och min slutar vid mellanslag eller <  :D

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...