» Forum » Clanscript » Fehlersuche und Probleme » Voting für user nur einmal
  Mitglieder   |   Gallery   |   FAQ's   |   Regeln

[ Anmelden zum schreiben ]

Voting für user nur einmal
Schakal76
Mitglied
0 Beitragspunkte
Posts: 174

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 03.07.2007 - 22:26:18     Zitieren
Hallo

Ich habe da mal eine frage bezüglich des votings --> der vote Box, ist es möglich das alle die auf der hompage regestriert sind das aktuelle voting nur einmal machen können? Das Problem, welches ich zb habe ist das wenn ich mich am nächsten tag wieder einlogge (manchmal auch später am gleichen Tag) ich das voting nocheinmal machen kann/ muss um den aktuellen stand zu sehen, damit verfälsche ich aber das ergebnis.

Mir würde es schon ausreichen, wenn alle regestreierten auf meiner HP das voting nur einmal abgeben dürfen, so das man wenn man wieder mal auf die HP geht immer nur noch das ergebnis sieht....

Hoffe es ist einigermassen verständlich erklärt...

Danke für eure Hilfe
mfg
Schakal


verwendete ilchClan Version: 1.1

betroffene Homepage: sfh-clan.eu


Binde Dich an nichts, was du nicht in 30 sekunden problemlos wieder los wirst!!
www.MessebauBerlin.eu
vollstr3cker
Mitglied
0 Beitragspunkte
Posts: 1399

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 03.07.2007 - 22:42:03     Zitieren
du kannst einstellen das der vote nur für registrierte ist dann kann jeder nur einmal voten


####################
## hier geht's zu apex designs,
# meinem digitalen Portfolio
Schakal76
Mitglied
0 Beitragspunkte
Posts: 174

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 03.07.2007 - 22:44:54     Zitieren
das hat leider den nachteil das dann kein anderer voten kann ... ist nicht so das was ich erreichen mag. ich will nur das umgehen das die leute die täglich auf die hp gehen... meist die die dort auch regestriert sind nicht mehrmals voten müssen um das ergebnis zu sehn


Binde Dich an nichts, was du nicht in 30 sekunden problemlos wieder los wirst!!
www.MessebauBerlin.eu
boehserdavid
Mitglied
2 Beitragspunkte
Posts: 2123

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 04.07.2007 - 07:11:43     Zitieren
Hey, Schakal76!

An sowas bin ich im Moment bei, also ich hab den Gedanken schonmal gefasst, sowas umzusetzen!

Wenn du irgendwie noch 2-3 Tage warten kannst, dann geb ich dir den Code!

Mit böhsen Grüßen
BöhserDavid


-Heute schon böhse gewesen?- Ab zur Community
-No Support via Contact-
Schakal76
Mitglied
0 Beitragspunkte
Posts: 174

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 04.07.2007 - 18:21:49     Zitieren
na klar hab ich die zeit Smilie

danke


Binde Dich an nichts, was du nicht in 30 sekunden problemlos wieder los wirst!!
www.MessebauBerlin.eu
Frush
Mitglied
0 Beitragspunkte
Posts: 42

0 Mitglieder finden den Beitrag gut.

Merkliste 06.07.2007 - 14:03:04     Zitieren
ich bräuchte den code bitte auch, habe das gleiche problem.

Wenns geht, einfach hier posten oder?

Danke!

Smilie
Schakal76
Mitglied
0 Beitragspunkte
Posts: 174

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 08.07.2007 - 06:19:28     Zitieren
wollt mal nachfragen ob es schon vortschritte gibt oder es doch zu kompliziert ist? Vieleicht hat ja auch n anderer noch ne idee Smilie

mfg
Schakal


Binde Dich an nichts, was du nicht in 30 sekunden problemlos wieder los wirst!!
www.MessebauBerlin.eu
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 08.07.2007 - 10:31:02     Zitieren
Das ist eigentlich ganz einfach Auslachen
Man muss nur in den Dateien include/contents/vote.php (2mal) und include/boxes/vote.php (1mal).
Den Code
if ($fraRow->recht == 2) {
		  $inTextAr = $_SESSION['authid'];
		} elseif ($fraRow->recht == 1) {
		  $inTextAr = $_SERVER['REMOTE_ADDR'];
		}
durch folgenden Code
$inTextAr = $_SESSION['authid'];
  	if ($fraRow->recht == 1 AND !loggedin()) {
  	  $inTextAr = $_SERVER['REMOTE_ADDR'];
  	}
ersetzen.
Bei Leute, bei denen es zu Problemen mit dem Abstimmen von Gästen gibt, die müssen $_SERVER['REMOTE_ADDR'] durch getip() ersetzen.


Zuletzt modifiziert von Mairu am 08.07.2007 - 11:24:51


Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
boehserdavid
Mitglied
2 Beitragspunkte
Posts: 2123

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 08.07.2007 - 11:13:04     Zitieren
Danke Mairu, ich wollte das auch gerade in Angriff nehmen, ich kam bloß nicht dazu, da immer irgendwer dazwischen kam, und ein "kleines" Problem hatt!

jep star


-Heute schon böhse gewesen?- Ab zur Community
-No Support via Contact-
4toGoal
Mitglied
0 Beitragspunkte
Posts: 74

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 08.07.2007 - 12:56:29     Zitieren
Also ich drück einfach immer auf dem Bottom ohne zu Voten. Dann zählt er nicht und ich komme trotzdem zum Voteergebnis.

Aber man könnte ja in die Vote-Box noch einen Bottom einfügen, der genau das macht.

Gruß


Das Leben ist ein Scheißspiel, aber die Grafik ist geil.
Teuflischer
Mitglied
0 Beitragspunkte
Posts: 356

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 14.03.2009 - 21:39:10     Zitieren
hab alles genau gemacht wie hier beschrieben.

habs denn ausprobiert, als Gast und es ich kann die umfragen ergebnisse sehen, aber nich abstimen.

also hab ich den rat von mairu beherzigt und getip() statt $_SERVER['REMOTE_ADDR'] eingegeben.

bei allen 3 teilen, 2 mal contens und 1 mal box aber es will immer noch nich.

kann mir jemand helfen.

include/boxes/votes.php

<?php 
#   Copyright by Manuel Staechele
#   Support www.ilch.de
#   Modified by Mairu -> Erweiterte Umfrage 1.3
#   include/boxes/vote.php


defined ('main') or die ( 'no direct access' );


//-----------------------------------------------------------|
// Vote Sperre in Stunden

$stunden = 24;

	$breite = 50;
	$diftime = time() - (60 * 60 * $stunden);
		
	$voted = array();
	
  $fraErg = db_query('SELECT * FROM `prefix_poll` WHERE stat = 1 ORDER BY poll_id DESC');
 	
  if ( db_num_rows($fraErg) > 0) {
	$pollid = 0;
  while ($fraRow = db_fetch_object($fraErg)) { 
    
    $inTextAr = $_SESSION['authid'];
      if ($fraRow->recht == 1 AND !loggedin()) {
        $inTextAr = getip();
      }
		
		$textAr = explode('#',$fraRow->text);
		if ( in_array ( $inTextAr , $textAr )) {
			$imPollArrayDrin = true;
		} else {
			$imPollArrayDrin = false;
		}

    if (!$imPollArrayDrin OR (count($tovote) == 0 AND $fraRow->view >= $_SESSION['authright'])) {
      if ($fraRow->recht == 2) { 
        if ($fraRow->user_rechte == '') $fraRow->user_rechte = '0123456789';
        if (!empty($fraRow->groups)) {
          $votegroups = explode('#', $fraRow->groups);
    		  foreach ($_SESSION['authgrp'] as $id => $authgroup) if (in_array($id, $votegroups)) $abstimmen = true;
    		  if (strpos($fraRow->user_rechte,''.abs($_SESSION['authright'])) === false) $abstimmen = false;
          }
        elseif (strpos($fraRow->user_rechte,''.abs($_SESSION['authright'])) !== false) {
          $abstimmen = true;
        }
      } else { $abstimmen = true; }
      
      if ($abstimmen AND !$imPollArrayDrin) {
        $pollid = $fraRow->poll_id;
        break;
      } elseif ($fraRow->view >= $_SESSION['authright']) {
        $voted[] = $fraRow->poll_id;
        }
      }
    }
  }
  
  if ($pollid == 0 AND count($voted) > 0) {
    $pollid = $voted[array_rand($voted,1)];
    $voted = true;
  } else {
    $voted = false;
  }
    
  if ($pollid != 0) {
	$fraErg = db_query('SELECT * FROM `prefix_poll` WHERE recht '.$woR.' AND poll_id = '.$pollid.' ORDER BY poll_id DESC LIMIT 1');
	$fraRow = db_fetch_object($fraErg);
		
	$maxRow = db_fetch_object(db_query('SELECT MAX(res) as res FROM `prefix_poll_res` WHERE poll_id = "'.$fraRow->poll_id.'"'));
	$gesErg = db_query('SELECT SUM(res) as res FROM `prefix_poll_res` WHERE poll_id = "'.$fraRow->poll_id.'"');
	$gesRow = db_fetch_object($gesErg);
	
	
	$max = $maxRow->res;
  $ges = $gesRow->res;
	$textAr = explode('#',$fraRow->text);
	
	  $inTextAr = $_SESSION['authid'];
      if ($fraRow->recht == 1 AND !loggedin()) {
        $inTextAr = $_SERVER['REMOTE_ADDR'];
      }
		
		echo '<b>'.$fraRow->frage.($fraRow->answers > 1 ? " ($fraRow->answers Antworten m&ouml;glich)" : '').'</b>';
		if ($fraRow->exptime > 0) {
      echo '<br /><small>(bis '.date('H.i \U\h\r - d.m.Y',$fraRow->exptime).')</small>';
    }
		if ( in_array ( $inTextAr , $textAr ) OR $fraRow->stat == 0 OR $voted) {
			  echo '<table width="100%" cellpadding="0">';
		    $imPollArrayDrin = true;
		} else {
			  echo '<form action="index.php?vote-W'.$fraRow->poll_id.'" method="POST">';
		    $imPollArrayDrin = false;
		}
		$i = 0;
    $pollErg = db_query('SELECT antw, res, sort FROM `prefix_poll_res` WHERE poll_id = "'.$fraRow->poll_id.'" ORDER BY sort');
		while ( $pollRow = db_fetch_object($pollErg) ) {
		    if ( $imPollArrayDrin ) {
						echo '<tr><td>'.$pollRow->antw.'</td><td align="right">'.$pollRow->res.' ('.round($pollRow->res/($ges>0?$ges:1)*100,1).'%)</td></tr>';
		    } else {
			      $i++;
            if ($fraRow->answers <= 1) {
			        echo '<input type="radio" id="vote'.$i.'" name="radio" value="'.$pollRow->sort.'"><label for="vote'.$i.'"> '.$pollRow->antw.'</label><br>';
		        } else {
              echo '<input type="checkbox" id="vote'.$i.'" name="radio[]" value="'.$pollRow->sort.'"><label for="vote'.$i.'"> '.$pollRow->antw.'</label><br>';
            }
		    }
		} 
		if ( $imPollArrayDrin ) {
			  echo '<tr><td colspan="2" align="right">'.$lang['whole'].': &nbsp; '.$ges.'</td></tr></table>';
		} else {
		    echo '<p align="center"><input type="submit" value="'.$lang['formsub'].'"></p></form>';
		}   
		} else {
		  echo $lang['nowvoteavailable'];
		}

?>



und hier meine include/contents/vote.php

<?php 
#   Copyright by: Manuel Staechele
#   Support: www.ilch.de
#   Modified by Mairu -> Erweiterte Umfrage 1.3
#   include/contents/vote.php


defined ('main') or die ( 'no direct access' );




//-----------------------------------------------------------|


##
###
####
##### ins vote
$um = $menu->get(1);
$info = '';
if ($menu->getA(1) == 'W') {


	  $poll_id = escape ($menu->getE(1), 'integer');
		$fraRow = db_fetch_object(db_query("SELECT * FROM prefix_poll WHERE poll_id = '".$poll_id."'"));
    $vote = true;
    
	  if ($fraRow->answers <= 1) {
      $radio = ' = '.escape ($_POST['radio'], 'integer');
    } else {
      if ($fraRow->answers < count($_POST['radio'])) {
        $vote = false;
        $info = '<span style="color:red; font-size: 16px; font-weight:bold;">Es sind maximal '.$fraRow->answers.' Antworten m&ouml;glich</span><br />';
      } else {
        $radio = ' IN (';
        foreach ($_POST['radio'] as $k => $v) {
          $radio .= escape($_POST['radio'][$k],'integer').',';
        }
        $radio = substr($radio,0,-1).')';
      }
    }  
    
    
    if ($fraRow->exptime != 0 AND $fraRow->exptime < time()) {
      db_query("UPDATE `prefix_poll` SET stat = 0 WHERE poll_id = $poll_id");
    } elseif ($vote) {
      $textAr = explode('#',$fraRow->text);
  	  $inTextAr = $_SESSION['authid'];
      if ($fraRow->recht == 1 AND !loggedin()) {
        $inTextAr = getip();
      }
  		if ( !in_array ( $inTextAr , $textAr ) ) {
  			$textAr[] = $inTextAr;
  		  $textArString = implode('#',$textAr);
        db_query('UPDATE `prefix_poll` SET text = "'.$textArString.'" WHERE poll_id = "'.$poll_id.'"');
  		  db_query('UPDATE `prefix_poll_res` SET res = res + 1 WHERE poll_id = "'.$poll_id.'" AND sort '.$radio) or die (mysql_error());
  		}
		}
}

##
###
####
##### V o t e    Ü b e r s i c h t 

$title = $allgAr['title'].' :: '.$lang['vote'];
$hmenu = $lang['vote'];
$design = new design ( $title , $hmenu );
$design->header();
echo $info;

?>
<table width="100%" cellpadding="2" cellspacing="1" border="0" class="border">
  <tr class="Chead">
    <td><b><?php $lang['vote']; ?></b></td>
  </tr>
	
<?php

$breite = 200;
if ($_SESSION['authright'] <= -1 ) {
	  $woR = '>= "1"';
} else {
	  $woR = '= "1"';
}
$limit = 5;  // Limit
$zaehler = 0;
$page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
$MPL = db_make_sites ($page , '' , $limit , "?vote" , 'poll' );
$anfang = ($page - 1) * $limit;
$class = '';
$erg = db_query('SELECT * FROM `prefix_poll` ORDER BY stat DESC, poll_id DESC LIMIT '.$anfang.',10000000');
while ($zaehler < $limit AND $fraRow = db_fetch_object($erg)) {

	$maxRow = db_fetch_object(db_query('SELECT MAX(res) as res FROM `prefix_poll_res` WHERE poll_id = "'.$fraRow->poll_id.'"'));
	$gesRow = db_fetch_object(db_query('SELECT SUM(res) as res FROM `prefix_poll_res` WHERE poll_id = "'.$fraRow->poll_id.'"'));
	$max = $maxRow->res;
  $ges = $gesRow->res;
	$textAr = explode('#',$fraRow->text);
	
	  $inTextAr = $_SESSION['authid'];
      if ($fraRow->recht == 1 AND !loggedin()) {
        $inTextAr = getip();
      }
		
    
    if ($fraRow->user_rechte == '') $fraRow->user_rechte = '0123456789';
		if (!empty($fraRow->groups)) {
      $votegroups = explode('#', $fraRow->groups);
		  foreach ($_SESSION['authgrp'] as $id => $authgroup) if (in_array($id, $votegroups)) $abstimmen = true;
		  if (strpos($fraRow->user_rechte,''.abs($_SESSION['authright'])) === false) $abstimmen = false;
    }
    elseif (strpos($fraRow->user_rechte,''.abs($_SESSION['authright'])) !== false) $abstimmen = true;
    else $abstimmen = false;
    
    if (( in_array ( $inTextAr , $textAr ) OR $fraRow->stat == 0) OR (!$abstimmen)) {
			$imPollArrayDrin = true;
		} elseif ($abstimmen) {
			$imPollArrayDrin = false;
		}
    
    if (!$imPollArrayDrin OR $fraRow->view >= $_SESSION['authright']) {
    $zaehler++; 
    echo '<tr><td class="Cdark"><b>'.$fraRow->frage.($fraRow->answers > 1 ? " ($fraRow->answers Antworten m&ouml;glich)" : '').'</b>';
    if ($fraRow->stat == 0 ) { echo ' (geschlossen)'; }
    elseif ($fraRow->exptime > 0) { echo ' (bis '.date('H.i \U\h\r - d.m.Y',$fraRow->exptime).')'; }
    echo '</td></tr>';
		if ( $class == 'Cnorm' ) { $class = 'Cmite'; } else { $class = 'Cnorm'; }
		echo '<tr><td class="'.$class.'">';

		if ($imPollArrayDrin) {
			  echo '<table width="100%" cellpadding="0">';
		} else {
			  echo '<form action="index.php?vote-W'.$fraRow->poll_id.'" method="POST">';
		}

    $i = 0;
		$pollErg = db_query('SELECT antw, res, sort FROM `prefix_poll_res` WHERE poll_id = "'.$fraRow->poll_id.'" ORDER BY sort');
		while ( $pollRow = db_fetch_object($pollErg) ) {
		    if ( $imPollArrayDrin ) {
	 		     if ( !empty($pollRow->res) ) {  
				      $weite = ($pollRow->res / $max) * 200;
		 		      $prozent = $pollRow->res * 100 / $ges;
		 		      $prozent = round($prozent,0);
				    } else {
		  		    $weite = 0;
					    $prozent = 0;
				    }
						$tbweite = $weite + 20;
						echo '<tr><td width="30%">'.$pollRow->antw.'</td>';
				    echo '<td width="50%">';
            /*
            '<table width="'.$tbweite.'" border="0" cellpadding="0" cellspacing="0"></td>';
						echo '<tr><td width="10" height="10"></td>';
						echo '<td width="'.$weite.'" background="include/images/vote/voteMitte.jpg" alt=""></td>';
						echo '<td width="10"><img src="include/images/vote/voteRight.jpg" alt=""></td>';
						echo '</tr></table>';*/
            echo '<div style="height: 10px; width: ' . $weite .'px; background: #3776a5 url(include/images/vote/voteMitte.png) repeat-y top left;">'.
                 '</div>';
				    
            echo '<td width="10%">'.$prozent.'%</td>';
				    echo '<td width="20%" align="right">'.$pollRow->res.'</td></tr>';
				} else {
            $i++;
            if ($fraRow->answers <= 1) {
			        echo '<input type="radio" id="vote'.$i.'" name="radio" value="'.$pollRow->sort.'"><label for="vote'.$i.'"> '.$pollRow->antw.'</label><br>';
		        } else {
              echo '<input type="checkbox" id="vote'.$i.'" name="radio[]" value="'.$pollRow->sort.'"><label for="vote'.$i.'"> '.$pollRow->antw.'</label><br>';
            }
        }
		} 
		if ( $imPollArrayDrin ) {
			  echo '<tr><td colspan="2" align="right">'.$lang['whole'].': &nbsp; '.$ges.'</td></tr></table>';
		} else {
		    echo '<p align="center"><input type="submit" value="'.$lang['formsub'].'"></p></form>';
		}
		
    echo '</td></tr>';
    }
}// end while

echo '<tr><td class="Cdark" align="center">'. $MPL .'</td></tr></table>';
$design->footer();

?>
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 14.03.2009 - 22:09:55     Zitieren
Kannst du mal eine PHP Datei erstellen
<?php echo 'RA: '.$_SERVER['REMOTE_ADDR'].'<br>';
echo 'FW: '.$_SERVER['HTTP_X_FORWARDED_FOR']; ?>
und diese dann aufrufen und mal schauen, ob da vielleicht mehr als nur eine IP Adresse (pro Zeile) steht?

Und schau mal nach, ob das auch deine IP ist (www.wieistmeineip.de/ sollte helfen).

Zuletzt modifiziert von Mairu am 14.03.2009 - 22:24:24


Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
Frostwolfxy
Mitglied
0 Beitragspunkte
Posts: 54

0 Mitglieder finden den Beitrag gut.

Merkliste 13.06.2010 - 17:52:35     Zitieren
Könnt ihr da nicht einfach ilch updaten ?
Akira
Mitglied
1 Beitragspunkte
Posts: 1368

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 14.06.2010 - 01:48:11     Zitieren
mann müsste mit cookies arbeiten für öffentliche vots

is sogar relativ einfach

müsste mal gucken wie ich zeit hab dann könnte ich mairus script modifizieren


www.torridOrbs.com/ref-1.html Visit Us Zwinker
Neue Scripte: JQuery Login usw... Turnier(www.torridorbs.com/?turnier), Multi-Bewertung, Refferer, Forum Upload, E-Mail login
Frostwolfxy
Mitglied
0 Beitragspunkte
Posts: 54

0 Mitglieder finden den Beitrag gut.

Merkliste 25.06.2010 - 20:14:43     Zitieren
Also ich habe das mal probiert und die ganze Page gecrasht^^

Könntet ihr nicht die funktion in die vote.php einbauen und zum download anbieten ? Oder den gesamten code posten und wir fügen den nur noch ein....
Frostwolfxy
Mitglied
0 Beitragspunkte
Posts: 54

0 Mitglieder finden den Beitrag gut.

Merkliste 04.07.2010 - 00:24:54     Zitieren
Hat schon wer eine Lösung, damit registrierte User nicht immer neu voten müssen, wenn man eine Umfrage für alle startet ?
Akira
Mitglied
1 Beitragspunkte
Posts: 1368

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 04.07.2010 - 01:20:34     Zitieren
Zitat geschrieben von Frostwolfxy

Hat schon wer eine Lösung, damit registrierte User nicht immer neu voten müssen, wenn man eine Umfrage für alle startet ?



da gibt es mehrere (du könntest die usernamen der voter abspeichern)

effizienteste methode ist die coockie lösung
mach ich in ca 2 wochen nach mienen prüfungen


www.torridOrbs.com/ref-1.html Visit Us Zwinker
Neue Scripte: JQuery Login usw... Turnier(www.torridorbs.com/?turnier), Multi-Bewertung, Refferer, Forum Upload, E-Mail login
Frostwolfxy
Mitglied
0 Beitragspunkte
Posts: 54

0 Mitglieder finden den Beitrag gut.

Merkliste 04.07.2010 - 16:28:44     Zitieren
Wie speicher ich die Usernamen ?

[ Anmelden zum schreiben ]