Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: ongelma tiedoston lähetyksessä

lahtis [24.01.2004 03:53:17]

#

Ongelma olisi että tämä ei lähetä liitetiedostoa, kaikki muut kylläkin tulevat os. en löydä virhettä, jos joku viittisi katsoa...

liite.php

<?php
$path_to_file = '/liitteet';

 // file upload code
 // it expects the inputs of type file to be named 'files[]'
 // it will work with an arbitrarily large number of files
 $files = $HTTP_POST_FILES['files'];
 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";
       if($name > 1000000) {
        print "Tiedosto oli liian suuri!";
        $virhe=1;
            }
       else
       {
       copy($files['tmp_name'][$key],$name);
       unlink($files['tmp_name'][$key]);
     $content .= "Uploaded File: ".$location."\n";
       $thanks .= "\n<br>Lomakkeen lähetys onnistui!: $name.";
       }
    }
 }
 print "<h1>Tietojen lähetys</h1>\n";
 if ($virhe != 1)
 {
  print $thanks;
 }
 else
 {
  print "Didn't work out!";
 }

$to = 'lahtis@mbnet.fi';
$from = 'autoreply@yourhost.www';  //Check if we have something POSTed by the form.
if (isset($HTTP_POST_VARS)){    //Start with an empty body for the mail message
$body = '';  //Iterate through all the POSTed variables, and add them to the message body.
while (list($key, $value) = each($HTTP_POST_VARS)){
$body .= $key . ' = ' . $value . "\r\n";
} //Build up some nice From/Reply Headers
$ab = "Tiedosto: http://koti.mbnet.fi/lahtis/test/anssi/hoidaposti.php".$name;
$body .= $ab;
$headers = "From: $from\r\n";
$headers .= "Reply-To: $from\r\n"; //Mail the message out. //Requires setting php3.ini sendmail path as per instructions
$success = mail($to, "Posted " . date("m/d/Y"), $body, $headers); //Always check return codes from functions.             if ($success){
                echo "<B><CENTER>Kiitos, kirjaamme ilmoituksesi</CENTER></B>\n";
} else{
echo "<CENTER><B>Virhe</B>:  Viestiäsi ei voitu toimittaa.<BR>Contact $from</CENTER>\n";
}

Turambar [25.01.2004 11:47:14]

#

En tuota koodia sen syvällisemmin tutkinut, mutta yksi virhe osui silmiini:

$HTTP_POST_FILES['files']

Eikös tuo sisältö pitäisi lukea nykyään $_FILES-muuttujasta tyyliin:

$files = $_FILES['filunnimi'];

Ja syy siihen, että en viitsinyt lukea tuota sen enempää on se että koodia ei ole sisennetty, eikä se ole kooditagien sisässä.

EDIT: Ja nyt huomasin että antamasi koodin lopussa lukee:

lainaus:

//Requires setting php3.ini sendmail path as per instructions

Niin eikös tuo mahda tarkoittaa, että tämä sinun koodisi on php3:sta? Luulisin että sinulla on jokin php4-versio, ilmankos ei toimikaan.

lahtis [26.01.2004 07:50:29]

#

kiitos. Eiköhän tuo tästä...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta