26. december 2000 - 20:27Der er
73 kommentarer og 1 løsning
Fejl i upload script
Hvorfor for jeg følgende fejl: Warning: Unable to create \'http://ww.kyd.net/ctv/test.html\': No such file or directory in /www/kyd/ctv/formmail.php on line 198
Og ikke mindst hvordan for jeg det til at virke ??? Skal i have php dokumentet ???
// parse the form and create the content string which we will send function parse_form($array) { // build reserved keyword array $reserved_keys[] = \"MAX_FILE_SIZE\"; $reserved_keys[] = \"required\"; $reserved_keys[] = \"require\"; $reserved_keys[] = \"path_to_file\"; $reserved_keys[] = \"recipient\"; $reserved_keys[] = \"subject\"; $reserved_keys[] = \"bgcolor\"; $reserved_keys[] = \"text_color\"; $reserved_keys[] = \"link_color\"; $reserved_keys[] = \"vlink_color\"; $reserved_keys[] = \"alink_color\"; $reserved_keys[] = \"title\"; $reserved_keys[] = \"missing_fields_redirect\"; $reserved_keys[] = \"env_report\"; if (count($array)) { while (list($key, $val) = each($array)) { // exclude reserved keywords $reserved_violation = 0; for ($ri=0; $ri<count($reserved_keys); $ri++) { if ($key == $reserved_keys[$ri]) { $reserved_violation = 1; } } // prepare content if ($reserved_violation != 1) $content .= \"$key: $val\\n\"; } } return $content; }
// mail the content we figure out in the following steps function mail_it($content, $subject, $email, $recipient) { mail($recipient, $subject, $content, \"From: $email\\r\\nReply-To: email\\r\\nX-Mailer: DT_formmail\"); }
// take in the body building arguments and build the body tag for page display function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color) { if ($title) echo \"<title>$title</title>\"; if (!$bgcolor) $bgcolor = \"#FFFFFF\"; if (!$text_color) $text_color = \"#000000\"; if (!$link_color) $link_color = \"#0000FF\"; if (!$vlink_color) $vlink_color = \"#FF0000\"; if (!$alink_color) $alink_color = \"#000088\"; if ($background) $background = \"background=\\\"$background\\\"\"; echo \"<body bgcolor=\\\"$bgcolor\\\" text=\\\"$text_color\\\" link=\\\"$link_color\\\" vlink=\\\"$vlink_color\\\" alink=\\\"$alink_color\\\" $background>\\n\\n\"; }
// our mighty error function.. function print_error($reason,$type = 0) { build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color); // for missing required data if ($type == \"missing\") { ?> Indholdet blev ikke sendt pga. følgende årsager:<p> <ul><? echo $reason.\"\\n\"; ?></ul> Brug venligst tilbage knappen i browseren for at prøve igen.<? } else { // every other error ?> Indholdet blev ikke sendt pga. følgende årsager:<p> <? } echo \"<br><br>\\n\"; exit; }
// check for a recipient email address and check the validity of it // Thanks to Bradley miller (bradmiller@accesszone.com) for pointing // out the need for multiple recipient checking and providing the code. $recipient_in = split(\',\',$recipient); for ($i=0;$i<count($recipient_in);$i++) { $recipient_to_test = trim($recipient_in[$i]); if (!eregi(\"^[_\\\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\\\.)+[a-z]{2,3}$\", $recipient_to_test)) { print_error(\"<b>Gyldig e-mail adresse er krævet.($recipient_to_test) TO CONTINUE</b>\"); } }
// This is because I originally had it require but too many people // were used to Matt\'s Formmail.pl which used required instead. if ($required) $require = $required; // handle the required fields if ($require) { // seperate at the commas $require = ereg_replace( \" +\", \"\", $require); $required = split(\",\",$require); for ($i=0;$i<count($required);$i++) { $string = trim($required[$i]); // check if they exsist if((!(${$string})) || (!(${$string}))) { // if the missing_fields_redirect option is on: redirect them if ($missing_fields_redirect) { header (\"Location: $missing_fields_redirect\"); exit; } $require; $missing_field_list .= \"<b>Missing: $required[$i]</b><br>\\n\"; } } // send error to our mighty error function if ($missing_field_list) print_error($missing_field_list,\"missing\"); }
// check the email fields for validity if (($email) || ($EMAIL)) { $email = trim($email); if ($EMAIL) $email = trim($EMAIL); if (!eregi(\"^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$\", $email)) { print_error(\"Din <b>email adresse</b> er ugyldig\"); } $EMAIL = $email; }
// check zipcodes for validity if (($ZIP_CODE) || ($zip_code)) { $zip_code = trim($zip_code); if ($ZIP_CODE) $zip_code = trim($ZIP_CODE); if (!ereg(\"(^[0-9]{5})-([0-9]{4}$)\", trim($zip_code)) && (!ereg(\"^[a-zA-Z][0-9][a-zA-Z][[:space:]][0-9][a-zA-Z][0-9]$\", trim($zip_code))) && (!ereg(\"(^[0-9]{5})\", trim($zip_code)))) { print_error(\"Dit <b>postnummer</b> er udyldigt\"); } }
// check phone for validity if (($PHONE_NO) || ($phone_no)) { $phone_no = trim($phone_no); if ($PHONE_NO) $phone_no = trim($PHONE_NO); if (!ereg(\"(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)\", $phone_no)) { print_error(\"your <b>phone number</b> is invalid\"); } }
// check phone for validity if (($FAX_NO) || ($fax_no)) { $fax_no = trim($fax_no); if ($FAX_NO) $fax_no = trim($FAX_NO); if (!ereg(\"(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)\", $fax_no)) { print_error(\"your <b>fax number</b> is invalid\"); } }
// prepare the content $content = parse_form($HTTP_POST_VARS);
// check for a file if there is a file upload it if ($file_name) { if (!ereg(\"/$\", $path_to_file)) $path_to_file = $path_to_file.\"/\"; $location = $path_to_file.$file_name; copy($file,$location); unlink($file); $content .= \"Uploaded File: \".$path_to_file.$file_name.\"\\n\"; }
// if the env_report option is on: get eviromental variables if ($env_report) { $env_report = ereg_replace( \" +\", \"\", $env_report); $env_reports = split(\",\",$env_report); $content .= \"------ eviromental variables ------\\n\"; for ($i=0;$i<count($env_reports);$i++) { $string = trim($env_reports[$i]); if ($env_reports[$i] == \"REMOTE_HOST\") $content .= \"REMOTE HOST: \".$REMOTE_HOST.\"\\n\"; else if ($env_reports[$i] == \"REMOTE_USER\") $content .= \"REMOTE USER: \". $REMOTE_USER.\"\\n\"; else if ($env_reports[$i] == \"REMOTE_ADDR\") $content .= \"REMOTE ADDR: \". $REMOTE_ADDR.\"\\n\"; else if ($env_reports[$i] == \"HTTP_USER_AGENT\") $content .= \"BROWSER: \". $HTTP_USER_AGENT.\"\\n\"; } }
// if the subject option is not set: set the default if (!$subject) $subject = \"Sendt fra Kreidler-form\";
// send it off mail_it(stripslashes($content), stripslashes($subject), $email, $recipient);
// if the redirect option is set: redirect them if ($redirect) { header (\"Location: $redirect\"); exit; } else { print \"Mange tak\\n\"; }
// check for a file if there is a file upload it if ($file_name) { if (!ereg(\"/$\", $path_to_file)) $path_to_file = $path_to_file.\"/\"; $location = $path_to_file.$file_name; copy($file,$location); unlink($file); $content .= \"Uploaded File: \".$path_to_file.$file_name.\"\\n\"; }
Jamen det er ikke ctv biblioteket jeg givet skrive/upload rettigheder. Ctv er det jeg logger mig ind med det er ikke en mappe som jeg kan få egenskaber ud fra.
<?php // Den midlertidige fil får filnavnet angivet i <input name=\"userfile\"> // Max_file_size angiver den maximale filstørrelse i bytes, bør tjekkes på serversiden.
if (isset($userfile)) { // Hvis fil blev uploaded, hvis information om midlertidig fil. print \"Temporary filename: $userfile<br>\\n\"; print \"Original filename: $userfile_name<br>\\n\"; print \"Filesize: $userfile_size<br>\\n\"; print \"MIME type: $userfile_type<br>\\n\";
// Den midlertidige fil gemmes. // Husk at biblioteket skal CHMOD\'es 777. if ($userfile <> \"none\") { if (!copy($userfile,\"upload/$userfile_name\")) { print \"File failed to upload\"; } else { print \"File uploaded\"; } } }
?>
</body> </html>
1) Du kan kontrollere filstørrelsen i variablen $userfile_size
2) Biblioteket er i dette tilfælde /upload/. Dette kan selvfølgelig ændres eller sættes til en variabel. Husk at CHMOD\'e biblioteket.
Kender det ikke, men du kan sikkert højre klikke på den pågældene mappe, og så er der sikkert noget som hedder \"CHMOD\" eller \"attrib\" eller noget i den stil :)
Der er kun grund til at chmodde på Unix, da filer på Winbøvs ikke behøver at få rettigheder... de har ´hvad der svarer til 777 som standard -mener jeg :)
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.