Avatar billede darkside Nybegynder
04. juli 2001 - 17:40 Der er 9 kommentarer og
1 løsning

Why?!?

Hey der, jeg har sat og leget lidt med en PHP shop og har da også fået det meste til at virke..
Det sidste problem ligger i den fil der skal uploade billederne til shoppen, den melder fejl i linje 31 som er:

$data = addslashes(fread(fopen($form_data, \"r\"), filesize($form_data)));

Hele stykket ser sådan ud:

if(!($form_data == \'none\')){
            $data = addslashes(fread(fopen($form_data, \"r\"), filesize($form_data)));
            // Groesse des ursprünglichen Bildes ermitteln
            $groesse = getimagesize($form_data);
            $breite=$groesse[0];
            $hoehe=$groesse[1];
            $neueBreite=getThumbnail_Breite(); //Funktion in SHOP_ADMINISTRATION.php definiert
            $neueHoehe=intval($hoehe*$neueBreite/$breite);

/DarkSide

Avatar billede darkside Nybegynder
04. juli 2001 - 17:48 #1
Hov fejlen ser sådan ud:
Warning: fopen(\"\",\"r\") - Inappropriate ioctl for device in /net/users/axx/444/xxxxx/www/xxxx/xxx/xxxx/bild_up.php
Avatar billede jakoba Nybegynder
04. juli 2001 - 18:32 #2
afslut din html kommandoer. der manger </head> og </table> og sikkert flere.
Avatar billede jakoba Nybegynder
04. juli 2001 - 18:33 #3
hovsa. ovenstående var til et helt andet spørgsmål. sorry.
Avatar billede darkside Nybegynder
04. juli 2001 - 18:33 #4
HTML?!
Hvor?
Avatar billede camraz Nybegynder
04. juli 2001 - 18:35 #5
Hvad indeholder variablen $form_data?
Avatar billede darkside Nybegynder
04. juli 2001 - 18:37 #6
form_data, er et textfelt hvor man kan vælge en billede fil.
Avatar billede erikjacobsen Ekspert
04. juli 2001 - 18:39 #7
har du også en

  <form...>
  <input type=\"file\" name=\"form_data\">
  </form>

?
Avatar billede erikjacobsen Ekspert
04. juli 2001 - 18:40 #8
Har du den kode med if(!($form_data == \'none\')){ ... } stående i en funktion?
Avatar billede darkside Nybegynder
04. juli 2001 - 18:42 #9
Hele koden kan ses her:
http://www.vario.dk/source.phps
Avatar billede BacceDK Juniormester
04. juli 2001 - 21:00 #10
en lille hjælp der måske kan bruges ??
taget fra faq på Azero som jo er serveren i dette tilfelde..!

PHP file upload support for Unix
Husk at når du giver en bruger mulighed for at uploade til dit webhotel, kan han uploade kode der giver ham de samme muligheder du som administrator har hvis han kan browse filen bagefter. Det anbefales derfor på det kraftigste at du kun giver mulighed for at uploade til /db folderen, da den ikke er synlig via internettet.

Skal du uploade til en folder der umiddelbart kan browses via internettet, er det derfor vigtigt at du checker på endelsen og f.eks. kun tillader filer der ender på .jpg eller .gif. En bedre løsning er at lade brugere uploade til /db folderen, og derefter bruge programmeringskode til at flytte filen hen et sted hvor den må ligge, samtidig med at du checker endelsen.

PHP file upload er som standard slået fra på de nyeste unixwebservere, f.eks. Hanne og Gudrun. Det skyldes bl.a. problemer med rettigheder af filer uploadet med file upload, og du skal kontakte os via supportformularen hvis du vil have det slået til.

PHP fileupload er desuden slået fra som standard da det skal omgås med varsomhed og en vis dygtighed. En ondskabsfuld bruger kan muligvis uploade et script til at kigge i bl.a. din source kode, der f.eks. kan indeholdende MySQL kodeord og andet privat information. Forvent det værste af dine brugere, og husk altid som minimum at checke at den uploadede fil ikke er et script, dvs. ender på pl/cgi/py/php eller php3. Det er der desværre _ikke_ taget højde for i nedenstående script.

Har man adgang til php fileupload skal være opmærksom på bl.a. følgende:

Biblioteket /ftpbrugernavn/phpupload/ skal eksistere i ens ftpbibliotek, og have rettighederne 777.
Det bibliotek som man kopierer/flytter den uploadede fil til skal være 777, dvs biblioteket \"moveuploadsto\" i eksemplet nedenfor.
Man kan sætte umask(000) så den uploadede fil bliver 777. Husk at tallet i umask kan opfattes som om det trækkes fra 777 og resultat er den værdi som filen får. Dvs umask(011) giver en uploadet fil værdien 766.
VIGTIGT: ejeren af den uploadede fil vil være webserver brugeren og derfor kan man _ikke_ åbne den uploadede fil gennem et andet PHP script, heller ikke selvom filen er 777. Åbning af filen tillades ikke da man ikke selv \"ejer\" den uploadede fil. Der er pt _ingen_ løsning på dette problem.
Ejerskabet af filer uploadet gennem PHP bliver sat korrekt i løbet af natten. Derved bliver dit diskforbrug på serveren også korrekt i løbet af natten. Der er pt ingen måde at se hvor meget plads man bruger på serveren, se evt unix supporten.
Lidt kode eksempel, tilpas til dit eget site:

<html><body>

<?
if (is_uploaded_file($HTTP_POST_FILES[\'userfile\'][\'tmp_name\']))
{
  umask(033);
  copy($HTTP_POST_FILES[\'userfile\'][\'tmp_name\'], \"path/\".$HTTP_POST_FILES[\'userfile\'][\'name\']);
  // Windows brugere, erstat \"path\" med \"d:\\\\home\\\\FtpBrugernavn\\\\db\\\\\"
}
else
{
  echo \"Possible file upload attack: filename \", $HTTP_POST_FILES[\'userfile\'][\'name\'];
}
?>

<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"upload.php\" METHOD=\"POST\">
<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"2000000\">
Send this file: <INPUT NAME=\"userfile\" TYPE=\"file\">
<INPUT TYPE=\"submit\" VALUE=\"Upload\">
</FORM>
   
</body></html>

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