Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sprawdzanie autentyczności danych na innej stronie.
Forum PHP.pl > Forum > Przedszkole
-gothan-
Witam.

Interesuje mnie czy bez użycia crona dało by radę zrobić coś w tym stylu.

-Przy wypełnieniu formularza wygeneruje kod który sobie dodaje do bazy w celu sprawdzenia czy na prawdę jest to ten użytkownik. Wygenerowany kod należy wstawić w specjalnie miejsce na stronie (innej stronie) w przeważnie opisie, lub w jakiś dodatkowej informacji. I tu właśnie teraz ta część której nie wiem jak wykonać. W jaki sposób sprawdzić czy użytkownik np. test wkleił ten kod do swojego opisu?
smietek
Można to zrobić chociażby za pomocą file(), ale jeśli strona wymaga logowania, to musisz wtedy użyć cUrla.
-gothan-
Sprawdziłem funkcję w manualu mimo tego, że każda linia jest opisana mam kilka wątpliwości dlaczego tak. Mógłby mi ktoś lepiej objaśnić?

  1. <?php
  2. // Pobierz plik do tablicy. W tym przykładzie poprzez HTTP pobierzemy
  3. // źródło HTML z URL
  4. $lines = file('http://www.example.com/');
  5. // Za pomocą pętli przeglądamy naszą tablicę i pokazujemy źródło strony w postaci
  6. // źródła HTML oraz numery linii.
  7. foreach ($lines as $line_num => $line) {
  8. echo "Linia #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
  9. }
  10.  
  11. // Kolejny przyklad pozwala pobrać stronę i umieścić ją w łańcuchu znaków Zobacz także file_get_contents().
  12. $html = implode ('', file ('http://www.example.com/'));
  13. ?>

-gothan-
Trochę błędów wyrzucało to trochę z edytowałem:

  1. <?php
  2. $lines = @file('www.example.com/');
  3. foreach ($lines as $line_num => $line) {
  4. echo "Linia #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
  5. }
  6. $html = @implode ('', file ('www.example.com/'));
  7. ?>


Tutaj nie mam pojęcia co zrobić?
Warning: Invalid argument supplied for foreach() in xxxxx on line 3



greycoffey
Tak. Błędy usuwa się używając @. Mądrze postępujesz...
-gothan-
A jak inaczej?
gorden
Operator @ tylko tłumi błędy, ale one nadal występują ohmy.gif

Foreach nie może wystartować. Najprawdopodobniej zmienna $lines jest pusta, czyli coś źle zrobiłeś, lub po prostu twój hosting nie udostępnia Ci tej funkcji.
-gothan-
Rozumie.

Przeczytałem gdzieś, że do tego celu lepiej jest użyć cURL-a. Znalazłem na wikipedii taki kod i oczywiście próbowałem dostosować do moich potrzeb.

  1. <?php
  2. <form action=index.php mathod=post>
  3. <input type=text name=name />
  4. <input type=submit name=submit value=Sprawdz />
  5. </form>
  6. ";
  7. if(isset($_POST['submit'])){
  8.  
  9. $hand = curl_init();
  10.  
  11. curl_setopt($hand, CURLOPT_URL, 'http://www.strona.pl/');
  12. curl_setopt($hand, CURLOPT_POST, 1);
  13. curl_setopt($hand, CURLOPT_POSTFIELDS, 'user-$_POST[\'name\']');
  14. curl_exec($hand);
  15. curl_close($hand);
  16. $td = preg_metch('/td style="word-wrap:break-word">(.*?)<td>/is');
  17. echo $td;
  18. }
  19. ?>


Potrzebuje pobrać taki fragment:
<tr><td style="word-wrap:break-word">W wyscigu po level nie ma zwyciezcow haha.gifD</td></tr>
razem z <tr></tr> ponieważ jeśli będzie bez to pojawi się taka sama komórka z stylem.
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.