NinaMedlem sedan feb. 200358 inlägg Varför i sjutton laddar den här filen alltid ner samma fil, det är som att den inte fattar att ta ut rätt id
<?php
session_start();
if (!(isset($username) || isset($siteuser))) // user not login, redirect to login page
{
header("Location: ../test/members/loggin.php");
exit;
}
else {
$dbname = 'xxxxx';
$dbhost = 'localhost';
$dbusername = 'xxxxx';
$dbpassword = 'xxxxx';
$connection=mysql_connect($dbhost, $dbusername, $dbpassword) or die(mysql_error());
$dbase=mysql_select_db($dbname) or die(mysql_error());
$q="SELECT * from graphics where graphics_id='$id'";
$result= mysql_query($q, $connection) or die
("Could not execute query : $q." . mysql_error());
while ($row = mysql_fetch_array($result))
{
$id=$row["graphics_id"];
$name=$row["graphics_name"];
$cat_id=$row["category_id"];
$designer=$row["designer"];
$email=$row["email"];
$date=$row["date"];
$image=$row["image"];
$dsc = $row["description"];
$viewlink=$row["viewlink"];
$downloadlink=$row["downloadlink"];
$views = $row["views"];
$downloads = $row["downloads"];
header('Location:' .$downloadlink);
$q="update graphics set downloads=downloads+1 where graphics_id='$id'";
$result2= mysql_query($q, $connection) or die
("Could not execute query 2 : $q." . mysql_error());
}
}
?>
Tar jag däremot bort den här bioten så fungerar den utmärkt
if (!(isset($username) || isset($siteuser))) // user not login, redirect to login page
{
header("Location: ../test/members/loggin.php");
exit;
}
else {
:(
MatteMedlem sedan aug. 20002 975 inlägg Någon skillnad om du gör:
if (!(isset($username) || !isset($siteuser))) // user not login, redirect to login page
{
header("Location: ../test/members/loggin.php");
exit;
}
else {
NinaMedlem sedan feb. 200358 inlägg Det verkar fungera men det tycks även släppa förbi även icke inloggade...
FuelMedlem sedan okt. 20001 285 inlägg if (!isset($username) || !isset($siteuser)) {
if (!isset($_POST['username']) || !isset($_POST['siteuser'])) {
if (!isset($_SESSION['username']) || !isset($_SESSION['siteuser'])) {
if (!isset($_GET['username']) || !isset($_GET['siteuser'])) {
if (!isset($_COOKIE['username']) || !isset($_COOKIE['siteuser'])) {
make a pick ... :)
NinaMedlem sedan feb. 200358 inlägg Nope tyvärr inget fungera
FuelMedlem sedan okt. 20001 285 inlägg Är delar av koden bortagen med flit ?
<?php
session_start();
if (!isset($_SESSION['username'])){
header("Location: ../test/members/loggin.php");
exit;
} else {
$dbname = 'kaptenZOOM';
$dbhost = 'localhost';
$dbusername = 'nina';
$dbpassword = 'terminator';
$connection = @mysql_connect($dbhost, $dbusername, $dbpassword) or die("ERROR : ".mysql_error());
$dbase = @mysql_select_db($dbname) or die("ERROR : ".mysql_error());
$sql = "SELECT * from graphics WHERE graphics_id = '$_GET['id']'";
$result = @mysql_query($sql) or die ("ERROR : ".mysql_error());
while ($row = mysql_fetch_array($result))
{
$downloads = $row['downloads'];
$sql2 = "UPDATE graphics SET downloads=$downloads+1 WHERE graphics_id='".$row['graphics_id']."'";
$result2 = @mysql_query($sql2) or die ("ERROR 2 : ".mysql_error());
}
header("Location: somwhere");
}
?>
NinaMedlem sedan feb. 200358 inlägg Nä alltså det här är hela koden, kommer till den här koden efter att jag klickat på download som vidare tar mig till zip filen om jag är inloggad
<?php
session_start();
if (!(isset($username) || isset($siteuser))) // user not login, redirect to login page
{
header("Location: ../test/members/loggin.php");
exit;
}
else {
$dbname = 'xxxxx';
$dbhost = 'localhost';
$dbusername = 'xxxxx';
$dbpassword = 'xxxxx';
$connection=mysql_connect($dbhost, $dbusername, $dbpassword) or die(mysql_error());
$dbase=mysql_select_db($dbname) or die(mysql_error());
$q="SELECT * from graphics where graphics_id='$id'";
$result= mysql_query($q, $connection) or die
("Could not execute query : $q." . mysql_error());
while ($row = mysql_fetch_array($result))
{
$id=$row["graphics_id"];
$name=$row["graphics_name"];
$cat_id=$row["category_id"];
$designer=$row["designer"];
$email=$row["email"];
$date=$row["date"];
$image=$row["image"];
$dsc = $row["description"];
$viewlink=$row["viewlink"];
$downloadlink=$row["downloadlink"];
$views = $row["views"];
$downloads = $row["downloads"];
header('Location:' .$downloadlink);
$q="update graphics set downloads=downloads+1 where graphics_id='$id'";
$result2= mysql_query($q, $connection) or die
("Could not execute query 2 : $q." . mysql_error());
}
}
?>
NinaMedlem sedan feb. 200358 inlägg Problemet är att den vill inte fatta vilken fil det är jag vill ladda hem utan den tar hela tiden sista filen på varje sida, om jag tar bort
if ( !isset($_SESSION['username']) ) // user not login, redirect to login page
{
header("Location: /members/loggin.php");
exit;
}
Då fattar den id rätt men lägger jag till den så fattar den inte det :(
MatteMedlem sedan aug. 20002 975 inlägg Men den koden ska inte kunna påverka det.
Vad den gör är att den kollar om sessionsvariabeln finns.
Finns den inte skyfflas man iväg till /members/loggin.php, annars körs koden i skriptet.
NinaMedlem sedan feb. 200358 inlägg Det är därför jag blir så konfunderad, eftersom koden man kommer ifrån fungerar korrekt om jag plockar bort den där delen, så fort jag lägger dit den så tar kden här koden enbart en och samma zip fil oavset vilken jag valt, tycks vara något som stör så att det blir rätt fil
MatteMedlem sedan aug. 20002 975 inlägg För att testa lite.
Ändra
$q="SELECT * from graphics where graphics_id='$id'";
$result= mysql_query($q, $connection) or die
("Could not execute query : $q." . mysql_error());
till
$q="SELECT * from graphics where graphics_id='$id'";
echo "SQL-frågan: <br> $q <br>";
$result= mysql_query($q, $connection) or die
("Could not execute query : $q." . mysql_error());
Testa både med din isset och utan den.
Får du då någon skillnad i utskriften, och hur ser den ut ?
NinaMedlem sedan feb. 200358 inlägg Får det här fel meddelandet på båda
SQL-frågan:
SELECT * from graphics where graphics_id='18'
Warning: Cannot modify header information - headers already sent by (output started at /home/mystif/public_html/graphics/download.php:13) in /home/mystif/public_html/graphics/download.php on line 33
Det visar även att graphics_id är fel, skulle ha ner id 17 och den tar id 18
$q="SELECT * from graphics where graphics_id='$id'";
Var får frågan $id ifrån?
Såvitt jag förstår så blir detta värde i $id fel? I koden så ser vi inte varifrån du får detta värde.
NinaMedlem sedan feb. 200358 inlägg Kommer från en annan sida via länken
<?php echo "<a href=\"download.php?id=$id\">Download </a>
Där allt är listade
MatteMedlem sedan aug. 20002 975 inlägg Och vad står det för värde på $id i den länken?
Det ser i statusfältet när du för musen över, eller när du tittar i den genererade HTML-koden.
NinaMedlem sedan feb. 200358 inlägg Det står rätt fil, alltså tex download.php?id=17 men så laddar den hem id 18 istället.
Lustiga sak
MatteMedlem sedan aug. 20002 975 inlägg Det innebär att den byter värde av någon anledning.
När du körde koden stod det då .../download.php?id=17 i adressfältet ?
Testa med att ändra från
$q="SELECT * from graphics where graphics_id='$id'";
till
$q="SELECT * from graphics where graphics_id='{$_GET['id']}'";
och kör koden inklusive sin felsökning.
Vad får du då ?
NinaMedlem sedan feb. 200358 inlägg Ok, ska testa. Jo det är det som är så lustigt att den byter värden så fort jag lägger in
if (!(isset($username) || !isset($siteuser))) // user not login, redirect to login page
{
header("Location: ../test/members/loggin.php");
exit;
}
else {
MatteMedlem sedan aug. 20002 975 inlägg Vad det gäller den if-satsen så är den felaktig. Det var jag som missade en parentes i den.
Om jag minns rätt från tidigare frågor av dig, så var $username en sessionsvariabel och $siteuser en cookie.
Då skulle jag skrivit så här:
if (!isset($_SESSION['username']) || !isset($_COOKIE['siteuser'])) // user not login, redirect to login page
{
header("Location: ../test/members/loggin.php");
exit;
}
else {
Annars kunde någon enkelt gått förbi din inloggning genom att skriva download.php?username=vad_som_helst&siteuser=vad_som_helst
Men detta ska inte ha något som helst med dina problem att göra. Väntar med spänning på vad du får fram.