Just nu i M3-nätverket
Jump to content

Behöver hjälp med curl och inloggning


kungmats

Recommended Posts

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>';
}
?>

 

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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>
Link to comment
Share on other sites

  • 3 weeks later...

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);
Link to comment
Share on other sites

 

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...