[Solved] if anweisung in php - Seite 2

Seite 2 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/solved_if_anweisung_in_php_204632/page_2 - zur Vollversion wechseln!


Hansmaulwurf schrieb am 10.02.2009 um 19:50

Zitat von bambooS
Das mit der sql-injections werd ich machen.
Dafür solltest auch ein bischen Zeit nehmen, und das in Ruhe extra durchgehen ;) Ist nur damit man keinen Schadcode einschleussen kann ;)


kleinerChemiker schrieb am 10.02.2009 um 20:26

im grunde ist das if so gar nicht nötig. denn daß der benutzer zu einem der beiden teams gehört hast du ja schon im sql überprüft. es würde daher eigentlich reichen zu überprüfen ob 0 zeilen zurückgeliefert werden oder nicht.

generell schaut der code derzeit richtig aus. dürfte daher eher an einer nicht geposteten zeile liegen


bambooS schrieb am 10.02.2009 um 20:52

Nun gut. Habe es wiederrum angepasst und jetzt sieht es so aus (es wird auch nur noch mehr dieser Code ausgeführt. Alles andere habe ich auskommentiert):

Code: PHP
$Form_ID = $_REQUEST['Form_ID']; 
if($Form_ID == '46') //hier soll später dann nur auf Form_ID != NULL überprüft werden
{ 
$Team_ID1 = $_REQUEST['Team_ID1']; 
$Team_ID2 = $_REQUEST['Team_ID2'];

$query = "SELECT Id, Nickname, teamlink FROM tbl_benutzerdaten WHERE"; 		
$query .= " (Nickname like '".$_REQUEST["name"]."') AND (Kennwort = '".md5 ($_REQUEST["pwd"])."')";  		
$query .= " AND ((teamlink = '".$Team_ID1."') OR (teamlink = '".$Team_ID2."'))"; 		
$result = mysql_query( $query, GetConnection() ) or die ( mysql_error() ); 

$data = mysql_fetch_array ($result);

 if (mysql_num_rows($result) > 0) 
{  				
$_SESSION["user_id"] = $data["Id"];
$_SESSION["user_nickname"] = $data["Nickname"];
header("Location:ergebnis.php?TeamID=".$Form_ID); 						 				
}
else
{ 
header ("Location: formular.php?ID=". $Form_ID ."&TeamID1=" .$Team_ID1. "&TeamID2=" .$Team_ID2."&fehler=1");
} 
} 

Wenn ich ein berechtigtes Team eingebe, kommt wieder diese Meldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


kleinerChemiker schrieb am 10.02.2009 um 20:58

ganz hast du es nicht ausgebessert ;)

versuch mal temalink = 1 statt teamlink ='1'

bzw. echo mal $query, falls das nicht hilft.


bambooS schrieb am 10.02.2009 um 21:06

Hab die Zeilen auf dies umgeändert.

Code: PHP
$query = "SELECT Id, Nickname, teamlink FROM tbl_benutzerdaten WHERE";
$query .= " (Nickname like '".$_REQUEST["name"]."') AND (Kennwort = '".md5 ($_REQUEST["pwd"])."')";
$query .= " AND ((teamlink = ".$Team_ID1.") OR (teamlink = ".$Team_ID2."))";
$result = mysql_query( $query, GetConnection() ) or die ( mysql_error() );

Hab das Ganze auch noch mit echos versehen und folgendes kommt raus:
Team1: 1
Team2: 5

query:
SELECT Id, Nickname, teamlink FROM tbl_benutzerdaten WHERE (Nickname like 'culpa') AND (Kennwort = 'b7ea858d1320d9ecf7e99079fdf96a9a') AND ((teamlink = 1) OR (teamlink = 5))

data:
Array ( [0] => 2 [Id] => 2 [1] => culpa [Nickname] => culpa [2] => 1 [teamlink] => 1 )


*grml*


kleinerChemiker schrieb am 10.02.2009 um 21:10

funktioniert ja dann anscheinend eh.


bambooS schrieb am 10.02.2009 um 21:26

Jupp tut es auch!

Ich bin so vernarrt gewesen, dass ich es nicht bemerkt habe, dass ich auf die ergebnis.php umgeleitet wurde.

Dort ist irgendwo ein Fehler in einer der SQL Anweisungen.

Ich könnte mich so dermaßen ohrfeigen...

Danke kleinerChemiker für deine Geduld und Zeit. Vielen Dank.

lg




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025