Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]curl
Forum PHP.pl > Forum > Przedszkole
dark_root
mam takie pliki
index.php
  1. <?php
  2. $hand = curl_init();
  3. curl_setopt($hand, CURLOPT_URL, 'http:example.pl/bb.php');
  4. curl_setopt($hand, CURLOPT_POST, 1);
  5. $postFields['l']=$_SERVER[HTTP_USER_AGENT];
  6. curl_exec($hand);
  7.  
  8. curl_close($hand);
  9. ?>

oraz
bb.php
  1. <?php
  2. $ruben=$_POST['l'];
  3. $nazwapliku = 'ruben.txt';
  4. $plik = @fopen($nazwapliku, "a") ;
  5. flock($plik, 2) ;
  6. fwrite($plik,"$ruben") ;
  7. flock($plik, 3) ;
  8. fclose($plik) ;
  9. ?>

Jak włączę plik index.php do do bb.php nic się nie zapisuje pomimo tego, iż nie wyskakuje żaden błąd. Czemu to nie działa?
pyro
bo zapomniales o:

  1. <?php
  2. curl_setopt($hand, CURLOPT_POSTFIELDS, $postFields);
  3. ?>
dark_root
Wielkie dzięki rolleyes.gif

A wie ktoś może czemu ten kod nie działa
index.php
  1. <?php
  2. $hand = curl_init();
  3. curl_setopt($hand, CURLOPT_URL, 'http://example.pl/123');
  4. curl_setopt($hand, CURLOPT_POST, 1);
  5. $b['msg_send']=123;
  6. $postFields['subject']=czesc;
  7. $a['message']=[color="#000000"]$_SERVER[HTTP_USER_AGENT][/color];
  8. curl_setopt($hand, CURLOPT_POSTFIELDS, $postFields&a&$b);
  9. curl_exec($hand);
  10. curl_close($hand);
  11. ?>

Oto kod formularza, pod który próbuję się podpiąć
  1. <?php
  2. <form name="inputform" method="post" action="http://example.pl/0" onsubmit="return ValidateForm(this)">
  3. <input name="msg_send" value="123" type="hidden">
  4. Temat:
  5. <input name="subject" value="" maxlength="32" class="textbox" style="width: 400px;" type="text"></td>
  6. Wiadomoś&#263;:
  7. <textarea name="message" cols="80" rows="15" class="textbox"></textarea>
  8.  
  9. <input name="send_preview" value="Podgląd" class="button" type="submit">
  10. <input name="send_message" value="Wyślij" class="button" type="submit">
  11. </form>
  12. ?>

Jednak nic się nie wysyła. Co jest źle?
Cezar708
zamiast linijki:

  1. <?php
  2. curl_setopt($hand, CURLOPT_POSTFIELDS, $postFields&a&$b);
  3. ?>


spróbuj:
  1. <?php
  2. curl_setopt($hand, CURLOPT_POSTFIELDS, http_build_query($postFields));
  3. ?>


powinno pomóc

Pozdrawiam
Cezar708
pyro
popraw kod bo sie zrobil balagan

// ADD

Cezar, nie, poniewaz mozna tez podac tablice jako argument
Cezar708
pyro masz rację, tak nawet jest w dokumentacji i w 99% przypadkach podane przez Ciebie rozwiązanie zadziała. Natomiast ja miałem kiedyś taki przypadek (podajże w wersji 5.2.3-ubuntu6.4), że curl_setopt() nie przyjął tablicy jako argumentu (a w zasadzie przyjął, ale źle zinterpretował)

Dlatego spróbowałem z http_build_query() i problem przypadkiem rozwiązałem. Dlatego daję mu sugestię aby tak spróbował bo innego błędu nie widzę (poza oczywistymi "błędami w edycji").

Jedyny problem z użyciem http_build_query() to jest czasem związane z konfigurację w php.ini: arg_separator.output niektóre serwery (nie wiedząc dlaczego) mają to ustawiona na &amp, czego niestety http_build_query() nie respektuje (tez nie wiedząc dlaczego winksmiley.jpg)

Pozdro
Cezar708
dark_root
Zmieniłem, teraz kod wygląda tak :
  1. <?php
  2. $hand = curl_init();
  3. curl_setopt($hand, CURLOPT_URL, 'http://example/');
  4. curl_setopt($hand, CURLOPT_POST, 1);
  5. $postFields['msg_send']=1;
  6. $postFields['subject']=witaj;
  7. $postFields['message']=Jak leci;
  8. curl_setopt($hand, CURLOPT_POSTFIELDS, http_build_query($postFields));
  9. curl_exec($hand);
  10. curl_close($hand);
  11. ?>

Efekt widoczny na stronie . Niby coś się wyświetla, ale nie do końca tak jak powinno i nic się nie wysyła. Co może być tego przyczyną?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.