PHP Komme nicht weiter ...

Elias35

Grünschnabel
Guten Morgen liebe Helfer,

Und ich habe schon ein Problem.

Ich schreibe seit heute an einem Likescript aber das geht noch nicht so ganz und wiso es nicht geht weiß ich nicht !

also der wen man auf den like button klickt kommt man von index.php?site=index auf index.php?site=downloads&like=1

Die Eins ist die Id des Beitrages den man liken kann.

also das script sieht also so aus und befindet sich am anfang der seite:

es geht erstmal nur um den Eintrag:
PHP:
<?php

if(isset($_GET['like']))
{
$likeid = $_GET['like'];
$liker = $_SESSION['user'];

include('mysql_connect.php');

$abfragelike = ("SELECT * FROM like WHERE downloadid='$likeid' AND name='$liker'");
$ausführenl = mysql_query($abfragelike);
$rowlike = mysql_fetch_object($ausführenl);

if($rowlike->name == null)
{
$eintraglike = mysql_query("INSERT INTO like ( name, downloadid ) VALUES ( '".$liker."', '".$likeid."' )");
header("Location: index.php?site=downloads");
}}

?>
nur leider klappt das nicht... vlt könnt ihr mir ja helfen.

Besten Dank!
 
Editiere doch deinen Beitrag nochmal um a) die Groß-/Kleinschreibung zu verbessern und b) deinen Code entsprechend zu formatieren damit er lesbar ist, siehe hier!

Wenn das da oben der komplette Code ist, kann es nicht gehen weil du session_start() nicht angegeben hast und somit die SESSION-Variable keinen gültigen Wert hat.
 
Hallo und herzlich Willkommen im Forum!

Aber erstmal ein paar Gegenfragen:

1.) Was funktioniert nicht?
2.) Gibt es Fehlermeldungen und wenn ja, welche?
3.) Wieso benutzt du noch die alte mysql-Erweiterung. Siehe MySQLi oder PDO.
4.) Dein Skript hat zu 100% eine Sicherheitslücke bzgl. SQL Injection. Variablen aus Nutzereingaben (sprich $_GET, $_POST, ...) immer vor dem Einsetzen in das SQL-Statement entschärfen. Oder besser Prepared Statements nutzen.

@tombe:

Code-Tags habe ich gerade für ihn hinzugefügt ;)
 
Hallo und Willkommen.


Schreib mal an den Anfang des Scripts

PHP:
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

Außerdem empfiehlt es sich, mysql_query() mit mysql_error() zu kombinieren:

PHP:
<?php
// Fehleranzeige aktivieren
error_reporting ( E_ALL | E_STRICT );
ini_set ( 'display_errors', 1 );

if (isset ( $_GET ['like'] )) {
	include ('mysql_connect.php');
	
	// SQL-Injection verhindern:
	$likeid = intval ( $_GET ['like'] );
	$liker = mysql_real_escape_string ( $_SESSION ['user'] );
	
	$abfragelike = ("SELECT * FROM like WHERE downloadid='$likeid' AND name='$liker'");
	$ausführenl = mysql_query ( $abfragelike ) or die ( mysql_error () ); // Wenn ein Fehler aufgetreten ist, ausgeben und Ende
	$rowlike = mysql_fetch_object ( $ausführenl );
	
	if ($rowlike->name == null) {
		$eintraglike = mysql_query ( "INSERT INTO like ( name, downloadid ) VALUES ( '" . $liker . "', '" . $likeid . "' )" ) or die ( mysql_error () ); // Wenn ein Fehler aufgetreten ist, ausgeben und Ende
		header ( "Location: index.php?site=downloads" );
	}
}
?>

Dann könntest du mal eventuelle Fehlermeldungen posten. Und halte dich bitte an die Netiquette. Insbesondere Thema Rechtschreibung.
 
Zurück