Curl érték és karakter hiba.

Curl érték és karakter hiba.
2022-11-02T20:51:23+01:00
2022-11-03T16:45:39+01:00
2022-11-03T17:20:33+01:00
Hutolada
Sziasztok. Olyan kérdésem lenne,hogy lehetséges megoldani azt,ha egy sorban ílyet szeretnék.:

header('Content-Type: application/json'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $urlbe'97'$urlki;

De akármit csinálok szintaktikai hibával elszáll.

curl_setopt($ch, CURLOPT_URL, $urlbe('97')$urlki);
a szám a két kiiratás közt fontos lenne a curlban.
js file eredményt kell kapni.

köszi a segítséget előre.
Mutasd a teljes hozzászólást!

  • Javaslom azt is írd le hogy mit szeretnél csinálni, mert a szintaxis próbálkozásaidból nem csak a PHP interpreternek, hanem nekünk se világos.

    Ha esetleg sztringeket szeretnél összefűzni, arra tudtommal a PHP-ban a . operátor való.
    Mutasd a teljes hozzászólást!
  • Szia neharagudj.

    Erre a sorra hivatkozik,hogy rossz.

    curl_setopt($ch, CURLOPT_URL, $urlbe('97')$urlki);



    Pl volt egy ilyen link:
    curl_setopt($ch, CURLOPT_URL, ('http://valami.hu/oldal/97/elkellfogadnia.json');

    De a 97 szám előőti részt váltakozóra kell megoldani illetve az utána levő részt.

    És ezzel van a baj mikor bele szeretném vinni ezt a két érteket amit az adatbázisból kéretem le.
    Mutasd a teljes hozzászólást!
  • Erre mondtam, hogy sztringeket összefűzni a . operátorral lehet. Van az egyik változód, van a "97" mint konstans sztring, meg van a másik változód. Ez három sztring, amiket összefűzve megkapod amit szeretnél.
    Mutasd a teljes hozzászólást!
  • igen pontosan. Bocsi nem tudtam ilyen szépen fogalmazni. Mindjárt próbálom,de valamiért nem adja meg magát.

    $urlbe.97.$urlki
    Mutasd a teljes hozzászólást!
  • Úgy látom itt nagyon az alapokkal kéne tisztába jönni mielőtt nekiállsz mindenféle publikusan elérhető kódot írni. Például hogy a sztring literálokat aposztrófok vagy idézőjelek közé kell írni.
    Mutasd a teljes hozzászólást!
  • Ilyet még nem csináltam. Egy barátomnak csinálom nekem sincs sok időm rá. De próbálok segíteni.
    Értelek úgy is volt. Amíg sima link volt bent. Sőt ha egy kiiratás rakok be pl:

    curl_setopt($ch, CURLOPT_URL, $urlbe;
    Vagy

    curl_setopt($ch, CURLOPT_URL, 'htp://elmentem.hu/kocsmaba/inni/egy/sort';
    Csak a kettő egybeforrasztva még nem láttam és nem tudtam én sem működésre bírni.
    Mutasd a teljes hozzászólást!
  • A helyes megoldás:

    curl_setopt($ch, CURLOPT_URL, $urlbe . '97' . $urlki);
    De azért azt érzed ugye, hogy nem fogsz tudni segíteni, ha te se értesz hozzá? Ezt most nem bántásból mondom, csak hogy reális képed legyen róla, hogy mit tudsz legközelebb megígérni egy barátodnak hasonló helyzetben. Az nem megoldás hogy majd a fórumozók töltsék el az idejüket azzal, amit millió tutorialból is el lehet olvasni a neten.
    Mutasd a teljes hozzászólást!
  • $query = mysqli_query($link, "SELECT * FROM recept"); while ($row = mysqli_fetch_array($query)) { $urlbe = $row['urlbe']; $urlki = $row['urlki']; $mas = $row['mas']; $almos = $row['almos]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $urlbe . '97' . $urlki); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization )); curl_setopt($ch, CURLOPT_USERAGENT, $almos); curl_setopt($ch, CURLOPT_COOKIE, $mas); $html = curl_exec($ch); echo $html; curl_close($ch); } ?>
    Üres oldalt adott be.
    Nem sértettél meg isten ments. Sőt egyenes embernek tartalak,mert megmondod őszintén másnak amit gondolsz és emellett nem olyan módon,hanem finoman kulturáltan. Én személy szerint az ilyen embereket többre tartom,mint hogy gonoszkodjon idegeljen .
    Mutasd a teljes hozzászólást!
  • Innen hiányzik egy aposztróf:

    $almos = $row['almos];
    Fejlesztés közben érdemes bekapcsolni a hibaüzeneteket (php.ini-ben error_reporting, display_errors) hogy ilyen esetekben ne csak egy üres képernyőt láss, hanem legalább egy php error üzenetet amiből ki tudsz indulni vagy ide bemásolni.

    curl részre is jó lenne némi hibakezelés:

    ... $html = curl_exec($ch); if($html === false) { // hibakezelés, loggolás, valami echo 'Hiba történt: #' . curl_errno($ch) . ': '. curl_error($ch); } else { echo $html; // esetleg echo htmlentities($html); } curl_close($ch); ...
    illetve a mysqli-hez is hiba ellenőrzés elkerülve a "...expects parameter 1 to be mysqli_result, boolean given in..." jellegű hibaüzeneteket.

    Így redukálhatod a lehetőségeket, hogy ha üres képernyőt látsz akkor:
    - php fatal error van
    - nincs semmi a recept táblában (ez egy plusz ellenőrzés lenne, hogy üres eredményt adott-e vissza a query)
    - hibára futott a query
    - curl futott hibára
    - curl lefutott de semmit nem adott vissza
    - curl lefutott de valami olyan html-t adott vissza amit nem jelenít meg a böngésző és csak az oldal forrásában látnád
    Mutasd a teljes hozzászólást!
  • Nem fut hibára.
    Mivel ha linket rakok bele kiírja remekül át is irányít.

    Adatbázisból lekérem és nem curl-ban hanem simán átirányításban iratom ki akkor is jó. A hiba itt van:

    curl_setopt($ch, CURLOPT_URL, $urlbe('97')$urlki);

    Mivel kiírta,hogy szintaxis hibára lázad ... 22 sor ami ez.


    Notice: Undefined variable: urlbe in /var/www/virtual/oldal.hu/lekeres.php on line 19

    Notice: Undefined variable: urlki in /var/www/virtual/oldal.hu/lekeres.php on line 19



    Két másik megoldásnál sikeresen átirányít curl eredményből.
    Egyedül mikor a curlopt_url-be berakom a két kiiratást a szám körül akkor nem történik meg az átirányítás.

    Amúgy #7-es hibakódot ad vissza:

    CURLE_COULDNT_CONNECT
    Persze mert nem tudom oda iratni,hogy jó legyen és nem tudja milyen linket akarok elérni így kiiratásban.

    Inkább kicsit átgondolom.:

    $kettos = $urlbe.'3010'.$urlki; curl_setopt($ch, CURLOPT_URL, $kettos);
    Majd valahogy belepréselem.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd