webForumDet fria alternativet

skriva ut $_FILES till mysql...

PHP

5 svar · 260 visningar · startad av Ior^

Medlem sedan juni 200133 inlägg
Frågan#1

Tjo!
Jag har ett problem när jag ska lägga in en bilds sökväg i mysql databasen.

bilden laddas upp som den ska, men när jag kör en mysql query så blir det så här..

om vi säger att jag vill lägga in sökvägen som img/bilden.gif

koden ser ut så här:

$img = "bilder/".$_FILES['bild']['name'];
$query = "UPDATE tabell SET sokvag = '$img' Where id = '$id'";

det ända som läggs in i databasen är då: bilder/

däremot om man skriver echo $_FILES['bild']['name']; så kommer det ut fint o pydligt.

nån som har nåt svar till detta?

mvh johan

Medlem sedan aug. 20002 975 inlägg
#2

Din kod fungerar hur bra som helst hos mig.

Har du något annat som kan spöka till det?

Medlem sedan juni 200133 inlägg
#3

k koden ser ut så här:

<?
$maxbredd="350";
$maxhojd="350";

	if(isset($\_POST\["bild_submit"\])) {

	if (is_uploaded_file($\_FILES\['userfile'\]\['tmp_name'\])) { 

	$bilden=$\_FILES\['userfile'\]\['tmp_name'\]; 
	$bilden2=$\_FILES\['userfile'\]\['name'\]; 
	$size = GetImageSize ("$bilden"); 
	
	if (($size\[0\] \> $maxbredd) OR ($size\[1\] \> $maxhojd)) { echo "\<p align=center\>\<b\>$bilden2\</b\> är bredare än $maxbredd eller högre än $maxhojd\</p\>"; 
		} else {
		
		copy($\_FILES\['userfile'\]\['tmp_name'\], "/sokvag/".$\_FILES\['userfile'\]\['name'\]);

		include("dataphp");

		$bild = "imguser/".$FILES\['userfile'\]\['name'\];

		$anv = $\_SESSION\["anvandare"\];

		$bild_sql = "UPDATE login SET bild_sokvag = '$bild' WHERE user = '$anv'";

		$bild_query = mysql_query("$bild_sql") or die($mysql_error());

	?\>

	\<p align="center"\>Din bild \<b\>\<?= $\_FILES\['userfile'\]\['name'\] ?\>\</b\> är uppladdad.\<br\>\</p\>

	

	\<?  } } else {

	echo "Ett fel inträffade, var god försök igen senare...";

	}  } else { ?\>

	\<H1\>Ladda upp egen bild\</H1\>

	\<form enctype="multipart/form-data" action="upload_bild.php" method="post"\>

	\<input type="hidden" name="MAX_FILE_SIZE" value="1000"\>

<table width="90%" border="0" cellspacing="1" cellpadding="0">

\<tr\>

  \<td\>

    \<p align="center"\>Bilden du lägger upp får vara max \<?= $maxhojd ?\> hög och \<?= $maxbredd ?\> bred. \<br\>Tryck på bläddra för att välja bild:\</p\>

  \</td\>

\</tr\>

\<tr\>

  \<td\> 

    \<div align="center"\>

      \<input name="userfile" type="file"\>

    \</div\>

  \</td\>

\</tr\>

\<tr\>

  \<td\> 

    \<div align="center"\>

      \<input type="submit" name="bild_submit" value="Skicka bild"\>

      \<input type="reset" value="Rensa" name="reset"\>

    \</div\>

  \</td\>

\</tr\>

</table>

<br>

<br>

</form>

	\<? } ?\>

får se om du kan hitta felet så blir jag glader =)

Medlem sedan aug. 20002 975 inlägg
#4

Du har två ställen där du knyter ihop en sökväg med filnamnet. Den första:

copy($_FILES['userfile']['tmp_name'], "/sokvag/".$_FILES['userfile']['name']);

Hade inte sammanknytningen fungerat här hade ingen fil sparats på disken, men så säger du inte att det är, så jag får anta att det fungerar. Fungerar det där så borde det också fungera på nästa ställe:

$bild = "imguser/".$FILES['userfile']['name'];

Prova att skriva ut lite echo för att se utfall:

$bild = "imguser/".$FILES['userfile']['name']; 
echo $bild."<br>";

$anv = $_SESSION["anvandare"]; 

$bild_sql = "UPDATE login SET bild_sokvag = '$bild' WHERE user = '$anv'"; 
echo $bild_sql."<br>";

Kan det finnas något i filnamnet som stökar till det för mysql?

Medlem sedan juni 200133 inlägg
#5

Löste det med

$bild_sql = "UPDATE login SET bild_sokvag = 'imguser/$bild' WHERE user = '$anv'";

Ibland är det små sketna fel =)
tack för hjälpen iaf!

Medlem sedan jan. 2002341 inlägg
#6

^Ior, så här ligger du och lurar va?

506 ms totalt · 4 externa anrop · v20260731065814-full.bd618308
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
338 ms — ändringar (db)