webForumDet fria alternativet

Info in i databasen baserat på föregående sida

PHP

18 svar · 667 visningar · startad av Tulork

Medlem sedan aug. 2004903 inlägg
Frågan#1

Detta är sidan jag väljer vilken användare jag vill uploada till

<?php
ob_start();
session_start(); // Alltid överst på sidan

// Kolla om inloggad = sessionen satt
/*if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
*/

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;
}

if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<html>
<head>
<link rel=StyleSheet href="setts/style.css" TYPE="text/css">
</head>
<body class="back">
<?php

include "conn.php";

if ($_POST['JA'] == "Ja" && strlen($_POST['delete']) && $_POST['delete'] != "126")
{
//  mysql_query("DELETE FROM $mem_table WHERE id = '" . $_POST['delete'] . "'");

 header("Location: redigera.php?var=". $_POST['delete']); 
  
}

// Performing SQL query
$query = 'SELECT * FROM members';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<link rel=StyleSheet href=\"setts\style.css\" TYPE=\"text/css\">";

echo "<table>\n";
echo "<td class=\"text3\"><strong>ID</strong></td>";
echo "<td class=\"text3\"><strong>User</strong></td>";
echo "<td class=\"text3\"><strong>Pass</strong></td>";
echo "<td class=\"text3\"><strong>Name</strong></td>";
echo "<td class=\"text3\"><strong>UserLevel</strong></td>";
echo "<td class=\"text3\"><strong>Row6</strong></td>";
echo "<td class=\"text3\"><strong>Row7</strong></td>";
echo "<td class=\"text3\"><strong>Row8</strong></td>";
echo "<td class=\"text3\"><strong>Row9</strong></td>";

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td class=\"text\">$col_value</td>\n";
   }
   echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

if (isset ($_POST ['submit'])){
  $delete = $_POST['delete'];
  if ($delete=="126"){
    echo "<p class=\"text2\">Du kan inte redigera admin kontot!<p>";
  }

//--------------------------------------------------------------

  else {
        echo "
	<p>Är du säker på att du vill redigera användaren med <strong>ID</strong>::$delete?<p>	
	<form method=\"post\" action=\"?\">
        <input type=\"submit\" name=\"JA\" value=\"Ja\">
        <input type=\"submit\" name=\"NEJ\" value=\"Nej\">
                 <input type=\"hidden\" name=\"delete\" value=\"$delete\">
        </form>";

  }
}
ob_end_flush();
?>

<br><form method="post" action="?">
<label for="delete"> Vilket id vill du redigera?</label>
<input type="text" name="delete" />
<input type="submit" name="submit" value="Redigera!"/>
</form><br>
<a href="admin.php">Tillbaka</a><br><br>
</body>
</html>
<?php
echo "<a href=\"index.php?logout=\">Logga ut</a>\n";
?>

Som ni ser här så skickar jag med ID't till nästa sida, vilket är redigera.php och den ser ut så här

<?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;
}
?>
<html>
<head>
<link rel=StyleSheet href="setts/style.css" TYPE="text/css">
</head>
<body class="back">
<?php
include "conn.php"; // Databasanslutningen

// Performing SQL query sh

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 class=\"text\">$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'])) {
	$ID_ADD = $_POST['var'];

	// 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!';

		/*
		Uppladdningen lyckades.
		Filnamnet ligger i $thefile.
		*/
	
	//Det är Här det inte funkar att föra in i databasen, filnamnet får in om jag bara väljer att införa det
	$query2 = ("INSERT INTO UserFiles (filename, RefID) VALUES ('$thefile',$ID_ADD");
	mysql_query($query2) 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

}
ob_end_flush();
?>

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

</body>
</html>

Problemet som fortfarande återstår är att jag på något sätt måste få in ID't jag skickade med från förra sidan in i RefID i databasen. Hur löser jag detta? På vissa ställen kan jag skriva ut $ID_ADD (innehåller $_GET ['var'] som är ID't jag valde från förra sidan) och på andra inte. Någon Vänlig själ som hjälpa mig med detta, utan RefID vet jag inte vem som ska få tillgång till vilken fil. x(

Medlem sedan mars 2003429 inlägg
#2

Vid en snabb överblick så ser jag att du på vissa ställen försöker nå var via $_POST och på andra via $_GET och med koden från första filen att dömma så bordet $_GET vara det rätta alternativet att använda i den andra filen...

Medlem sedan aug. 2004903 inlägg
#3

aa, alltså, jag har testat allt..det ligger kvar lite POST grejjer..har testat allting jag kunde komma på..ingenting har funkat hittills...

Jag har bara fått den att

Lägga in filnamnet $thefile
Lägga in filnamnet $thefile och ett statiskt värde i RefID
Eller att upladdningen lyckats och varken fil, filnamn eller id lagts in någonstans

Medlem sedan mars 2003429 inlägg
#4

Men din $ID_ADD som du anger när du ska spara id i databasen är ju satt av $_POST... klart det inte funkar då eftersom du inte postar var utan kör den i get, kontrollera att du har rätt värde (var) i adressfältet och kör $ID_ADD = $_GET['var'] så ska det funka.

Medlem sedan aug. 2004903 inlägg
#5

har testat GET...har testat o testat i 2 dagar på detta skriptet nu.

Medlem sedan mars 2003429 inlägg
#6

Vad lägger den för värde i databasen när du använder $_GET då? om $_GET funkar där uppe (i början av fil 2) funkar det även längre ner i koden...

mvh

Medlem sedan aug. 2004903 inlägg
#7

jag tycker precis som du, men nej, den vill inte. om jag vill få in både filnamnet och ID't så uploadar den ingen fil och för inte in någonting i databasen..tar jag bort införningen utav id't så vipps laddar den upp filen och lägger in namnet..sätter jag ett statiskt värde på refid så lägger den in allting.. när jag använder "or die('Query failed: ' . mysql_error());" så gnäller den på syntax error vid line 1..osv osv

Medlem sedan mars 2003429 inlägg
#8

lägg en echo $_GET['var'];
överst på sidan, skriver den ut vad du förväntar dig då? är detta en "int" och inte en sträng? Om det är en sträng måste du använda dig av ' ' i din sql-sats...

Men som sagt iom att du kollar att $_GET['var'] är satt och den kör din sql-sats är det konstigt!

Kan du ändra koden så att du kör enhetligt med bara $_GET och utan några debugg grejjer så ska jag se vad som är fel... gärna adresserna du använder när du kör också... behöver inte din www.dindomän.se utan räcker med det efter /

Mvh

Medlem sedan aug. 2004903 inlägg
#9

den skriver ut exakt det jag förväntar den att göra..dvs ID't, det borde vara en int iom att den skriver ut nummret..GET är satt..

så här ser det ut nu

?php
ob_start();
session_start();
$ID_ADD = $_GET['var'];
// 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;
}
?>
<html>
<head>
<link rel=StyleSheet href="setts/style.css" TYPE="text/css">
</head>
<body class="back">
<?php
include "conn.php"; // Databasanslutningen

// Performing SQL query sh

if (isset ($_GET['var'])){
$query = "SELECT user 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 class=\"text\">$col_value</td>\n";
   }
   echo "\t</tr>\n";
//echo "test $sess_userlevel";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);
} 

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!';

	
	//$query2 = "SELECT id FROM $mem_table WHERE id =".$_GET['var']." ";
	//$result2 = mysql_query($query2) or die('Query failed: ' . mysql_error());
	//	while ($line2 = mysql_fetch_array($result2, MYSQL_ASSOC)) {
 		//  echo "\t<tr>\n";
  	//	 foreach ($line2 as $col_value) {
 	//	     echo "\t\t<td>$col_value</td>\n";
  // }
 			 // echo "\t</tr>\n";
//}
	
	$query3 = ("INSERT INTO UserFiles (filename, RefID) VALUES ('$thefile',$ID_ADD)");
	$result3 = mysql_query($query3) or die('Query failed query3: ' . mysql_error());
	
	

	} 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

}
ob_end_flush();
?>

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

</body>
</html>
Medlem sedan mars 2003429 inlägg
#10

Okej berätta mer om felmeddelandet från din sql-sats då ;-) borde ju finnas lite "near ..." som kan beskriva felet, om "var" är en int så är det enda felet jag kan se att du försöker hämta från en tabell som inte finns.. alltså att variabeln $mem_table antingen inte är satt eller så har den fel värde... mvh

Medlem sedan aug. 2004903 inlägg
#11

variablen $mem_table är satt i conn.php som jag includerar..den funkar och har alltid gjort

felmeddelandet ser ut så här nu med det skript jag la sist i denna tråd

Filen laddades upp!Query failed query3: 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

http://81.170.236.54/Grej/index.php

användare admin
lösen dgt54r

in där o sen redigera.. där kan du kolla hur mkt du vill

Medlem sedan mars 2003429 inlägg
#12

Okej, testade att ladda upp en fil, men du har ingen "var" variabel i adressfältet när du postar en fil för uppladdning!

Lösning är att du lägger till i ditt formulär action="/Grej/redigera.php?var=$ID_ADD"

Medlem sedan aug. 2004903 inlägg
#13

mäh..vart tar den vägen då?? den ligger ju me när jag kommer in på redigera.php..
edit.php (där jag väljer vem jag ska redigera) ser ut så här

<?php
ob_start();
session_start(); // Alltid överst på sidan

// Kolla om inloggad = sessionen satt
/*if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
*/

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;
}

if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<html>
<head>
<link rel=StyleSheet href="setts/style.css" TYPE="text/css">
</head>
<body class="back">

<?php
include "conn.php";

if ($_POST['JA'] == "Ja" && strlen($_POST['delete']) && $_POST['delete'] != "126")
{
//  mysql_query("DELETE FROM $mem_table WHERE id = '" . $_POST['delete'] . "'");

 header("Location: redigera.php?var=". $_POST['delete']); 
  
}

// Performing SQL query
$query = 'SELECT * FROM members';
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<link rel=StyleSheet href=\"setts\style.css\" TYPE=\"text/css\">";

echo "<table>\n";
echo "<td class=\"text3\"><strong>ID</strong></td>";
echo "<td class=\"text3\"><strong>User</strong></td>";
echo "<td class=\"text3\"><strong>Pass</strong></td>";
echo "<td class=\"text3\"><strong>Name</strong></td>";
echo "<td class=\"text3\"><strong>UserLevel</strong></td>";
echo "<td class=\"text3\"><strong>Row6</strong></td>";
echo "<td class=\"text3\"><strong>Row7</strong></td>";
echo "<td class=\"text3\"><strong>Row8</strong></td>";
echo "<td class=\"text3\"><strong>Row9</strong></td>";

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td class=\"text\">$col_value</td>\n";
   }
   echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
mysql_free_result($result);

if (isset ($_POST ['submit'])){
  $delete = $_POST['delete'];
  if ($delete=="126"){
    echo "<p class=\"text2\">Du kan inte redigera admin kontot!<p>";
  }

//--------------------------------------------------------------

  else {
        echo "
	<p>Är du säker på att du vill redigera användaren med <strong>ID</strong>::$delete?<p>	
	<form method=\"post\" action=\"?\">
        <input type=\"submit\" name=\"JA\" value=\"Ja\">
        <input type=\"submit\" name=\"NEJ\" value=\"Nej\">
        <input type=\"hidden\" name=\"delete\" value=\"$delete\">
        </form>";

  }
}
ob_end_flush();
?>

<br><form method="post" action="?">
<label for="delete"> Vilket id vill du redigera?</label>
<input type="text" name="delete" />
<input type="submit" name="submit" value="Redigera!"/>
</form><br>
<a href="admin.php">Tillbaka</a><br><br>
</body>
</html>
<?php
echo "<a href=\"index.php?logout=\">Logga ut</a>\n";
?>

ni måste vara medvetna om också att detta är rå kod..därför allting e så craaazy ostrukturerat och "skitigt"

Medlem sedan mars 2003429 inlägg
#14

Ja den ligger med då, men den måste ju även ligga med när du klickar på "ladda upp filen" annars är det glömt!

Kolla adressfältet på sidan då du försöker ladda upp filen och det där query3 felmeddelandet kommer upp, då finns det inte där!

Såfort du laddar om något så måste det finnas med! så det är ett evigt vidarefedrodrande av data ;-) Gör som jag sa och testa igen =)

mvh

Medlem sedan aug. 2004903 inlägg
#15

jo jag ser det :) hmm, hur gör jag då?? samma som på edit.php? header location blabla skicka med värde blabla? eller?

Medlem sedan mars 2003429 inlägg
#16

nej ändra denna kodrad i redigera.php

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">

till

<form action="<?php echo $_SERVER['PHP_SELF'] ."/?var=".$_GET['var']; ?>" method="post" enctype="multipart/form-data">

Medlem sedan mars 2003429 inlägg
#17

Såg att det funkade fin fint nu =) ... men du har mycket i din kod som kan göras bättre och säkrare för att minimera risken för "human errors" ... men som du sa det är ju bara råkod!

Cheers :bire

Medlem sedan aug. 2004903 inlägg
#18

Tack så Väldans mkt!!! och ja, det är mkt "temporära" lösningar i min kod, men det är ju som sagt bara rå kod :)

Medlem sedan mars 2003429 inlägg
#19

Glad att jag kunde hjälpa till, hade jag inte kunnat testa din applikation hade jag nog aldrig (orkat) hittat felet...

mvh

268 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)