Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Curl nie dodaje wpisu
Forum PHP.pl > Forum > PHP
PawelC
napisałem sobie skrypt który można umieścić na swojej stronie i dzięki niemu dodać do mojej bazy na innym serwerze wpis do księgi, te dodane wpisy są wyświetlane na stronie osoby która zarejestrowała u mnie księge gości. problem polega na tym że wyszukuje numer sesji bezproblemu etc... kod mam taki:
  1. <?php
  2. $adres="http://www.adres.pl/dodaj_wpis.php?id=157860";
  3. $ch = curl_init(urldecode($adres));
  4. curl_setopt($ch, CURLOPT_HEADER, 0);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  6. $pobrane_zrodlo = curl_exec($ch);
  7. curl_setopt($ch,CURLOPT_COOKIEFILE,'cook.txt');
  8. curl_setopt($ch,CURLOPT_COOKIEJAR,'cook.txt');
  9.  
  10. preg_match_all("#[a-z0-9]{25,35}+#", $pobrane_zrodlo, $email);
  11. $postFields['femail']="zosia@wp.pl";
  12. $postFields['fnick']="Yupi";
  13. $postFields['fstrona']="";
  14. $postFields['ftresc']='Witaj';
  15. $postFields['id']="157860";
  16. $postFields['sid']='$email[0][0]';
  17. $ch = curl_init('http://www.adres.pl/dodaj_wpis1.php?id=157860');
  18. curl_setopt($ch,CURLOPT_COOKIEFILE,'cook.txt');
  19. curl_setopt($ch,CURLOPT_COOKIEJAR,'cook.txt');
  20. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  21. curl_exec($ch);
  22. ?>

Problem polega na tym że wyświetla że dodano wpis, a nie dodaje go, co może być nie tak? Plik dodaj_wpis1.php jest odpowiedzialny za dodanie wpisu, a dodaj_wpis jest z formularzem do wypełnienia. Skrypt wyszykuje numer identyfikacyjny sesji i wraz z innymi danymi przekazuje go do pliku dodaj_wpis1.php.
netmare
nigdy nie używałem cURL, ale czy nie powinno tam być curl_setopt($ch,CURLOPT_POST,1); albo jakoś tak?
PawelC
Nigdy nie stosowałem tego co napisałeś i we wszystkich przypadkach działało bez tego, tylko w tym przypadku coś niechcę działać, i nie mam pojęcia dlaczego.
netmare
CURLOPT_POST (boolean)

If TRUE, prepares the cURL session to perform an HTTP POST operation. The values to be sent can be set using CURLOPT_POSTFIELDS.

znalazłem coś takiego, a spróbuj podejrzeć nagłówek wysyłany przez cURL, wydaje mi się że jest taka możliwość, a jak nie to sniff. Może jednak coś nie domaga z cURL-em.

Napisałbym Ci żebyś pokazał, stosowne fragmenty kodu z pliku odpowiedzialnego za zapis POST'a, ale z tego co kojarzę to Ty się orientujesz w tym co robisz.
PawelC
Cały kod skryptu masz w moim pierwszym poście smile.gif
netmare
ale pod adres.pl mam 404
PawelC
Dobra poradziłem sobie, problem polegał na tym że zamiast numeru sesji przesyłał to "$email[0][0]" dlatego wywalał mi error o złym numerze sesji smile.gif
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.