14. marts 2004 - 17:50Der er
36 kommentarer og 1 løsning
Fejl i uploadscript
Jeg har dette uploadscript, som skal lave en sti i databasen, men jeg får følgende fejl i script.. Og hvor skal jeg placere: $_FILES['upfile']['name']);
You have an error in your SQL syntax near 'name']') WHERE id = '2' ORDER BY id desc' at line 1
Scriptet ser således ud:
<?php
$db = mysql_connect("localhost", "xxx", "xxx") or die ("Desværre ingen forbindelse til databasen"); mysql_select_db("afx", $db) or die ("Kunne ikke vælge databasetabel");
$query = mysql_query("INSERT INTO temp (`picture`) VALUES ('$_FILES['upfile']['name']') WHERE id = '$_GET[id]' ORDER BY id desc") or die(mysql_error());
if (isset($_FILES['upfile'])) {
if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {
$query = mysql_query("INSERT INTO temp (`picture`) VALUES ('$_FILES['upfile']['name']') WHERE id = '$_GET[id]' ORDER BY id desc") or die(mysql_error()); ændres til: $filename = $_FILES['upfile']['name']; $query = mysql_query("INSERT INTO temp (`picture`) VALUES ('$filename') WHERE id = '$_GET[id]' ORDER BY id desc") or die(mysql_error());
så prøv dette: $id = $_GET["id"]; $filename = $_FILES['upfile']['name']; $query = mysql_query("INSERT INTO temp (`picture`) VALUES ('$filename') WHERE id = '$id'") or die(mysql_error());
Ahhh, det virker fint! Mange tak - smider du et svar? I databasen vises kun filnavnet - det burde egentlig være sti/til/fil Ved du tilfældigvis hvordan man så også får vist det billede man uploader? Jeg laver et nyt spm. ell. jeg sætter flere point til her.
Hvis den ikke uploader nogen fil, bliver der jo heller ikke indsat noget navn. I øvrigt bør du nok flytte den del der indsætter i databasen ned under linien:
$besked = $_FILES['upfile']['name'] ." er blevet uploadet med succes!";
Fordi at det er sjældent, at billedet vil være tilstede ved oprettelsen af posten, så jeg tænkte at det ville være smart med et defaultbillede og at man kan uploade et senere.
Ok, I see. Men i dit eksempel skal du jo på en eller anden måde have fat i det korrekte id og det skal så tilføjes linket i formens action. Kalder du scriptet fra en anden side med i linket?
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']); $besked = $_FILES['upfile']['name'] ." er blevet uploadet med succes!"; $db = mysql_connect("localhost", "xxx", "xxx") or die ("Desværre ingen forbindelse til databasen"); mysql_select_db("afx", $db) or die ("Kunne ikke vælge databasetabel");
$query = mysql_query("UPDATE temp SET `picture`='".$_FILES['upfile']['name']."' WHERE id = '".$_POST['id']."'") or die(mysql_error()); }else{ $besked = "Sorry, men upload skete IKKE!"; }
Ok, nu kom der noget i databasen, men scriptet som der også kaldes fra længere oppe fungere også som visning af posten - den prøvede jeg at reloade - det fandt intet billede. proberties for billede: file:///c:/program%20files/ez%20systems/ezpublish/upload/4
Kanon, det hele virker nu! Mange tak for hjælpen! Ved du tilfældigvis lige hvordan man kan få uploadscriptet til at resize billedet? Smider du et svar?
Av, jeg fik denne: Fatal error: Call to undefined function: imagecreatefromjpeg() in c:\program files\ez systems\ezpublish\sec\uploadtest.php on line 32
Så burde det da hvert fald virke på serveren. Hvis du i din PHP/extensions mappe har en fil der hedder: "php_gd2.dll" kan du slå den til ved at sørge for at du har linien:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.