PHP simples Like System ?

Bobo2040

Mitglied
Hi :D
Ich suche , da ich an meinem Like System gescheitert bin und mir einfach die Motivation fehlt, weiterzumachen nach einem
ganz einfachen php/js likesystem mit ip sperre halt 1 vote (like) oder 1 vote(disslike) sonst solls nix ... brauche auch keine statistik oder sonstwas ... kennt jemand nen tutorial dazu oder den code ? oder halt nen link... ?
Mfg Bobo2040
PS: Wer mag kanns sich ja mal angugcken und falls er den fehler findet wärs nett wenn er mir den sagt ;**
PHP:
<?php
include('settings/config.php');
	if(!isset($_SESSION['username'])){
		header("location:index.php?page=index");
		exit();
	}else {
		$post_id = mysql_real_escape_string( htmlentities( strip_tags( trim($_POST['post_id']))));
		$like = mysql_real_escape_string( htmlentities( strip_tags( trim($_POST['like']))));
		$disslike = mysql_real_escape_string( htmlentities( strip_tags( trim($_POST['disslike']))));
		$username = $_SESSION['username'];
		
		$query = "SELECT * FROM `$like_tbl` WHERE username='$username' AND post_id='$post_id'";
		$result = mysql_query($query);
		@$row = mysql_fetch_object($result);
		if(empty($result)) {
			if($row->like = 1 AND $row->disslike = 0) {
				$disslike = 1;
				$like = 0;
			}elseif($row->like = 0 AND $row->disslike = 1) {
				$disslike = 0;
				$like = 1;
			}elseif(empty($row->like) AND empty($row->disslike) AND isset($like)) {
				$like = 1;
				$disslike = 0;
			}elseif(empty($row->disslike) AND empty($row->like) AND isset($disslike)) {
				$like = 0;
				$disslike = 1;
			}else{
				echo "Upps das hätte nicht passieren dürfen!";
				echo "<br/>";
				echo "Bitte versuchen Sie es später erneut!Oder Kontaktieren Sie den <a href=\"index.php?page=support\">Support</a>";
			
		
		$query1 = "SELECT * FROM `$like_tbl` WHERE post_id='.$post_id.'";
		$result1 = mysql_query($query1);
		
			}
		}elseif(!empty($result)) {
		$query3 = "UPDATE `like_tbl` SET like='$like', disslike='$disslike', username='$username' WHERE post_id='$post_id'";
		$result3 = mysql_query($query3);
		if($result3) {
			echo "Geliked";
		}
		if(!empty($result1)) {
			echo "Upps da ist uns wohl ein Fehler unterlaufen :-(";
		}else{
			if(empty($disslike)) {
				$disslike =0;
				$like = 1;
			}elseif(empty($like)) {
				$like =0;
				$disslike =1;
			}
			$query2 = "INSERT INTO `$like_tbl`(`username`,`post_id`,`like`,`disslike`) VALUES ('$username','$post_id','$like','$disslike')";
			$result2 = mysql_query($query2);
			
		}
		}
	}
echo mysql_error();
?>
PS: Nen Error gibt er mir nicht aus...
Und Hier die ausgabe :
HTML:
<div id="content">
	<fotn style="color:red;font-family:Arial, Helvetica;">
		Das Likesysstem befindet sich noch im Aufbau ! Ist somit nicht Funktionstüchtig :-(
	</fotn>
	<div id="pictures">
		<?php
		include('settings/config.php');
		
		$query = "SELECT * FROM `$db_p_tbl` ORDER BY id DESC";
		$result = mysql_query($query);
		
		$query1 = "SELECT * FROM `$like_tbl`";
		$result1 = mysql_query($query1);
		
		
		while($row = mysql_fetch_object($result)) {
			?>
			<div class="block">
				<div class="author">
					<span class="author_font">
					<?=$row->titel;?>
					<font style="position: absolute;right: 26%;">
							<?=$row->datum;?>
						</font>
					</span>
				</div>
				<div class="picture">
					<img src="<?=$row->bild_dir;?>">
					<br/>
					<span style="position: absolute;left: 25%;">
					<?php
					if($row->username == 'Admin1') {
						echo '<span style="color: red;">Admin1</span>';
					}elseif($row->username == 'Admin2') {
						echo '<span style="color: red;">Admin2</span>';
					}else{
						echo $row->username;
					}
					?>
					</span>
				<div class="likes">
					<span class="like">
						<form action="index.php?page=like" method="post">
							<input type="hidden" value="<?=$row->id;?>" name="post_id">
							<input type="submit" value="
							<?php
							$check_query = "SELECT `like` FROM `$like_tbl` WHERE post_id='".$row->post_id."'";
							$check_result = mysql_query($check_query);
							$i = 0;
								while($check_row = mysql_fetch_object($check_result)) {
									$i++;
								}
								echo mysql_error();
								if($check_result) {
									echo $i;
								}else{
									echo "0";
								}
							?>
							" name="like">
						</form>
					</span>
					<span class="disslike">
						<form action="index.php?page=like" method="post">
							<input type="hidden" value="<?=$row->id;?>" name="post_id">
							<input type="submit" value="
							<?php
							$check_query1 = "SELECT `disslike` FROM `$like_tbl` WHERE post_id='".$row->post_id."'";
							$check_result1 = mysql_query($check_query1);
							$i1 = 0;
								while($check_row1 = mysql_fetch_object($check_result1)) {
									$i1++;
								}
								if($check_result1) {
									echo $i;
								}else{
									echo "0";
								}
							?>
							" name="disslike">
						</form>
					</span>
				</div>
				</div>
			</div>
			<?php
			echo mysql_error();
		}
		?>	
	</div>
</div>
Auch dort kein Error aber er gibt einfach kein ergebnis (O) aus -.-
 
Hallo,

erstmal ein paar Gegenfragen, damit man dir besser helfen kann ;)

1.) Wieso benutzt du die alte (nein - nicht veraltete, sondern bald entfernte) MySQL-Erweiterung mit mysql_*() Funktionen? Bitte auf MySQLi oder PDO umsteigen.

2.) Wieso nach IP filtern? Hast du kein Benutzersystem? Es ist möglich, dass zwei unterschiedliche Benutzer die gleiche IP zugewiesen (nat. zeitversetzt) bekommen. Andere Gründe findest auch hier noch: Is it reliable to use the IP address to identify a user on your website?

3.) Schonmal [phpf]error_reporting[/phpf] und display_errors-Direktive angeschaltet?

4.) Das letzte ist nicht die Ausgabe. Die Ausgabe ist das, was beim Browser ankommt (sollte kein PHP-Code mehr enthalten).
 
Okay also ich suche nach der post_ID und nicht nach der IP ... das zwei nutzer die gleiche ip haben ist mir bewusst ... das mit pdo habe ich mir angeguckt aber ich blickes nicht -.- und bei mysqli_* da brauchen dann bestimmte funktionen 2 oder mehr parameter bei mysql_* meistens dagegen nur 1 oder 2 parameter ;) deshalb benutze ich mysql_* funktionen und weil ich bei der umstellung sonst extrem durcheinander komme... ^^
 
Wie wärs dann, sich hinzusetzen und gleich ordentlich zu lernen?
Wie ComFreek schon schreibt, es gibt keine Garantie, wie lange mysql_... noch existiert.
 
Okay also ich habe das jetzt in nen alten ordner gelegt.. und benutz es nicht mehr ^^ habs nicht hinbekommen .. habe es jetzt aber neu gemacht mit mysqli :D mit pdo komme ich nicht so wirklich klar ^^
Nur noch mal ne frage warum wird mysql_* abgeschafft ist doch kein unterschied zu mysqli ? oder doch.. ?
 
Nur noch mal ne frage warum wird mysql_* abgeschafft ist doch kein unterschied zu mysqli ? oder doch.. ?

Oh doch! Und nochmals doch! :D

Ich kann hier nicht alle Gründe aufzählen, aber du könntest mal mit diesem Link deine Recherche starten:
http://www.oleaass.com/why-people-needs-to-stop-using-the-mysql-extension/

Unter anderem:
  • Keine (native) Unterstützung für Transaktionen
  • Kein OOP-Modell der API
  • Keine Prepared Statements
Hier stehen noch mehr Unterschiede: http://php.net/manual/en/mysqlinfo.api.choosing.php
 
Zurück