[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
doppelte einträge trotz ip-sperre - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
paddle
Beiträge: 125
Registriert: 13. Jun 2006, 17:27
Wohnort: Gstaad, Schweiz

doppelte einträge trotz ip-sperre

2. Sep 2010, 15:44

hallo

ich habe ein kleines voting mit ip-sperre am laufen - ich weiss, ip-sperre ist nicht optimal aber der aufwand durfte nicht zu grosse sein - und jetzt gibt es trotzdem doppelte ip-nummer einträge... gibt's noch eine schlaue lösung, wie ich das verhindern kann?

hier der code

Code: Alles auswählen

<?php
	// rexpoll: Show Poll
	// ausgabe.
	
	if(OOAddon::isAvailable("rexpoll"))
	{	if (intVal("REX_VALUE[1]") > 0)	
		{	# do a basic security check to see if the user has voted in the last 24 hours, only cookie based
			echo '<div class="rexpoll">';
			if (isset($_POST['REXpoll']))
				{ $ip=$_SERVER['REMOTE_ADDR'];
					$usql=new rex_sql;
					$usql->setTable($REX['ADDON']['dbpref']['rexpoll']."rexpoll_answers");
					$usql->setValue('fANSWER',intVal($_POST['REXpoll']['answer']));
					$usql->setValue('rPOLLID',"REX_VALUE[1]");
					$usql->setValue('fIP',$ip);
					$usql->insert();
					
					if ("REX_LINK[1]"!="")
					{	header('Location:'.rex_getUrl("REX_LINK_ID[1]"));
					}
				
				else
				{	header('Location:'.rex_getUrl($this->article_id));
				}
				exit();	
			}
			else
			{	# query db for polls
				$sql=new rex_sql;
				$sql->setQuery('SELECT * FROM '.$REX['ADDON']['dbpref']['rexpoll'].'rexpoll WHERE fID='.intVal("REX_VALUE[1]"));
				
				# if the poll exists, show it
				if ($sql->getRows()==1)
				{	
					# explode the answers into an array
					$values=$sql->getValue('fFIELDS');
					$values=trim($values);
					$values=explode("\n",$values);
				   
					if (count($values)>0)
					{	# if any answers are found, show the poll form
						echo '<form action="index.php" name="REXpoll" method="post">';	
						echo '<h2>Online-Abstimmung</h2>';					
											
						// IP aus der DB auslesen
						$ip=$_SERVER['REMOTE_ADDR'];
						$IPsql=new rex_sql;
						$IPsql->setQuery("SELECT * FROM  `rex_250_rexpoll_answers` WHERE  `fIP` LIKE  '$ip'");
						$rows = $IPsql->getRows();
						# if IP exists
						if ($rows != 0)
						{
						echo '<p class="voted"><b>Sie haben bereits abgestimmt!</b></p>';
						}
						
						foreach ($values as $k=>$v)
						{	if ($k==0)
							{	$sel=' checked="checked"';
							}
							else
							{	$sel='';
							}
							echo '<input'.$sel.' type="radio" id="REXpoll_'.$k.'" name="REXpoll[answer]" value="'.$k.'" />'."\n";
							echo '<label for="REXpoll_'.$k.'">'.htmlentities($v,ENT_QUOTES,'UTF-8').'</label><br />'."\n";
						}
						echo '<input type="hidden" name="REXpoll[poll]" value="'."REX_VALUE[1]".'">'."\n";
						echo '<input type="hidden" name="article_id" value="'.$this->article_id.'">'."\n";
						echo '<input type="hidden" name="clang" value="'.$REX['CUR_CLANG'].'">'."\n";
						
						
					if ($rows != 0)
					{	
						if ("REX_LINK[1]"!="")
							{	echo '<p class="result"><a href="'."REX_LINK[1]".'" title="Ergebnisse anzeigen">» Ergebnisse anzeigen</a></p>';
							}
					}
						else
						{	echo '<input type="submit" class="submit" name="REXpoll[submit]" value="» Abstimmen" />';
						}
						echo '</form>';
					}
					
			   }
			   else
			   {	echo 'REXpoll - no polls found';
			   }
			}
			echo '</div>';
		}
	}
	else
	{	echo "Dieses Modul ben&ouml;tigt das REXpoll Addon!"; 
	}

?>
danke und gruss
pat

Hirbod
Beiträge: 435
Registriert: 15. Jan 2008, 14:46

3. Nov 2010, 04:55

Setzt per phpMyAdmin die IP-Spalte einfach auf Unique - dann ist sie einmalig und weitere Einträge mit der gleichen IP würden ignoriert werden.

Wäre jetzt eine schnelle Lösung

Zurück zu „Sonstiges“