PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP]String suchen ?



Freak1936
18.12.2011, 02:34
Hallo Com,

also ich suche nach einem bestimmten string (den wert von formkey!), um so werte aus einem web Formular zu extrahieren, bin mir aber nich sicher ob ich auf dem richtigen weg bin ...

die betreffende Zeile:



<input type="hidden" name="formkey" value="e78516136b86ab0a870e1e742f7cade746e450ba97181bd53b bb12c1304c478f86044d6574e91d4bd18308afb72f023a25d2 445950f3f0d36cbc7c9680bf74e9c76974de9da00caa5a9658 5dc57e47c99c302e4cebeb441aebef589c78bfb998a9b96256 3f259bf3617576f9ce515b5a" />Ich dachte mir das mach ich mit preg_match(), komme mit den Regex aber nicht so gut klar, mein Ansatz sieht so aus:


preg_match('#<input type=\"hidden\" name=\"formkey\" value=\"(.*)\" />#', $site, $rueckgabe);
Ich mein den gesuchten (Teil-)String, konnte man doch auch gleich so extrahieren, weiss aber nich genau wie. Oder soll ich das lieber mit Strinfunktionen machen ? Welche Funktion würdet ihr dafür nehmen ?

//ereg_replace sollte wohl passender für meine Zwecke sein ...

Barbers
18.12.2011, 07:40
ich bin jetzt etwas verwirrt, aber wieso net einfach

$_GET['formkey']
oder

$_POST['formkey']
je nach verwendetem formular halt.

11800
18.12.2011, 07:59
Ich glaube er will den Formstring einer anderen Seite aus dem geladenen Quelltext auslesen (um z.B ein Formular zu flooden)

IRET
18.12.2011, 08:01
strstr() (http://php.net/manual/de/function.strstr.php) oder preg_match() (http://php.net/manual/de/function.preg-match.php). Jenachdem was du jetzt genau vor hast. Aber Reguläre Ausdrücke sind generell schöner und mächtiger ;).

SFX
18.12.2011, 11:27
preg_match('#<input type="hidden" name="formkey" value="(+++91;^"+++93;*)" />#', $site, $m);
var_dump($m);

Freak1936
21.12.2011, 16:27
Ich glaube er will den Formstring einer anderen Seite aus dem geladenen Quelltext auslesen (um z.B ein Formular zu flooden)

Ja so in etwa stell ich mir das auch vor ... !
Ich hab etwas spät begriffen, das preg_match die ergebinisse in einem array spechert, der formkey ist die ganze zeit schon dort drinne.


preg_match('#<input type=\"hidden\" name=\"formkey\" value=\"(.*)\" />#', $site, $rueckgabe)
$rueckgabe+++91;0+++93;; //hier steht der gesamte suchstring inkl. formkey
$rueckgabe+++91;1+++93;;//hier steht nur der formkey drinnen

So wie bei -SFX- in etwa, leider verändert die foren software die inhalte der codetags, und ich hab das auch erst gerade begriffen als als ich meine eigene Lösung geposted habe

Bonkers
21.12.2011, 17:06
if (preg_match('%<input type="hidden" name="formkey" value="(.+?)" /> %s', $ziel, $regs)) {
$result = $regs[1];
} else {
$result = "";
}


Der formkey steht dann in $result, den Rest musst du nicht mehr abschneiden.

$result = "1212uhuh3434"

Als Beispiel ;)
$ziel ist der HTML-Code der Website.

killkill93
21.12.2011, 18:12
So mal zu meinem Verständnis..
Du hast aus dem Quelltext bereits das hier ausgelesen?

<input type="hidden" name="formkey" value="e78516136b86ab0a870e1e742f7cade746e450ba97181bd53b bb12c1304c478f86044d6574e91d4bd18308afb72f023a25d2 445950f3f0d36cbc7c9680bf74e9c76974de9da00caa5a9658 5dc57e47c99c302e4cebeb441aebef589c78bfb998a9b96256 3f259bf3617576f9ce515b5a" />

Und nun möchtest du aus dem bereits ausgelesenen input-tag den Value auslesen?

Oder haste den ganzen Quelltext eingelesen und willst daraus aus einem bestimmten input-tag (was nich in ner variable seperat gespeichert steht) den Wert?

Freak1936
21.12.2011, 18:23
Ja ein bischen von beidem, ich suche in einem eingelesenen Source besagtes input tag. Den Wert von diesem Tag (formkey) brauch ich für ein HTTP Request, um mich erfolgreich anmelden zu können.

Das Snippet von Bonkers werde ich noch mit einbauen, dann muss ich nich noch viel mit Arrays hantieren :)

killkill93
21.12.2011, 22:07
Okay also haste nen Quelltext wie den hier:



<html>

<head>
...
</head>

<body>
...
...
<input type="hidden" name="formkey" value="xyz123" />
...
...
</body>

</html>

Den lieste ein in ne Variable als String und willst den value (hier xyz123) rausfiltern?

SFX
21.12.2011, 22:11
Wo ist denn das Problem, es gibt doch schon fertige Lösungen?

Bonkers
21.12.2011, 22:42
Using Pattern

<input type="hidden" name="formkey" value="(.+?)" />

on

<input type="hidden" name="formkey" value="xyz123" />

Result:

Group 1 : xyz123


Funktioniert doch alles?