21. november 2004 - 16:09
Der er
98 kommentarer og 1 løsning
Hvorfor kan blob ikke virke.
jeg har lavet et lille upload system som jeg kan uploade et pr fotoer samt en tekst men den vil ikke vise når jeg henter dem ud så jeg vil lige høre om der er noget man skal gøre med sin sql for at få det til at virke
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
21. november 2004 - 16:20
#1
Du skal nok sørge for at escape specielle tegn.
21. november 2004 - 16:24
#2
Hvad vil det sige.
21. november 2004 - 16:24
#3
21. november 2004 - 16:31
#4
Jeg er ikke helt med.
21. november 2004 - 16:38
#5
Det er sådan at visse tegn har en speciel betydning i MySQL. Der for skal de 'escapes', dvs. at man sætter et 'backslash' tegn \ foran. Det kan du fx gøre med den funktion arne_v har foreslået, for så vidt du bruger php altså.
21. november 2004 - 16:44
#6
Ja jeg bruger PhP og Mysql men når jeg vil se mine fotoer er det lige som en hex fil den viser
21. november 2004 - 16:46
#7
Hvordan ser scriptet ud?
21. november 2004 - 16:49
#8
Altså der hvor du gemmer billedet og der hvor du viser det.
21. november 2004 - 16:59
#9
her er den jeg uploade med p.s fik hjælp til den men den vil ikke virke <?php include 'config.php'; include 'mysqlconnect.php'; if (isset($_POST['addnow']) == "add"){ //int(id) longtext(type) longtext(år) longtext(pris) longtext(km) longblob(pic1) longblob(pic2) longblob(pic3) longblob(pic4) $type = $_POST['type']; $aar = $_POST['aar']; $pris = $_POST['pris']; $udstyr = $_POST['udstyr']; $km = $_POST['km']; $pic1 = $_FILES['pic1']['tmp_name']; $pic1 = addslashes(fread(fopen($pic1,"r"),filesize($pic1))); $pic2 = $_FILES['pic2']['tmp_name']; $pic2 = addslashes(fread(fopen($pic2,"r"),filesize($pic2))); $pic3 = $_FILES['pic3']['tmp_name']; $pic3 = addslashes(fread(fopen($pic3,"r"),filesize($pic3))); $pic4 = $_FILES['pic4']['tmp_name']; $pic4 = addslashes(fread(fopen($pic4,"r"),filesize($pic4))); echo "yes"; $query = "INSERT INTO `".$table."` VALUES ('', '".$type."', '".$aar."', '".$pris."', '".$udstyr."', '".$km."', '".$pic1."', '".$pic2."', '".$pic3."', '".$pic4."')"; if (mysql_query($query)) {} else {$_POST['error'] = "Can't do SQL query - ".mysql_error();} } else {} print " <form action=\"\" method=\"post\" enctype=\"multipart/form-data\"> <input type=\"hidden\" value=\"add\" name=\"addnow\"> <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td>Type:<br><input type=\"text\" name=\"type\" style=\"width:300px; \"></td> </tr> <tr> <td><br>År:<br><input name=\"aar\" style=\"width:300px;\"><td> </tr> <tr> <td><br>Pris:<br><input type=\"text\" name=\"pris\"style=\"width:300px;\"></td> </tr> <tr> <td><br>udstyr:<br><input type=\"text\" name=\"udstyr\"style=\"width:300px;\"></td> </tr> <tr> <td><br>KM:<br><input name=\"km\" style=\"width:300px;\"></td> </tr> <tr> <td><br>Billede nr1:<br><input type=\"file\" name=\"pic1\" style=\"width:300px;\"></td> </tr> <tr> <td><br>Billede nr2:<br><input type=\"file\" name=\"pic2\" style=\"width:300px;\"></td> </tr> <tr> <td><br>Billede nr3:<br><input type=\"file\" name=\"pic3\" style=\"width:300px;\"></td> </tr> <tr> <td><br>Billede nr4:<br><input type=\"file\" name=\"pic4\" style=\"width:300px;\"></td> </tr> <tr> <td><br><input type=\"submit\" name=\"addnow\" value=\"Tilføj\"><input type=\"reset\" name=\"reset\" value=\"Reset\"></td> </tr> </table> </form>"; ?>
21. november 2004 - 17:00
#10
her den som skulle vise det. <?php //denne sender billedet så browseren kan forstå det include 'config.php'; include 'mysqlconnect.php'; if ($_GET['pic'] == "1"){ $code = addslashes($_GET['id']); $result = mysql_query("SELECT ".$col." FROM `".$table."` WHERE `id`='$code'"); $data = mysql_fetch_assoc($result); $pic1 = $data['pic1']; print $pic1; } else {} if ($_GET['pic'] == "2"){ $code = addslashes($_GET['id']); $result = mysql_query("SELECT ".$col." FROM `".$table."` WHERE `id`='$code'"); $data = mysql_fetch_assoc($result); $pic2 = $data['pic2']; print $pic2; } else {} if ($_GET['pic'] == "3"){ $code = addslashes($_GET['id']); $result = mysql_query("SELECT ".$col." FROM `".$table."` WHERE `id`='$code'"); $data = mysql_fetch_assoc($result); $pic3 = $data['pic3']; print $pic3; } else {} if ($_GET['pic'] == "4"){ $code = addslashes($_GET['id']); $result = mysql_query("SELECT ".$col." FROM `".$table."` WHERE `id`='$code'"); $data = mysql_fetch_assoc($result); $pic4 = $data['pic4']; print $pic4; } else {} ?>
21. november 2004 - 17:02
#11
I øvrigt vil jeg normalt ikke anbefale at gemme hele billeder i MySQL, medmindre der er tale om mange ganske små billeder. Ellers er det bedre at ligge billederne i en mappe og nøjes med at gemme fx: navn, beskrivelse, type, størrelser, etc.
21. november 2004 - 17:05
#12
jeg er med på alt bare det virker men det skal lige siges at selve det system jeg søger skal kunne uploade de 4 fotoer til den id teksten man laver
21. november 2004 - 17:06
#13
så vis du har en måde man kan lave det på må du sige til
21. november 2004 - 17:06
#14
vil give fler point
21. november 2004 - 17:15
#15
kan man lave et system som uploade de 4 fotoer til en mappe og teksten i sqlen + den ligger et link til de 4 fotoer
21. november 2004 - 17:16
#16
alt sammet skal ske på en side
21. november 2004 - 17:19
#17
Ja, det kan du godt og det vil anbefale. Hvad er det for en 'type' man skal indtaste?
21. november 2004 - 17:20
#18
type er mærket på den ting
21. november 2004 - 17:22
#19
er det noget du kan hjælpe med
21. november 2004 - 17:23
#20
Ok, jeg ser lige på det.
21. november 2004 - 17:23
#21
Lyder godt smider lige fler point på
21. november 2004 - 17:41
#22
Lav fx en mappe: 'billeder' i samme mappe som scriptet (husk at der skal være skrive/læse rettigheder på den):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="
http://www.w3.org/1999/xhtml"> <head>
<title>Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<?php
if (isset($_POST['addnow']) == "add"){
include 'config.php';
include 'mysqlconnect.php';
$sti = 'billeder/';
$type = $_POST['type'];
$aar = $_POST['aar'];
$pris = $_POST['pris'];
$udstyr = $_POST['udstyr'];
$km = $_POST['km'];
for ($i=0;$i<4;$i++) {
if (is_uploaded_file($_FILES['pic']['tmp_name'][$i])) {
$dest[$i] = $sti . $_FILES['pic']['name'][$i];
move_uploaded_file($_FILES['pic']['tmp_name'][$i], $dest[$i]);
} else {
$dest[$i] = '';
}
}
$query = "INSERT INTO `".$table."` VALUES ('', '".$type."', '".$aar."', '".$pris."', '".$udstyr."', '".$km."', '".$dest[0]."', '".$dest[1]."', '".$dest[2]."', '".$dest[3]."')";
mysql_query($query) or die("Can't do SQL query - ".mysql_error());
}
?>
<form action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input type="hidden" value="add" name="addnow">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Type:<br /><input type="text" name="type" style="width:300px;" /></td>
</tr>
<tr>
<td><br />År:<br /><input type="text" name="aar" style="width:300px;" /><td>
</tr>
<tr>
<td><br />Pris:<br /><input type="text" name="pris" style="width:300px;" /></td>
</tr>
<tr>
<td><br />udstyr:<br /><input type="text" name="udstyr" style="width:300px;" /></td>
</tr>
<tr>
<td><br />KM:<br /><input name="km" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr1:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr2:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr3:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr4:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br /><input type="submit" name="addnow" value="Tilføj" />
<input type="reset" name="reset" value="Reset" /></td>
</tr>
</table>
</form>
</body>
</html>
21. november 2004 - 17:46
#23
hvordan skal sqlen se ud
21. november 2004 - 17:47
#24
Mener du når du skal vise billederne igen?
21. november 2004 - 17:49
#25
Du må nok præcisere i hvilken sammenhæng og hvordan du ønsker at vise billederne igen.
21. november 2004 - 17:55
#26
jeg vil bare høre hvordan sqlen ser ud til det system du har lavet.
21. november 2004 - 17:56
#27
Mener du selve tabellen?
21. november 2004 - 17:57
#28
Din tabel kan så se sådan her ud: int(id) autoincrement text(type) text(år) text(pris) text(km) text(pic1) text(pic2) text(pic3) text(pic4) Alt efter hvad du skal bruge det til kan du ændre felttype på fx: år, pris og km til fx INT.
21. november 2004 - 18:04
#29
Mht. 'pris' kan det være en god ide at gemme den som ører. Så kan du altid dividere med 100 når den skal vises.
21. november 2004 - 18:05
#30
pis min webhotel har ikke skrive/læse rettigheder
21. november 2004 - 18:05
#31
mit
21. november 2004 - 18:07
#32
Så skal du lave en chmod på mappen. Sæt den til 0777. Det kan du evt. gøre med dit ftp program.
21. november 2004 - 18:08
#33
Ellers lav mappen med php: <?php mkdir("billeder", 0777); ?>
21. november 2004 - 18:16
#34
Warning: mkdir(billeder): Permission denied in
21. november 2004 - 18:19
#35
Kan du ikke gøre det i dit ftp program. Prøv evt. at højreklikke på mappen og se om der er mulighed for chmod eller evt. egenskaber (properties).
21. november 2004 - 18:21
#36
det kan man skal det være owner eller group eller public
21. november 2004 - 18:26
#37
Alle rettigheder til alle tre.
21. november 2004 - 18:29
#38
så er det lavet men nu har jeg lige prøvet at upload den smider kun min tekts ind ikke noget med link til mine fotoer
21. november 2004 - 18:35
#39
Prøv lige at rette: mysql_query($query) or die("Can't do SQL query - ".mysql_error()); til: print($query) or die("Can't do SQL query - ".mysql_error()); og se hvad den skriver. Har du husket et felt til: 'udstyr', det fik jeg ikke med?
21. november 2004 - 18:35
#40
det fatter jeg ikke
21. november 2004 - 18:36
#41
Gemmer den billederne i mappen?
21. november 2004 - 18:36
#42
CREATE TABLE `salg` ( `id` int(11) NOT NULL auto_increment, `type` longtext NOT NULL, `aar` longtext NOT NULL, `pris` longtext NOT NULL, `udstyr` longtext NOT NULL, `km` longtext NOT NULL, `pic1` text NOT NULL, `pic2` text NOT NULL, `pic3` text NOT NULL, `pic4` text NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=17 ;
21. november 2004 - 18:37
#43
nej det gør den ikke
21. november 2004 - 18:43
#44
Ok, tabellen ser fin ud. Måske bortset fra at du næppe får brug for LONGTEXT (den kan indeholde 4 GB) et alm. TEXT felt burde kunne gøre det, da den kan indeholde 65 KB.
21. november 2004 - 18:45
#45
jeg kan ikke forstå hvorfor den ikke uploader de fotoer
21. november 2004 - 18:48
#46
Hvilken version php bruger de på dit webhotel?
21. november 2004 - 18:50
#47
PHP version: 4.3.8
21. november 2004 - 18:53
#48
den uploade teksten men ikke mine fotoer sam link til dem
21. november 2004 - 18:53
#49
SITE CHMOD 777 salg 200 SITE CHMOD command successful
21. november 2004 - 18:54
#50
SITE CHMOD 777 billeder 200 SITE CHMOD command successful
21. november 2004 - 18:56
#51
Prøv lige at indsætte: echo "<pre>"; print_r($_FILES); echo "</pre>"; exit; efter: if (isset($_POST['addnow']) == "add"){
21. november 2004 - 19:01
#52
nu laver den det her når jeg klikker på upload Array ( )
21. november 2004 - 19:02
#53
nu ser koden sådan ud
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="
http://www.w3.org/1999/xhtml"> <head>
<title>Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<?php
if (isset($_POST['addnow']) == "add"){echo "<pre>";
print_r($_FILES);
echo "</pre>";
exit;
include 'config.php';
include 'mysqlconnect.php';
$sti = 'billeder/';
$type = $_POST['type'];
$aar = $_POST['aar'];
$pris = $_POST['pris'];
$udstyr = $_POST['udstyr'];
$km = $_POST['km'];
for ($i=0;$i<4;$i++) {
if (is_uploaded_file($_FILES['pic']['tmp_name'][$i])) {
$dest[$i] = $sti . $_FILES['pic']['name'][$i];
move_uploaded_file($_FILES['pic']['tmp_name'][$i], $dest[$i]);
} else {
$dest[$i] = '';
}
}
$query = "INSERT INTO `".$table."` VALUES ('', '".$type."', '".$aar."', '".$pris."', '".$udstyr."', '".$km."', '".$dest[0]."', '".$dest[1]."', '".$dest[2]."', '".$dest[3]."')";
mysql_query($query) or die("Can't do SQL query - ".mysql_error());
}
?>
<form action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input type="hidden" value="add" name="addnow">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Type:<br /><input type="text" name="type" style="width:300px;" /></td>
</tr>
<tr>
<td><br />År:<br /><input type="text" name="aar" style="width:300px;" /><td>
</tr>
<tr>
<td><br />Pris:<br /><input type="text" name="pris" style="width:300px;" /></td>
</tr>
<tr>
<td><br />udstyr:<br /><input type="text" name="udstyr" style="width:300px;" /></td>
</tr>
<tr>
<td><br />KM:<br /><input name="km" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr1:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr2:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr3:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br />Billede nr4:<br /><input type="file" name="pic[]" style="width:300px;" /></td>
</tr>
<tr>
<td><br /><input type="submit" name="addnow" value="Tilføj" />
<input type="reset" name="reset" value="Reset" /></td>
</tr>
</table>
</form>
</body>
</html>
21. november 2004 - 19:04
#54
'upload'? i det script jeg har postet hedder den: 'tilføj'!
21. november 2004 - 19:08
#55
?
21. november 2004 - 19:09
#56
Ok, koden ser rigtig ud og den virker da osse hos mig.
21. november 2004 - 19:11
#57
hmmm jeg har en mappe som heder salg der i er der en mappe der heder billeder med CHMOD 777 der i ligger min php filer også i har også prøvet ud af mappe
21. november 2004 - 19:12
#58
men ellers må du lave et svar så må du få dine point
21. november 2004 - 19:17
#59
Narh, vi skulle da gerne have det til at virke. Men jeg må indrømme at jeg ikke helt kan følge hvorfor din form ikke sender $_FILES data?
21. november 2004 - 19:18
#60
me2 men hvad kan der mun være galt
21. november 2004 - 19:22
#61
er der ikke måde man kan teste om mappen er åben
21. november 2004 - 19:22
#62
Hvad giver denne: <?php echo ini_get('file_uploads'); ?>
21. november 2004 - 19:25
#63
hvor skal den være
21. november 2004 - 19:27
#64
I en fil for sig.
21. november 2004 - 19:28
#65
Prøv evt. lige at rette: echo "<pre>"; print_r($_FILES); echo "</pre>"; exit; til: echo "<pre>"; print_r($HTTP_POST_FILES); echo "</pre>"; exit;
21. november 2004 - 19:32
#66
hvor ser du det
21. november 2004 - 19:33
#67
Lige efter: if (isset($_POST['addnow']) == "add"){
21. november 2004 - 19:34
#68
nu viser jeg dig lige min config fil samt mysqlconnect
21. november 2004 - 19:34
#69
Hvad giver resultatet af: 19:22:11?
21. november 2004 - 19:35
#70
Post nu ikke passwords o.l.!
21. november 2004 - 19:35
#71
Array ( )
21. november 2004 - 19:36
#72
det gør den her også
21. november 2004 - 19:37
#73
mysqlconnect.php <?php if (!mysql_connect($host,$user,$pass)) { print "database error: can't connect to database at shost: $host - ".mysql_error(); exit(); } else { if (!mysql_select_db($base)) { print "database error: can't open database $fd_db_name - ".mysql_error(); exit(); } else {} } ?>
21. november 2004 - 19:37
#74
<?php // The News DataBase need some info... $host = "localhost"; // Hosten på databasen (Hvis egen localhost server skrived der endten "localhost" eller "". (disse " skrives ikke) $user = ""; // Brugernavnet til databasen $pass = ""; // kodeordet til databasen $base = ""; // databasens navn $table = "salg"; // tabellens navn ?>
21. november 2004 - 19:46
#75
Det ser alt sammen fint ud. Prøv lige dette enkle script. Du behøver ikke vælge en fil, bare tryk: 'tilføj'. <?php if (isset($_POST['addnow'])){ echo "<pre>"; print_r($_FILES); echo "</pre>"; exit; } ?> <form action="<? echo $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> <input type="file" name="pic" style="width:300px;" /> <input type="submit" name="addnow" value="Tilføj" /> </form>
21. november 2004 - 19:49
#76
Array ( )
21. november 2004 - 19:51
#77
det siger den efter jeg har uploade
21. november 2004 - 19:54
#78
hvad er Array ( )
21. november 2004 - 19:54
#79
Ja, det er jo galt. Den skulle vise: Array ( [pic] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )
21. november 2004 - 19:56
#80
ja det er ikke godt
21. november 2004 - 19:57
#81
Hvad er resultatet af denne: <?php if (ini_get('file_uploads')) echo "Fileupload er ok"; else echo "Fileupload er ikke ok"; ?>
21. november 2004 - 19:58
#82
Fileupload er ikke ok
21. november 2004 - 20:00
#83
hmmmmm lyder ikke godt
21. november 2004 - 20:00
#84
Så har du ganske enkelt ikke mulighed for at lave fileuploads. 'file_uploads' skal være sat i php_ini og det lader det ikke til at den er og den kan ikke sættes andre steder.
21. november 2004 - 20:01
#85
Prøv evt. at lave denne fil og lig et link her: <?php phpinfo(); ?>
21. november 2004 - 20:07
#86
har måske fundet fejlen
21. november 2004 - 20:08
#87
jeg ligger på azero webhotel når jeg logger på med min ftp er der en mappe der heder phpupload
21. november 2004 - 20:08
#88
den her 777
21. november 2004 - 20:09
#89
det er nok den jeg skal bruge
21. november 2004 - 20:10
#90
21. november 2004 - 20:16
#91
men hvordan bruger man det system
21. november 2004 - 20:16
#92
Ja, det siger jo alt ;O)
21. november 2004 - 20:17
#93
Som de skriver, du må kontakte dem på supportformularen for at få fileuploads aktiveret.
21. november 2004 - 20:20
#94
den skulle vel virke når jeg kan se mappen eller hvad.
21. november 2004 - 20:21
#95
skal vi ikke bare stoppe jeg siger mange tak for hjælpen kan du ikke lave et svar så skal du få point
21. november 2004 - 20:26
#96
Jo, jeg tror ikke du har mulighed for fileuploads, så længe du får: 'Fileupload er ikke ok' som resultat. Prøv at kontakte dem og få det aktiveret. Og tilføj gerne et tjek af filtypen som de osse foreslår.
21. november 2004 - 20:28
#97
22. november 2004 - 19:41
#98
detox vis du læse det her så fik jeg det til at virke på min ejen server
23. november 2004 - 20:45
#99
Ok, så skal du vel bare have aktiveret fileuploads på webhotellet.
Computerworld tilbyder specialiserede kurser i database-management