Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne] Wykrywanie przeczytania tekstu
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Czy są jakieś metody, (nie codzienne nawet) na sprawdzenie czy użytkownik przeczytał tekst? Pomijam oczywiście wszelkiego rodzaju ankiety czy pytania o tekst. Chodzi mi o jakieś "wewnętrzne" sprawdzanie czy użytkownik chociaż stwarzał pozory zapoznania się z nim.

Proszę o pomoc!

Pozdrawiam, Mateusz!
BaN
Nie wiadomo w jakim programie te teksty są czytane, zakładam, że to strona internetowa i używana jest przeglądarka. Możesz wtedy zastosować rozwiązanie opisane na stronie: jQuery - Check if element is visible after scroling
Ulysess
hmm a może w momencie gdy user wchodzi na stronę z jakimś tam txt jest dodawany rekord w który znajdował by sie hm id usera , id_txt questionmark.gif
skowron-line
Jeżeli tekst jest dość długi możesz na przykład:
- kiedy scroll będzie na samym dole, wywołać akcję AJAX itd, ale tu pojawia się problem z krótkim tekstem który mieści się na stronie i scroll się nie pojawia
- pod tekstem wstawić element w którym np. byś miał nazwisko autora i po zjechaniu scrollem na niego wysłać akcje (niewiem jak by to było z tekstem mieszczącym się w oknie) i też wywołać akcje AJAX
Spawnm
Jeśli to jedyny dłuższy tekst na stronie możesz też sprawdzić ile czasu user przebywał na stronie.
patryk9200
ja mam trochę inny pomysł ;P
ja zrobił bym to tak:
  1. function _ReadingTime($tekst, $time)
  2. {
  3. $length=strlen(strip_tags($tekst));
  4. //ilość 100 liter przez czas
  5. $tim=$length / 100;
  6. $tim=$tim * $time;
  7. $return['time']=$tim;
  8. $return['text']=strip_tags($tekst);
  9. return $return;
  10. }

i do tego jakaś funkcja w JavaScript lub AJAX odejmująca 1 co sekundę aż do 0 ;P
Jak działa?
zlicza liczbę znaków (bez HTML), dzieli je przez 100 znaków a następnie mnoży przez średni czas ustalony do przeczytania 100 znaków ;P
oczywiście czas podajemy i jest zwracany w sekundach, przykład użycia:
  1. <?php
  2. function _ReadingTime($tekst, $time)
  3. {
  4. $length=strlen(strip_tags($tekst));
  5. //ilość 100 liter przez czas
  6. $tim=$length / 100;
  7. $tim=$tim * $time;
  8. $return['time']=$tim;
  9. $return['text']=strip_tags($tekst);
  10. return $return;
  11. }
  12. $tekst = '<span class="k">echo</span> <span class="s2">&quot;&lt;LI&gt;</span><span class="si">$foo-&gt;id</span><span class="s2"> - </span><span class="si">$foo-&gt;nazwa</span><span class="s2">&lt;br /&gt;&quot;</span><span class="p">;</span>
  13. <span class="p">}</span>
  14. </pre></div>
  15. </div>
  16. Biblioteka SimpleXML jest standardowym składnikiem PHP 5 i wykonanie tego skryptu powinno wyświetlić:
  17. <div class="box"><pre>3 - nazwa testowa
  18. 4 - inna nazwa</pre></div>
  19. Analizując kod warto zobaczyć jak wygląda obiekt $xml:
  20. <div class="box"><pre>
  21. SimpleXMLElement Object
  22. (
  23. [wpis] => Array
  24. (
  25. [0] => SimpleXMLElement Object
  26. (
  27. [id] => 3
  28. [nazwa] => nazwa testowa
  29. )
  30.  
  31. [1] => SimpleXMLElement Object
  32. (
  33. [id] => 4
  34. [nazwa] => inna nazwa
  35. )
  36.  
  37. )
  38.  
  39. )
  40. </pre></div>
  41. By wyciągnąć określoną wartość należy posłużyć się zmienną <b>$xml->NAZWA GŁÓWNEGO KLUCZA[INDEKS LICZBOWY]->NAZWA POLA KOŃCOWEGO</b>, czyli: <b>$xml->wpis[1]->id / $xml->wpis[0]->id</b>. <br />
  42. <b>Modyfikacja pliku XML</b> jest prosta:
  43. <div class="box" style="overflow:hidden;font-size:11px;"><div class="highlight"><pre><span class="cp">&lt;?php</span>
  44. ';
  45. $time=_ReadingTime($tekst, 5);
  46. echo $time['text'].'<br>Czas do przeczytania tekstu (sekund):'.$time['time'];


Zwróci nam to:
Czas do przeczytania tekstu (sekund):46.35
thomson89
Ale niektórzy czytają szybciej lub dłużej. Najwłaściwszy chyba będzie pomysł ~Spawn'a, gdyż jeżeli mam na tej stronie regulamin to mogę zablokować wysłanie formularza chociaż przez 20s. Ale gdy wyskoczy komuś komunikat że nie przeczytał to zacznie czytać...

Oczywiście nie wszyscy się na to złapią.

Niezłym sposobem też może być wstawienie iframe i sprawdzenie czy została przewinięta. Dzięki za pomoc!
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.