webForumDet fria alternativet

Problem med hämtade värden...

4 svar · 379 visningar · startad av Dwarfen

DwarfenMedlem sedan jan. 2002241 inlägg
#1

Nu vet jag varken ut eller in.
Har lyckats med detta för något år sedan, men nu vill sig det bara inte...

Skickar fkid=värde från sida 1.
Sida 2 tar imot värdet.

Sedan tar det stop, lyckades ett par gången att slänga in värdet i databasen, men sidan visade ändå fel...
Sedan ändrade jag fid (som var värdet jag skickade från första sida) till fkid, just för att underlätta på sida 2, tänkte, att det skulle bli lättare att skicka från samma "namn" som mottagaren var, men det ville sig inte alls.
Nu har jag verkligen kört fast, har kollat igenom mina gamla sidor, men den vill sig inte =(

Någon som har lust att offra lite av en lördagskväll med att jälpa mig?

<?php

$grymm=$_POST['fkid'];
	$username = '';
	$password = 'e';
	$dbName = '';
	mysql_connect('localhost', $username, $password) or die (mysql_error());
	mysql_select_db($dbName) or die (schyse());

if ($grymm=="") {

?>

<html>
<head>
<title>Kommentera Film</title>
</head>
<body>
<form method="post" action="kommentera_film.php?fkid=<?echo $_GET['fkid'];?>">
<input type="hidden" name="fkid " value="<?=$_GET['fkid']?>"/>
<input type="text" name="fkommentar" value=""/><br/>
<input type="submit" value="Skicka"/>
</form>
</body>
</html>
<?PHP
} else {
$sql = "insert into kommentera_filmer (fkid, fkuserid, fkommentar) values ('". $_POST['fid'] ."','". $_SESSION['UID'] ."', '". $_POST['fkommentar'] ."')";
mysql_query($sql) or die("Fel: ". mysql_error());
?>
Tack för din kommentar, du skeppas nu till Första sidan.
<meta http-equiv="refresh" content="0;URL=\index.php"/>
<?PHP
}
mysql_close()
?>
aasahMedlem sedan mars 20034 471 inlägg
#2

Det beror inte möjligen på att du blandar ihop POST och GET?

Du använder värden från GET i formuläret som postas med POST. Är det med flit?

mmmMangeMedlem sedan jan. 2005110 inlägg
#3

Dwarfen skrev:

<form method="post" action="kommentera_film.php?fkid=<?echo $_GET['fkid'];?>">
<input type="hidden" name="fkid " value="<?=$_GET['fkid']?>"/>

Varför har du fkid som en GET-parameter i formulärets ACTION-attribut? Du har ju dessutom (dock med ett extra mellanslag i slutet!) samma fkid som ett gömt fält i formuläret. Jag skulle nog börja med att rensa ACTION och plocka bort mellanslaget i name="fkid ":

<form method="POST" action="kommentera_film.php">
<input type="hidden" name="fkid" value="<?=$_GET['fkid']?>">

Dwarfen skrev:

$sql = "insert into kommentera_filmer (fkid, fkuserid, fkommentar) values ('". $_POST['fid'] ."','". $_SESSION['UID'] ."', '". $_POST['fkommentar'] ."')";

Tänk på SQL-injection...

http://en.wikibooks.org/wiki/Programming:PHP:SQL_Injection

andy-80Medlem sedan jan. 200537 inlägg
#4

Visar du hela sidan, för jag vill minnas att sidan måste inledas med session_start() om du skall hämta variabler från

aasahMedlem sedan mars 20034 471 inlägg
#5

andy-80 skrev:

Visar du hela sidan, för jag vill minnas att sidan måste inledas med session_start() om du skall hämta variabler från

Nej, det gäller bara om man använder sessionsvariabler (dvs $_SESSION). Har inget med $_POST och $_GET att göra.

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)