Avatar billede mshenriksen Novice
24. november 2007 - 14:05 Der er 19 kommentarer og
1 løsning

Hjælp til upload-script fra one.com

Har fået et upload-script fra one.com, som burde virke i safe_mode, men jeg får en fejl i linje 17 i upload.php når jeg prøver.

Først scriptet fra one.com:

uploadform.php
<form action="upload.php" method="post" enctype="multi
part/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>


upload.php
<?php
//places files into same dir as form resides
foreach ($_FILES["pictures"]["error"] as
$key => $error) {
if ($error == UPLOAD_ERR_OK) {
move_uploaded_file(
$_FILES["pictures"]["tmp_name"][$key],
$_FILES["pictures"]["name"][$key]
) or die("Problems with upload");
}
}
echo "Your files, were uploaded succesfull";
echo "<br />";
echo "<a href='uploadform.php'>go back</a>";
?>



Mit forsøg ser således ud, først uploadform.php:

<?php require_once('../Connections/-------.php');
mysql_select_db($database_--------, $--------);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="../css/bodystyle.css" rel="stylesheet" type="text/css" />
<link href="../css/skriftstyle.css" rel="stylesheet" type="text/css" />
</head>
<body>
<span class="dagbogmenu">
<?php
if (isset($_FILES['billednavn'])) {
    print "Fil, der er blevet overført:  {$_FILES['billednavn']['name']}<p>\n";
$query = "INSERT INTO billeder SET billednavn='".$_FILES['billednavn']['name']."'";
$Result1 = mysql_query($query, $----------) or die(mysql_error());
}
if (isset($_FILES['billednavn'])){
$tempfile = $_FILES['billednavn']['tmp_name'];
$destination = "../billeder/galleri/{$_FILES['billednavn']['name']} ";
copy($tempfile, $destination);
}
?>

<form action="upload.php" method="post" enctype="multi
part/form-data">
<p>Pictures:
<input type="file" name="billednavn[]" />
<input type="submit" value="Send" />
</p>
</form>
</span>
</body>
</html>



Så kommer upload.php:

<?php require_once('../Connections/-------.php');
mysql_select_db($database_------------, $---------);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="../css/bodystyle.css" rel="stylesheet" type="text/css" />
<link href="../css/skriftstyle.css" rel="stylesheet" type="text/css" />
</head>

<body>
<span class="dagbogmenu">
<?php
//places files into same dir as form resides
foreach ($_FILES["billednavn"]["error"] as
$key => $error) {
if ($error == UPLOAD_ERR_OK) {

move_uploaded_file(
$_FILES["billednavn"]["tmp_name"][$key],
$_FILES["billednavn"]["name"][$key]
) or die("Problems with upload");
}
}
echo "Your files, were uploaded succesfull";
echo "<br />";
echo "<a href='uploadform.php'>go back</a>";
?>
 
</span>
</body>
</html>

Er der nogen som kan gennemskue, hvad jeg har gjort forkert?
Avatar billede mshenriksen Novice
24. november 2007 - 14:07 #1
Linien med fejl er: foreach ($_FILES["billednavn"]["error"] as
Hvis nogen skulle være i tvivl.
Avatar billede dkfire Nybegynder
24. november 2007 - 14:29 #2
Prøv at vise fejlbeskeden, det vil hjælpe en del mere.
Avatar billede mshenriksen Novice
24. november 2007 - 15:30 #3
Warning: Invalid argument supplied for foreach() in /customers/-------.dk/------.dk/httpd.www/admin/upload.php on line 17
Avatar billede dkfire Nybegynder
24. november 2007 - 16:38 #4
prøv at skrive:
print_r($_FILES['billednavn'])
die();
før linje 19, og skriv her hvad den skriver.
Avatar billede showsource Seniormester
24. november 2007 - 19:54 #5
Er det ikke fordi du bruger den forkerte upload.php fil?
I den første hedder feltet "pictures" og den anden "billednavn"
Avatar billede mshenriksen Novice
25. november 2007 - 18:02 #6
>>dkfire
Så skriver den:
Parse error: syntax error, unexpected T_EXIT in /customers/-------.dk/-------.dk/httpd.www/admin/upload.php on line 20
Avatar billede mshenriksen Novice
25. november 2007 - 18:08 #7
>>showsource
"pictures" er vel bare et navn. Man kan vel skrive hvad man vil bare at det referer til de rigtige steder.
Billednavn referer i mit script til text-feltet i formen eller et felt i min billed-tabel i phpmyadmin.
Avatar billede mshenriksen Novice
25. november 2007 - 18:14 #8
Jeg tror de beskriver lidt det samme problem på dette link:
http://php.syntaxerrors.info/index.php?title=Invalid_argument_supplied_for_foreach, men jeg forstår desværre ikke helt hvad de skriver.
Avatar billede dkfire Nybegynder
25. november 2007 - 18:45 #9
Ja okay, mangle selvfølgelig lige et ; efter print_r.

print_r($_FILES['billednavn']);
die();
Avatar billede mshenriksen Novice
25. november 2007 - 19:00 #10
Den skriver det samme:
Invalid argument supplied for foreach() in /customers/------------.dk/-------------.dk/httpd.www/admin/upload.php on line 17
Avatar billede dkfire Nybegynder
25. november 2007 - 19:24 #11
Hvordan ser din kode ud med print_r i ?
Avatar billede mshenriksen Novice
25. november 2007 - 19:38 #12
Nu har jeg lige leget lidt med det så billednavn er ændret til filnavn i det følgende, men det burde ikke betyde noget.

<?php require_once('../Connections/--------.php');
mysql_select_db($database_-------, $--------);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="../css/bodystyle.css" rel="stylesheet" type="text/css" />
<link href="../css/skriftstyle.css" rel="stylesheet" type="text/css" />
</head>

<body>
<span class="dagbogmenu">
<?php
//places files into same dir as form resides
foreach ($_FILES["filnavn"]["error"] as
$key => $error)
print_r($_FILES['filnavn']);
die();
{

if ($error == UPLOAD_ERR_OK) {

move_uploaded_file(
$_FILES["filnavn"]["tmp_name"][$key],
$_FILES["filnavn"]["name"][$key]
) or die("Problems with upload");
}
}
echo "Your files, were uploaded succesfull";
echo "<br />";
echo "<a href='uploadform.php'>go back</a>";
?>
 
</span>
</body>
</html>
Avatar billede dkfire Nybegynder
25. november 2007 - 19:48 #13
Nej nej nej, det var bestemt ikke det jeg sagde du skulle gøre.
Du skulle sætte det ind FØR din foreach.

<?php
print_r($_FILES['filnavn']);
die();
//places files into same dir as form resides
foreach($_FILES['filnavn']['error'] as $key => $error)
{

if ($error == UPLOAD_ERR_OK) {

move_uploaded_file(
$_FILES["filnavn"]["tmp_name"][$key],
$_FILES["filnavn"]["name"][$key]
) or die("Problems with upload");
}
}
echo "Your files, were uploaded succesfull";
echo "<br />";
echo "<a href='uploadform.php'>go back</a>";
?>
Avatar billede mshenriksen Novice
25. november 2007 - 19:57 #14
Nå nå nå, men det var altså før linje 19.
Men nu kom der en besked:
Array ( [name] => Blokarts.jpg [type] => image/pjpeg [tmp_name] => /tmp/phpa1kktz [error] => 0 [size] => 16215 )
Avatar billede dkfire Nybegynder
25. november 2007 - 20:10 #15
Ja det tænkte jeg nok, synes der var et eller andet galt i at tro at $_FILES['filnavn']['error'] er et array.
Så kan jeg også se at du har glemt [] efter filnavn i din form, men det gør ikke noget så længe du kun vil uploade en fil.

Hvis du kun vil uploade en fil:
<?php

if(isset($_FILES['filnavn']))
{
    if( $_FILES['filnavn']['error'] == 0)
    {
        move_uploaded_file($_FILES["filnavn"]['tmp_name'], $_FILES['filnavn']['name']) or die("Problems with upload");
        echo "Din fil {$_FILES['filnavn']['name']} er uploaded";
        echo '<br />';
        echo '<a href="uploadform.php">go back</a>';
    }
}else
{
    echo 'Din fil blev ikke gemt, prøv igen';
    echo '<a href="uploadform.php">go back</a>';
}
?>
Avatar billede dkfire Nybegynder
25. november 2007 - 20:12 #16
Forresten har godt set jeg skrev forkert ang. linje 19, my bad. Mente linje 17, men pyt med det ;-)
Avatar billede mshenriksen Novice
25. november 2007 - 20:23 #17
No worries, jeg beklager at jeg ikke forstår mig på koder. Jeg bliver også nød til at spørge, det du har skrevet, er det noget jeg skal sætte ind i upload.php i stedet for noget af det andet?
Avatar billede dkfire Nybegynder
25. november 2007 - 20:30 #18
Ja i stedet for at det andet php som one.com har givet dig. ( Fatter ikke de kan give dig sådan noget dårlig kode )
Kan lige prøv med til kommentarer til:
<?php

if(isset($_FILES['filnavn'])) // Hvis der er forsøgt uploaded en fil
{
    if( $_FILES['filnavn']['error'] == 0) // Hvis ingen fejl ved upload
    {
        move_uploaded_file($_FILES["filnavn"]['tmp_name'], $_FILES['filnavn']['name']) or die("Problems with upload");
        echo "Din fil {$_FILES['filnavn']['name']} er uploaded";
        echo '<br />';
        echo '<a href="uploadform.php">go back</a>';
    }
}else
{
    echo 'Din fil blev ikke gemt, prøv igen';
    echo '<a href="uploadform.php">go back</a>';
}
?>
Avatar billede mshenriksen Novice
25. november 2007 - 20:50 #19
Der sker desværre stadig ingen ting, der kommer sort skærm efter jeg har trykket på upload.
Har desuden indsat [] i uploadform.php:
<?php

if (isset($_FILES['filnavn'])) {
    print "Fil, der er blevet overført:  {$_FILES['filnavn']['name']}<p>\n";
       
$query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'";
   
    $Result1 = mysql_query($query, $evaogmartin) or die(mysql_error());
}

if (isset($_FILES['filnavn'])){
$tempfile = $_FILES['filnavn']['tmp_name'];
$destination = "../billeder/galleri/{$_FILES['filnavn']['name']} ";
copy($tempfile, $destination);

}

?>



<form action="upload.php" method="post" enctype="multipart/form-data">
<p>Pictures:
<input name="filnavn[]" type="file" id="filnavn" />

<input type="submit" value="Send" />
</p>
</form>


Bliver nød til at afbryde for idag, men ser på det igen imorgen. Indtil videre mange tak for hjælpen, det er irriterende de ikke selv kan give mere support.
Avatar billede mshenriksen Novice
01. december 2007 - 15:06 #20
Løsningen blev at bruge phpupload 1.01 som bestod af flere filer jeg hentede ned i en mappe og rette lidt i teksten.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester