Avatar billede spm Nybegynder
31. juli 2003 - 15:13 Der er 10 kommentarer og
1 løsning

problemer med udtrækning af array

Hej.
Jeg har et script som uploader billeder, og gemmer billede navnet i en database. Dertil har jeg det sådan at man kan skrive en tekst til billedet.
mit upload script har jeg tyv stjållet fra php.net. og efter mine ændringer ser det sådan ud:

først vil jeg lige vise en side hvor jeg vælger billederne fra:
<form action="upload.php" method="post" enctype="multipart/form-data">
Send these files:<br>
  <input name="files[]" type="file"><input type="text" name="tekst[]"><br>
  <input name="files[]" type="file"><input type="text" name="tekst[]"><br>
  <input type="submit" value="Send files">
</form>
---------------------------------------
og selve upload.php ser sådanne ud:
<?
$path_to_file = '/var/homepages/peter/images/';
$files = $HTTP_POST_FILES['files'];
$tekst = $_REQUEST['tekst'];
if (!ereg("/$", $path_to_file))
    $path_to_file = $path_to_file."/";
    foreach ($files['name'] as $key=>$name) {
      if ($files['size'][$key]) {
    // clean up file name
    $name = ereg_replace("[^a-z0-9._]", "",
                  str_replace(" ", "_",
                      str_replace("%20", "_", strtolower($name)
                              )
                      )
                  );
    $location = $path_to_file.$name;
        while (file_exists($location))
      $location .= ".copy";
    copy($files['tmp_name'][$key],$location);
    unlink($files['tmp_name'][$key]);
    echo "\n
Nu er: $name. uploaded <br>";
     

 
include "db.php";
$dato = date("j F Y ");
mysql_query("INSERT INTO billede (billede, tekst,  dato) VALUES ('$name','$tekst','$dato')");
mysql_close($db);
    }
    }
?>

men når jeg så kigger i databasen kan jeg se at billedenavnet er kommet fint igennem, men der hvor tekste burde stå står der Array..
hvorfor????
Avatar billede erikjacobsen Ekspert
31. juli 2003 - 15:21 #1
Det er et array, dit $name. Du kan evt

  $name=$name['name'];

inden du skal til at fikse navnet.
Avatar billede spm Nybegynder
31. juli 2003 - 15:35 #2
Navnet / navnene kommer fint ind i databasen i hver sin tabel.
Det er teksten (billedeteksten) som giver problemer der ikke vil
Avatar billede detox Nybegynder
31. juli 2003 - 18:14 #3
Mangler du ikke nogen brackets her:
while (file_exists($location))
Avatar billede spm Nybegynder
31. juli 2003 - 21:30 #4
jeg ved det sq ikke..
jeg har bixet med det i laang tid nu.. tror snart jeg opgiver
Avatar billede detox Nybegynder
31. juli 2003 - 22:07 #5
Prøv så'n her:
--------------
<?
$path_to_file = 'upload/';
$files = $HTTP_POST_FILES['files'];
$tekst = $_REQUEST['tekst'];
if (!ereg("/$", $path_to_file))
include "db.php";
    $path_to_file = $path_to_file."/";
    $i=0;
    foreach ($files['name'] as $key=>$name) {
      if ($files['size'][$key]) {
    // clean up file name
    $name = ereg_replace("[^a-z0-9._]", "",
                  str_replace(" ", "_",
                      str_replace("%20", "_", strtolower($name))));
                      echo $name . "<br>";
    $location = $path_to_file.$name;
        while (file_exists($location)) {
      $location .= ".copy"; }
    copy($files['tmp_name'][$key],$location);
    unlink($files['tmp_name'][$key]);
    echo "\nNu er: $name. uploaded <br>";

$dato = date("j F Y ");
mysql_query("INSERT INTO billede (billede, tekst,  dato) VALUES ('$name','$tekst[$i]','$dato')");
$i++;
    }
    mysql_close($db);
    }
?>
Avatar billede detox Nybegynder
31. juli 2003 - 22:08 #6
Eller:
------
<?
$path_to_file = '/var/homepages/peter/images/';
$files = $HTTP_POST_FILES['files'];
$tekst = $_REQUEST['tekst'];
if (!ereg("/$", $path_to_file))
include "db.php";
    $path_to_file = $path_to_file."/";
    $i=0;
    foreach ($files['name'] as $key=>$name) {
      if ($files['size'][$key]) {
    // clean up file name
    $name = ereg_replace("[^a-z0-9._]", "",
                  str_replace(" ", "_",
                      str_replace("%20", "_", strtolower($name))));
                      echo $name . "<br>";
    $location = $path_to_file.$name;
        while (file_exists($location)) {
      $location .= ".copy"; }
    copy($files['tmp_name'][$key],$location);
    unlink($files['tmp_name'][$key]);
    echo "\nNu er: $name. uploaded <br>";

$dato = date("j F Y ");
mysql_query("INSERT INTO billede (billede, tekst,  dato) VALUES ('$name','$tekst[$i]','$dato')");
$i++;
    }
    mysql_close($db);
    }
?>
Avatar billede detox Nybegynder
31. juli 2003 - 22:13 #7
Hov det echo skulle ikke være der:
--------
<?
$path_to_file = '/var/homepages/peter/images/';
$files = $HTTP_POST_FILES['files'];
$tekst = $_REQUEST['tekst'];
if (!ereg("/$", $path_to_file))
include "db.php";
    $path_to_file = $path_to_file."/";
    $i=0;
    foreach ($files['name'] as $key=>$name) {
      if ($files['size'][$key]) {
    // clean up file name
    $name = ereg_replace("[^a-z0-9._]", "",
                  str_replace(" ", "_",
                      str_replace("%20", "_", strtolower($name))));
    $location = $path_to_file.$name;
        while (file_exists($location)) {
      $location .= ".copy"; }
    copy($files['tmp_name'][$key],$location);
    unlink($files['tmp_name'][$key]);
    echo "\nNu er: $name. uploaded <br>";

$dato = date("j F Y ");
mysql_query("INSERT INTO billede (billede, tekst,  dato) VALUES ('$name','$tekst[$i]','$dato')");
$i++;
    }
    mysql_close($db);
    }
?>
Avatar billede spm Nybegynder
31. juli 2003 - 22:35 #8
Du er sq en gutterman!!!!!!!
jeg måtte lige rode lidt rundt med det men så kom det!!
Tak..
smid lige et svar ind
Avatar billede detox Nybegynder
31. juli 2003 - 22:36 #9
c",)
Avatar billede spm Nybegynder
31. juli 2003 - 22:40 #10
du pår lige 10 ekstra med i posen :>
Avatar billede detox Nybegynder
31. juli 2003 - 22:46 #11
Jeg siger tak for point's
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