Autor Zpráva
Pavel J
Profil *
Odesílám data z formuláře kde ošetřuji vícenásobné odeslání dat, tak že nakonec přeměrovávám přes header 303 kou ...

a těsně před přesměrování bych potřeboval vykonat curl /POST požadavek na jinou stránku, to se mi nyní nedaří prostě se nevykoná

Kód curl je standarní:


$post = array(
    'i' => $url_post
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://moje.adresa.cz/api/notify.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

$result=curl_exec($ch);

curl_close ($ch);

header("Location: http://www.mujweb.cz/presmerovano.html", true, 303);

Jak se to má správně oštřit aby to zafungovalo?
lionel messi
Profil
Pavel J:

Na riadok 15 si, prosím, doplň výpis chyby curl:

if (curl_error($ch)) {
  die(curl_error($ch));
}

a napíš sem do diskusie znenie chybovej hlášky.


1. Keďže je skript v prípade chyby ukončený pomocou die(), neprebehne presmerovanie.
2. Nejde o vhodný spôsob práce s chybami na ostrom serveri.
3. Nesúvisí s meritom veci, ale môže sa hodiť na nastavovanie parametrov curl: curl_setopt_array
Pavel J
Profil *
lionel messi:
Chybu to žádnou nehlásí, navíc když ten kód zpustím bez toho přesměrování 303, tak se curl normálně vykoná, tak jak je očekáváno.
Problém způsobuje evidentně to přesměrování, které tam potřebuji ponechat.
lionel messi
Profil
Pavel J:

Ak po presmerovaní pristupuješ k premennej $result, výsledok curl (stiahnuté dáta) tam nenájdeš, pretože dáta medzi stránkami/skriptmi nemožno predávať týmto spôsobom. To však neznamená, že curl neprebehol správne.

Ako vlastne zisťuješ, či sa curl vykonal alebo nie?
Pavel J
Profil *
předává to parametry externímu api , které odesílá notifikace přes "one signal", a když to přesměrování nepoužiji, vše probíhá ok, a když se přesměrovává prostě to api ty notifikace neodešle, tudíž evidentně curl nedorazilo :(


$result dále nevyužívám .....
Davex
Profil
Pavel J:
Toto asi není celý kód, protože funguje. Není v okolí header() syntaktická chyba, díky čemuž by se skript nevykonal?

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:

0