Autor Zpráva
n.u.r.v.
Profil *
Ahoj, potřeboval bych poradit s php a formulářem... Mám zadání:

Udělat web. aplikaci, kde uživatel zadá požadované údaje a na základě těchto údajů mu to na webu rwe vyhledá plánované odstávky (oficiální formulář rwe je zde: http://www.rwe-distribuce.cz/cs/odstavky/)

Problém je, že mi jejich aplikace nebere moje data (odesílaná postem pomocí curl....)

Schválně jsem si udělal v php jednoduchý script, který mi ukáže, která data formulář posílá:

foreach ($_POST as $k => $v) {
    if (is_array($v)) {
        foreach ($v as $value) {
            echo "prom.: " . $k . " hodnota= " . $value . "<br><br>";
        }
    } else {
        echo "prom.: " . $k . " hodnota= " . $v . "<br><br>";
    }

// proměnná $k obsahuje název proměnné (jméno z formuláře) 
// proměnná $v obsahuje hodnotu proměnné 
}

Když jsem pak tyto data zatím napevno vložil do svého scriptu (zatím místo formuláře), tak mi rwe pořád vypisuje, že jsem něco blbě vyplnil...a také vypisuje hlášku "Od Vašeho posledního požadavku uplynula příliš krátká doba. Zkuste prosím zadat Váš požadavek znovu."

Pozn.: rwe používá u formuláře skryté pole "token", kde je při každém načtení form. jiný 32 místný kod...Tak jsem to u sebe udělal tak, že před odesláním dat si pomocí file_get_html načtu rwe form a vemu si přidělený token...

Pozn. 2: form rwe má hodně skrytých polí...

Přikládám kod, kde je ukázka vkládání a odeslání dat pomocí curl (zatím napevno vložené hodnoty):

//ZISK TOKENU
$kod = file_get_html("http://www.rwe-distribuce.cz/cs/odstavky/");
$input = $kod->find('input');//pomocí php html parseru (www.maxiorel.cz) si vemu inputy a najdu token:
        foreach ($input as $value) {
            if (strpos($value, "token") > 0) {
                $token = substr($value, strpos($value, "value=\"") + strlen("value=\""));
                $token = substr($token, 0, strlen($token) - 3);
                break;
            }
        }
//CURL!!!!!!!!!
$ch = curl_init("http://www.rwe-distribuce.cz/cs/odstavky/"); //CILOVA URL
curl_setopt($ch, CURLOPT_HEADER, 0); //POKUD CHCI VRATIT INFO HLAVICKU
curl_setopt($ch, CURLOPT_POST, 1); //NASTAVIM ZE CHCI ODESLAT DATA
$var = "postback=0&init=n&token=" . $token . "&noinit=1&zadatelKrajId&zadatelObecId&typVstupu=1";
chk_mes = array();
        for ($i = 1; $i < 13; $i++) {
            if ($i == 5) {//zatím na pevno jako že vybírám 5. měsíc
                $chk_mes[$i] = 1;
            } else {
                $chk_mes[$i] = NULL;
            }
        }
$var .= "&chk_mes=" . $chk_mes;
$var .= "&zadatelKraj=Pardubický kraj&zadatelObec&datumOd&datumDo&btnPokracovat=Potvrdit";
curl_setopt($ch, CURLOPT_POSTFIELDS, $var);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //POKUD CHCI PRACOVAT S VYSLEDNOU STRANKU - NASTAVIM NA 1
$kod = curl_exec($ch);
curl_close($ch);
echo $kod;//vypis výsledku!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
n.u.r.v.
Profil
Moc prosím o pomoc, co dělám blbě...Patlám se s tím už od pátku a nic...Díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: