| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

30-10-2008, 18:27
|
|
stony2k
Newbie
|
|
Registriert seit: Dec 2005
Beiträge: 11
|
|
Login per curl auf Webseite funktioniert nicht
Hallo,
ich möchte mich auf folgender Webseite einloggen:
http://shop.hoffmann.de/index.php/sp...ielwaren/login
Diese URL ist auch gleichzeitig das Ziel des Formulars.
Als Ausgabe im Browser erhalte ich die Loginseite und folgende Meldung:
"Um den geschlossenen Bereich für Fachhändler zu betreten, benötigen Sie eine Kundennummer und ein Passwort. Wenn Sie noch kein Passwort besitzen, können Sie dies über den Anmeldeantrag anfordern."
Bei "CURLOPT_POSTFIELDS" habe ich alle Formulardaten eingetragen, die in den POST-Request an die Webseite geschickt werden sollen. Wer in den Quelltext o. g. Webseite schaut wird feststellen, dass das Formular leider keinen Submit-Button hat, sondern eine Grafik, die das Formular per Javascript abschickt.
Hier mein Code:
PHP-Code:
<?php
$ch = curl_init();
// setze die URL und andere Optionen
$sendData = array('Login' => '19999107',
'Password' => 'mopet',
'Submit' => true,
'RedirectURI' => '/content/view/full/1571');
curl_setopt($ch, CURLOPT_URL, "http://shop.hoffmann.de/index.php/spielwaren/spielwaren/login");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "Login=User&Password=PW&RedirectURI=%2Fcontent%2Fview%2Ffull%2F1571"); //$sendData);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, true);
// führe die Aktion aus und gebe die Daten an den Browser weiter
curl_exec($ch);
// schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch);
?>
Der Login will einfach nicht funktionieren. Könnte ihr mir helfen?
|

30-10-2008, 18:48
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
"Funktioniert nicht" ist keine Fehlerbeschreibung!
|

30-10-2008, 19:14
|
|
stony2k
Newbie
|
|
Registriert seit: Dec 2005
Beiträge: 11
|
|
Der Login findet nicht statt, das habe ich aber oben geschrieben. Ist diese Fehlerbeschreibung besser?
|

30-10-2008, 19:19
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Gibt es denn keine Fehlermeldung ?
Was sagt curl_error()?
|

30-10-2008, 19:47
|
|
stony2k
Newbie
|
|
Registriert seit: Dec 2005
Beiträge: 11
|
|
Zitat:
Original geschrieben von pekka
Gibt es denn keine Fehlermeldung ?
Was sagt curl_error()?
|
Nein, es gibt leider keine Fehlermeldung.
curl_error(); gibt leider auch keine Fehlermeldung aus.
|

30-10-2008, 19:50
|
|
krel
Registrierter Benutzer
|
|
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
|
|
warum wird denn $sendData mit Daten gefüllt aber bei CURLOPT_POSTFIELDS wieder ganz andere Daten benutzt?!
|

30-10-2008, 20:00
|
|
stony2k
Newbie
|
|
Registriert seit: Dec 2005
Beiträge: 11
|
|
Weil ich testen wollte ob es am Array liegt, aber daran liegt es auch nicht. Macht also keinne Unterschied ob ich den String direkt reinschreibe oder das Array $sendData angebe
|

31-10-2008, 11:18
|
|
WiZARD
Registrierter Benutzer
|
|
Registriert seit: Jan 2003
Ort: Germany
Beiträge: 102
|
|
Der einfachste Weg so wie ich das meist bei einem Curl Login / Datenübergabe mache ist, das erst über den Firefox zu machen und HTTPLIVEHEADERS mitlaufen zu lassen. Man sieht nach dem Submit dann in den Liveheaders was als POST übergeben wurde.
Dieses dann einfach Kopieren und in Curl mit reinnehmen, so vermeidet man dass man eventuell essentielle Daten vergisst / falsch schreibt. Dann einfach Username + Passwort entsprechend natürlich anpassen.
Meist wenn es nicht klappt ist irgendeine POST Information Murks oder es fehlt etwas ; so war es bisher bei mir jedenfalls.
|

31-10-2008, 12:10
|
|
stony2k
Newbie
|
|
Registriert seit: Dec 2005
Beiträge: 11
|
|
Zitat:
Original geschrieben von WiZARD
Der einfachste Weg so wie ich das meist bei einem Curl Login / Datenübergabe mache ist, das erst über den Firefox zu machen und HTTPLIVEHEADERS mitlaufen zu lassen. Man sieht nach dem Submit dann in den Liveheaders was als POST übergeben wurde.
Dieses dann einfach Kopieren und in Curl mit reinnehmen, so vermeidet man dass man eventuell essentielle Daten vergisst / falsch schreibt. Dann einfach Username + Passwort entsprechend natürlich anpassen.
Meist wenn es nicht klappt ist irgendeine POST Information Murks oder es fehlt etwas ; so war es bisher bei mir jedenfalls.
|
Gut, dass du das ansprichst. Die Postvariablen habe ich mit HTTP Live Headers ausgelesen, genau so du. Habe ganz vergessen diese wichtige Info zu erwähnen.
Trotz allem funktioniert das Script/Der Login nicht.
Da muss doch irgendwo ein Denkfehler sein oder?
|

31-10-2008, 16:33
|
|
krel
Registrierter Benutzer
|
|
Registriert seit: Nov 2006
Ort: Osnabrück
Beiträge: 424
|
|
hast du vielleicht den Quellcode der JS Funktion? hab grad keinen Nerv danach zu suchen :P
|

02-11-2008, 13:54
|
|
stony2k
Newbie
|
|
Registriert seit: Dec 2005
Beiträge: 11
|
|
Zitat:
Original geschrieben von krel
hast du vielleicht den Quellcode der JS Funktion? hab grad keinen Nerv danach zu suchen :P
|
Code:
<script language="JavaScript">
function chk_form()
{
if(document.form.Login.value=="")
{
alert("Bitte das Feld Kundennummer ausfüllen!");
document.form.Login.focus();
}
else if(document.form.Login.value.length<1 || document.form.Login.value.length>80)
{
alert("Die Kundennummer muß zwischen 1 und 80 Zeichen lang sein!");
document.form.Login.focus();
}
else if(document.form.Password.value=="")
{
alert("Bitte das Feld Passwort ausfüllen!");
document.form.Password.focus();
}
else document.form.submit();
}
</script>
Ich hoffe du/ihr könnt mir weiter helfen.
|

09-04-2010, 10:25
|
|
Skrok
Registrierter Benutzer
|
|
Registriert seit: Aug 2002
Beiträge: 197
|
|
Curl Login
Wahrscheinlich bin ich der 100 Benutzer der eine Frage zu Curl hat aber was solls, google und auch das Forum konnte mir bisher nicht so richtig weiterhelfen.
Ich möchte mich auf einer fremden Internetseite einloggen und anschließend ein File-Upload durchführen. Da dieses automatisch ablaufen soll dachte ich einfach mal an php ;-) ...
Ich hab mit Curl noch nicht so viel gemacht daher auch einen Teil des Codes einfach zusammengeschrieben. Wenn ich mich mit diesem Code zB in unserem Onlineshop anmelde, klappt alles nicht aber da wo ich den Login benötige.
Ich bekomme keine Fehlermeldung habe den Header mit "HttpLiveHeraders" angesehen und habe ebenfalls curl_error() benutzt.
Hier mal der Code:
PHP-Code:
<?php
$sendData = array('username' => 'xxx',
'passwd' => 'xxx',
'remerber' => 'yes',
'Submit' => true,
'RedirectURI' => '/index.php?option=com_user');
curl_setopt($ch, CURLOPT_URL, "http://www.sellerama.de/index.php?option=com_user&view=login");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $sendData);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, true);
curl_exec($ch);
curl_close($ch);
?>
jeder kleinste Tip würde mich glaube ich weiterbringen...
Danke im vorraus!
Gruß
Jan
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|