Voting funktioniert nicht

Please report bugs here!

Moderator: Thorsten

Post Reply
kh.janich
Posts: 4
Joined: Wed Aug 24, 2005 3:06 pm

Voting funktioniert nicht

Post by kh.janich »

Wenn ich ein Voting mache, wird immer nur das erste Octet der IP (172)Adresse eingetragen. Dadurch kann kein anderer PC im selben Netzwerk einen Votingeintrag machen.
Das passiert beim ersten Vote:

DEBUG INFORMATION:

SELECT sid FROM edvfaqsessions WHERE sid = 9 AND ip = '172.16.3.7' AND time > 1124805767
SELECT id, lang, parent_id, name, description FROM edvfaqcategories WHERE lang = 'de' ORDER BY id
SELECT count(sid) FROM edvfaqsessions WHERE time > 1124891867 GROUP BY ip
SELECT DISTINCT edvfaqdata.id, edvfaqdata.lang, edvfaqdata.thema, edvfaqcategoryrelations.category_id, edvfaqvisits.visits FROM edvfaqvisits, edvfaqdata LEFT JOIN edvfaqcategoryrelations ON edvfaqdata.id = edvfaqcategoryrelations.record_id AND edvfaqdata.lang = edvfaqcategoryrelations.record_lang WHERE edvfaqdata.lang = 'de' AND edvfaqdata.id = edvfaqvisits.id AND edvfaqdata.lang = edvfaqvisits.lang AND edvfaqdata.active = 'yes' ORDER BY edvfaqvisits.visits DESC
SELECT DISTINCT edvfaqdata.id, edvfaqdata.lang, edvfaqcategoryrelations.category_id, edvfaqdata.thema, edvfaqdata.datum, edvfaqvisits.visits FROM edvfaqvisits, edvfaqdata LEFT JOIN edvfaqcategoryrelations ON edvfaqdata.id = edvfaqcategoryrelations.record_id AND edvfaqdata.lang = edvfaqcategoryrelations.record_lang WHERE edvfaqdata.lang = 'de' AND edvfaqdata.id = edvfaqvisits.id AND edvfaqdata.lang = edvfaqvisits.lang AND edvfaqdata.active = 'yes' ORDER BY edvfaqdata.datum DESC
SELECT id FROM edvfaqvoting WHERE artikel = 11 AND (ip = '172' AND datum > 1124891867)
SELECT usr FROM edvfaqvoting WHERE artikel = 11
UPDATE edvfaqvoting SET vote = vote + 2, usr = usr + 1, datum = 1124892167, ip = '172' where artikel = 11


Und das beim nächsten Versuch:
DEBUG INFORMATION:

SELECT sid FROM edvfaqsessions WHERE sid = 7 AND ip = '172.16.3.24' AND time > 1124805828
SELECT id, lang, parent_id, name, description FROM edvfaqcategories WHERE lang = 'de' ORDER BY id
SELECT count(sid) FROM edvfaqsessions WHERE time > 1124891928 GROUP BY ip
SELECT DISTINCT edvfaqdata.id, edvfaqdata.lang, edvfaqdata.thema, edvfaqcategoryrelations.category_id, edvfaqvisits.visits FROM edvfaqvisits, edvfaqdata LEFT JOIN edvfaqcategoryrelations ON edvfaqdata.id = edvfaqcategoryrelations.record_id AND edvfaqdata.lang = edvfaqcategoryrelations.record_lang WHERE edvfaqdata.lang = 'de' AND edvfaqdata.id = edvfaqvisits.id AND edvfaqdata.lang = edvfaqvisits.lang AND edvfaqdata.active = 'yes' ORDER BY edvfaqvisits.visits DESC
SELECT DISTINCT edvfaqdata.id, edvfaqdata.lang, edvfaqcategoryrelations.category_id, edvfaqdata.thema, edvfaqdata.datum, edvfaqvisits.visits FROM edvfaqvisits, edvfaqdata LEFT JOIN edvfaqcategoryrelations ON edvfaqdata.id = edvfaqcategoryrelations.record_id AND edvfaqdata.lang = edvfaqcategoryrelations.record_lang WHERE edvfaqdata.lang = 'de' AND edvfaqdata.id = edvfaqvisits.id AND edvfaqdata.lang = edvfaqvisits.lang AND edvfaqdata.active = 'yes' ORDER BY edvfaqdata.datum DESC
SELECT id FROM edvfaqvoting WHERE artikel = 11 AND (ip = '172' AND datum > 1124891928)
SELECT id FROM edvfaqvoting WHERE artikel = 11 AND (ip = '172' AND datum > 1124891928)

Das Netzwerk ist ein Class B mit 172.16.0.0 die Version ist 1.5.0.

Kennt jemand die Lösung?
Danke
Karl-Heinz J.
Thorsten
Posts: 15724
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

das ist ein Bug in der 1.5.0. :-(

Du kannst ihn per Hand fixen, in dem du die Zeile 24 in der savevoting.php in das folgende änderst:

Code: Select all

$userip = (isset($_POST["userip"])) ? safeSQL($_POST["userip"]) : '';
oder du wartest auf die 1.5.1.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
wizi
Posts: 2
Joined: Wed Aug 24, 2005 3:59 pm

Post by wizi »

Hallo,

noch ein kleiner Hinweis. In einem Class C Netzwerk passiert das nicht. Getestet mit 10.23.57.0/255 von verschiedenen Rechnern.

Edit:
Oder doch. Gezaehlt wird nicht.
Last edited by wizi on Wed Aug 24, 2005 4:06 pm, edited 1 time in total.
Thorsten
Posts: 15724
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

der Fehler, der in der 1.5.0 enthalten ist, wandelt leider alle IPs in Integer, also Ganzzahlen um... :-(

Der Fix oben korrigiert das.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
kh.janich
Posts: 4
Joined: Wed Aug 24, 2005 3:06 pm

einen Schritt weiter

Post by kh.janich »

Das erste Voting geht jetzt mit der richtigen IP (172.16.3.7). Wenn der 2. PC einen Eintrag machen will, versucht er ein Update des Records. Sollte nicht jede IP eine eigene Zeile wegen dem IP-Tracking in die DB eintragen?

DEBUG INFORMATION:

SELECT sid FROM edvfaqsessions WHERE sid = 10 AND ip = '172.16.3.24' AND time > 1124809468
SELECT id, lang, parent_id, name, description FROM edvfaqcategories WHERE lang = 'de' ORDER BY id
SELECT count(sid) FROM edvfaqsessions WHERE time > 1124895568 GROUP BY ip
SELECT DISTINCT edvfaqdata.id, edvfaqdata.lang, edvfaqdata.thema, edvfaqcategoryrelations.category_id, edvfaqvisits.visits FROM edvfaqvisits, edvfaqdata LEFT JOIN edvfaqcategoryrelations ON edvfaqdata.id = edvfaqcategoryrelations.record_id AND edvfaqdata.lang = edvfaqcategoryrelations.record_lang WHERE edvfaqdata.lang = 'de' AND edvfaqdata.id = edvfaqvisits.id AND edvfaqdata.lang = edvfaqvisits.lang AND edvfaqdata.active = 'yes' ORDER BY edvfaqvisits.visits DESC
SELECT DISTINCT edvfaqdata.id, edvfaqdata.lang, edvfaqcategoryrelations.category_id, edvfaqdata.thema, edvfaqdata.datum, edvfaqvisits.visits FROM edvfaqvisits, edvfaqdata LEFT JOIN edvfaqcategoryrelations ON edvfaqdata.id = edvfaqcategoryrelations.record_id AND edvfaqdata.lang = edvfaqcategoryrelations.record_lang WHERE edvfaqdata.lang = 'de' AND edvfaqdata.id = edvfaqvisits.id AND edvfaqdata.lang = edvfaqvisits.lang AND edvfaqdata.active = 'yes' ORDER BY edvfaqdata.datum DESC
SELECT id FROM edvfaqvoting WHERE artikel = 11 AND (ip = '172.16.3.24' AND datum > 1124895568)
SELECT usr FROM edvfaqvoting WHERE artikel = 11
UPDATE edvfaqvoting SET vote = vote + 4, usr = user + 1, datum = 1124895868, ip = '172.16.3.24' where artikel = 11
Karl-Heinz J.
Thorsten
Posts: 15724
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Re: einen Schritt weiter

Post by Thorsten »

Hi,
kh.janich wrote:Wenn der 2. PC einen Eintrag machen will, versucht er ein Update des Records. Sollte nicht jede IP eine eigene Zeile wegen dem IP-Tracking in die DB eintragen?
das ist so korrekt. Jede IP wird aus Datenschutzgründen (meinen eigenen) nicht geloggt, sondern immer nur die letzte.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
wolf
Posts: 22
Joined: Tue Jan 11, 2005 10:44 am
Location: Denmark
Contact:

Not quite there

Post by wolf »

I've applied the bug fix that makes sure the entire IP gets entered on my phpMyFAQ v. 1.5.0 installation. However, I think there might be other problems now:
  1. When a FAQ entry with multiple votes is viewed, the vote summary doesn't seem to average the votes, and it reports that only one vote has been entered.
  2. Also, it looks like if an entry has received a vote, additional votes (from other IPs, that is) are no longer registered for that FAQ entry.
I seem to recall that similar problems existed in some of the 1.4.x releases at the time when the 1.5.x branch was created, so it might have reappeared in the 1.5.x release.

Could you try and look into this?

Thanks a lot!

- wolf -

(I apologize for not writing in German; unfortunately my German skills are limited to reading the language. If you prefer to keep this thread in German, please don't feel compelled to switch to English!)
kh.janich
Posts: 4
Joined: Wed Aug 24, 2005 3:06 pm

Post by kh.janich »

Der Update Befehl ging leider nicht:
UPDATE edvfaqvoting SET vote = vote + 1, usr = user + 1, datum = 1124951773, ip = '172.16.3.7' where artikel = 11

Sollte da nicht usr=usr+1 stehen? Das habe ich in der savevoting.php eingebaut. Wenn ich das mache läuft das Update.

Aber, wie wird sichergestellt, daß ein Benutzer nicht mehrmals voten kann? Bei mir ist das nicht so wichtig, aber vielleicht fürt andere. Jedenfalls kann ich vom selben PC mehrmals voten.

Übrigens gefällt mir die Software sehr gut, übersichtlich gehalten und für normale User einfach zu bedienen !
Karl-Heinz J.
Thorsten
Posts: 15724
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

I'll check the whole voting functions for the next release 1.5.1.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
kh.janich
Posts: 4
Joined: Wed Aug 24, 2005 3:06 pm

Post by kh.janich »

Da habe ich noch einen Hinweis. Die Auswertung stimmt auch nicht. Ich bekomme für folgende Datensätze 525% und 100%:

id lang active category_id thema num count(*)
11 de yes 17 Monitor Austausch, wann gibt es einen TFT Monitor? 22.0000 1
2 de yes 26 Outlook hängt sich auf dem Termserv immer auf 5.0000 1

Der Count ist immer 1. Sollte das nicht die Anzahl der Votings pro Artikel sein?

Danke
Karl-Heinz J.
Thorsten
Posts: 15724
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

das mit der Auswertung hab ich gestern auch festgestellt und ich arbeite an einem Fix. Danke für dein intensives Testen.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
Thorsten
Posts: 15724
Joined: Tue Sep 25, 2001 11:14 am
Location: #phpmyfaq
Contact:

Post by Thorsten »

Hi,

I fixed these errors in 1.5.1 and 1.6.0-dev.

bye
Thorsten
phpMyFAQ Maintainer and Lead Developer
amazon.de Wishlist
Post Reply