webForumDet fria alternativet

problem med införning utav ID

10 svar · 454 visningar · startad av Tulork

TulorkMedlem sedan aug. 2004903 inlägg
#1

försöker förstå mig på varför inte $ID_ADD följer med in i databasen..den innehåller en variabel från sidan innan uploadsidan...det går att echo ut innehållet och den visar rätt...

<?php
ob_start();
session_start();
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_userlevel']) || $_SESSION['sess_userlevel'] != "admin") {
//  header("Location: index.php");
  header("refresh: 5;url=konto.php");
// eller
  echo "Du har inte behörighet till den här sidan";
  exit;
}
?>
<?php
include "conn.php"; // Databasanslutningen

// Performing SQL query sh
$ID_ADD = $_GET['var'];

if (isset ($_GET['var'])){
$query = "SELECT * FROM $mem_table WHERE id =".$_GET['var']." ";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<p>Du redigerar användaren:<p>";
//echo "$_SESSION['sess_userlevel'];";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n";
   }
   echo "\t</tr>\n";
//echo "test $sess_userlevel";
}
echo "</table>\n";

// Free resultset
//mysql_free_result($result);
}

echo "<br>$ID_ADD";

if (isset($_FILES['uplfile'])) {
    // Mappen där filerna ska hamna
    $upload_dir = 'download/';
    // De tillåtna filtyperna, separerade med komman, utan mellanrum
    $filetypes = 'jpg,gif,png,doc,zip,ppt,txt,pdf';
    // Den största tillåtna storleken (80 kB)
    $maxsize = (1024*20000000);

    // Kontrollera att det angavs en fil
    if(empty($_FILES['uplfile']['name']))
        die('Ingen fil har valts');

    // Kontrollera storleken
    if($_FILES['uplfile']['size'] > $maxsize)
        die('Filen du valde är för stor. Maxstorleken är '.(string)($maxsize/1024).' KB.');

    // Kontrollera filtypen
    $types = explode(',', $filetypes);
    $file = explode('.', $_FILES['uplfile']['name']);
    $extension = $file[sizeof($file)-1];
    if(!in_array(strtolower($extension), $types))
        die('Du har en felaktig filtyp. Endast .jpg, .gif och .png är tillåtet!');

    // Generera unikt filnamn
    $bokstav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6');
    $thefile = $_FILES['uplfile']['name'];
    while (file_exists($upload_dir.$thefile)) { $img = $bokstav[rand(0, count($bokstav)-1)].$thefile; }

    // Flytta filen rätt
    if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir.$thefile)) {
        echo 'Filen laddades upp!';

    //Min införning i databasen
    $query = "INSERT INTO UserFiles (filename, RefID) "."VALUES ('$thefile', '$ID_ADD')";
    mysql_query($query) or die ('gick inte att införa i databasen');

    } else {
        echo 'Ett fel uppstod och filen kunde inte laddas upp.';

        /*
        Uppladdningen misslyckades.
        */
    }
}
else
{

  ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    Fil:&nbsp;<input type="file" name="uplfile"><br>
    <input type="submit" value="Ladda upp filen">
    </form>
  <?php

}

?>
</body>
</html>

<?php
echo "<br><a href=\"index.php?logout=\">Logga ut</a>\n<br><br>";
?>
<a href="admin.php">Tillbaka </a><br><br>

I databasen finns tablen UserFiles, i den finns filename och RefID som ska användas när jag ska veta vem som ska få tillgång till vilken fil.

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Vad för datatyp är $ID_ADD?

TulorkMedlem sedan aug. 2004903 inlägg
#3

$ID_ADD är $_GET['var'] var är id't vi valde från förra sidan..det id't är ifrån databasen i tablen members..det id't skapades när en användare lades till..id't är ett nummer

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Vad jag egentligen menade att fråga var vilken datatyp userFiles.refId är. Heltal skall inte omges med apostrofer, så

"INSERT INTO UserFiles (filename, RefID) VALUES ('$thefile', $ID_ADD)"

(Jag tog även bort en onödig konkatenering.)

TulorkMedlem sedan aug. 2004903 inlägg
#5

aha, ska testa

TulorkMedlem sedan aug. 2004903 inlägg
#6

det funkade inte..nu kommer ingenting in i databasen..innan kom i alla fall filnamnet in :S

Peter SMedlem sedan dec. 20025 483 inlägg
#7

Då är det någonting annat som felar. Tal skall som sagt inte omges med apostrofer.

Ett annat, OT-relaterat, problem med ovanstående kod är risken för SQL-injections.

TulorkMedlem sedan aug. 2004903 inlägg
#8

säkerhets teste och allt relaternade kommer arbetas in i slutskedet när koden är helt klar. detta är bara en liten del utav den totala kod som projektet innefattar. Och får jag inte rätt på detta, så funkar inte nerladdningen. dessutom så är denna sidan ej tillgänglig för alla, utan bara administratören, och inloggning är SSL skyddat.

TulorkMedlem sedan aug. 2004903 inlägg
#9

ingen som har nått tips?

TulorkMedlem sedan aug. 2004903 inlägg
#10

alltså, nu har jag testat i en hel dag, men får inte rätt på det.. vill bara få in det där jekla ID't
Att skicka in filnamnet funkar perfekt, så nu testar jag Bara att försöka få in ID't, så här har jag gjort nu

$query2 = ("INSERT INTO UserFiles (RefID) VALUES (".$_GET['var'].")");
	mysql_query($query2) or die ('gick inte att införa i databasen');

Har även testat en del med att ha $_GET['var'] i en variabel, men det går inte.. ska jag använda något annat än INSERT till detta eller nått?? felet ligger i alla fall inte i $_GET['var'], jag får informationen från sidan innan.... måste fixa detta så att jag kan börja med nedladdnings koden!

TulorkMedlem sedan aug. 2004903 inlägg
#11

det verkar som om att på vissa ställen i koden där jag testade att hämta informationen, finns inte informationen..men varför?

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