Ir para conteúdo
Fórum Script Brasil
  • 0

Pra Quem Entende Alguma Coisa Do Asssunto...


Error404

Pergunta

Pessoal...estou com um problema meio bizarro aqui... wacko.gif

É o seguinte, estou usando um código pra fazer upload. Sempre que eu tento setar o destino do arquivo enviado para a mesma pasta onde o script de upload está [./] o arquivo vai parar na raíz do servidor [c:\apache\]...

Por que isso? Meu apache é 2.0.48 e o meu php é o 4.3.6. Tudo funciona normal num servidor da web; aliás, em vários; testei em vários servidores e funciona normalmente.

Alguém já teve esse problema?

O código em questão é este:

<font face="verdana" size="1">

<form name="form" action='<?=$_SERVER[php_SELF]?>' method="post" enctype="multipart/form-data">

Arquivo: <input type="file" name="arquivo" style="border: solid 1px #000000"><br>

<input type="submit" value="testar" name="sent">

</form>

<?php

if($_POST[sent]){

echo "name: ".$_FILES[arquivo][name]."<br>";

echo "type: ".$_FILES[arquivo][type]."<br>";

echo "size: ".$_FILES[arquivo]."<br>";

echo "tmp_name: ".$_FILES[arquivo][tmp_name]."<br>";

echo "error: ".$_FILES[arquivo][error]."<br>";

move_uploaded_file($_FILES[arquivo][tmp_name],$_FILES[arquivo][name]) or die("Erro...");

}

?>

Caso ninguém tenha tido esse problema, teria como testar no servidor apache pra ver no que dá?

Obrigado a quem pode ajudar... cool.gif

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

/* Tó ai maluco :


ServerType standalone
ServerRoot "C:/apache"
PidFile logs/httpd.pid
ScoreBoardFile logs/apache_runtime_status
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MaxRequestsPerChild 0
ThreadsPerChild 50
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so
LoadModule php4_module C:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php4 .php .htm .php3 .inc .fire
AddType application/x-httpd-php-source .phps
ClearModuleList
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_isapi.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_headers.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c
ExtendedStatus On
Port 80
ServerAdmin server_admin@httpd.conf
ServerName localhost
DocumentRoot "C:/apache/www/"
<Directory />
Options FollowSymLinks MultiViews
AllowOverride None
</Directory>
<Directory "C:/apache/www/">
Options All MultiViews
AllowOverride AuthConfig FileInfo
Order allow,deny
Allow from localhost 127.0.0.1
</Directory>
<IfModule mod_userdir.c>
UserDir "C:/apache/users/"
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
UseCanonicalName On
<IfModule mod_mime.c>
TypesConfig conf/mime.types
</IfModule>
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error.log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
CustomLog logs/access.log common
ServerSignature On
<IfModule mod_alias.c>
Alias /icons/ "C:/apache/icons/"
<Directory "C:/apache/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /site/ "C:/www/phpwebsite_en/"
<Directory "C:/www/phpwebsite_en/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.php index.htm
</Directory>Alias /private/ "C:/private/"
<Directory "C:/php/private/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from localhost 127.0.0.1
</Directory>
Alias /public/ "C:/www/public/"
<Directory "C:/www/public/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.htm
</Directory>
Alias /phpdev/ "C:/php/"
<Directory "C:/php/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from localhost 127.0.0.1
DirectoryIndex index.htm
</Directory>
Alias /phpmyadmin/ "C:/www/phpmyadmin/"
<Directory "C:/www/phpmyadmin/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from localhost 127.0.0.1
DirectoryIndex index.php
</Directory>
Alias /AnalogX/ "C:/php/AnalogX/PHPconfig/"
<Directory "C:/php/AnalogX/PHPconfig/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from localhost 127.0.0.1
IndexIgnore phpconfu.exe
</Directory>
#manuals (if installed)
Alias /apache "C:/man/apache"
Alias /php "C:/man/php"
Alias /gtk "C:/man/gtk"
Alias /mysql "C:/man/mysql"
<Directory "C:/man">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from localhost 127.0.0.1
DirectoryIndex index.html index.html.var index.htm default.htm default.html
</Directory>
ScriptAlias /cgi-bin/ "C:/apache/www/cgi-bin/"
<Directory "C:/apache/www/cgi-bin">
<IfModule mod_perl.c>
Sethandler perl-script
PerlHandler Apache::Registry
PerlSendHeader On
</IfModule>
Options All MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</IfModule># End of aliases.
IndexOptions FancyIndexing FoldersFirst
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
AddDescription "GZIP compressed document" .gz
AddDescription "tar archive" .tar
AddDescription "GZIP compressed tar archive" .tgz
AddDescription "PHP PHP hypertext PreProcessor" .php
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
</IfModule>
<IfModule mod_mime.c>
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage já .já
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .sv
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866 .cp866
AddCharset ISO-8859-5 .iso-ru
AddCharset KOI8-R .koi8-r
AddCharset UCS-2 .ucs2
AddCharset UCS-4 .ucs4
AddCharset UTF-8 .utf8
<IfModule mod_negotiation.c>
LanguagePriority en da nl et fr de el it já kr no pl pt pt-br ru ltz ca es sv tw
</IfModule>
AddType application/x-tar .tgz
AddType text/html .shtml
AddHandler server-parsed .shtml
</IfModule>
<IfModule mod_setenvif.c>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
</IfModule>
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost 127.0.0.1
</Location>
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from localhost 127.0.0.1
</Location>
<IfModule mod_perl.c>
<Files ~ (\.asp)> 
SetHandler perl-script
PerlModule Apache::ASP
PerlHandler Apache::ASP
PerlSetVar Global .
</Files>
<Files ~ (\.pl)> 
Sethandler perl-script
PerlHandler Apache::Registry.
PerlSendHeader On
</Files>
PerlModule Apache::Registry
Alias /perl/ "C:/apache/perl/"
<Location /perl>
Sethandler perl-script
PerlHandler Apache::PerlRun
Options +ExecCGI
PerlSendHeader On
</Location>
PerlModule Apache::Hello
<Location /hello>
SetHandler perl-script
PerlHandler Apache::Hello
</Location>
</IfModule>
Alias /work/ "F:/apache/www/"
<Directory "F:/apache/www/">
Options All MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

o que faltou ai é porque ta comentado

T+

*/

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu, cara...mas não adiantou muita coisa...

O meu tá como o seu, não tem o que mudar, tirando as coisas diferentes que você tem instalado aí...

Aí também deve ser Linux, então não adianta muita coisa porque aqui é Windows 2000 pro mesmo...

Mais alguém aí tem o Apache 2.0.48 [ou 49] instalado em um Windows pra me ajudar? sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Eu testei com o move_uploaded_file() e funcionou perfeitamente... eu uso um servidor Apache 2.0.48 e PHP 4.3.5

Se esse script funciona em outros servidores, deve ser algum bug, ou alguma configuração no seu PHP que está fazendo ele se comportar assim... bom, não entendo muito, mas imagino que seja alguma coisa assim.

Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

É estranho, mesmo! blink.gif

Eu atualizei o meu PHP pra versão 4.3.6, e o script funcionou legal! Eu só alterei algumas coisas na sintaxe que tavam dando erro... coisas simples que eu acredito que não façam diferença alguma, como colocar aspas no índice do array: $_FILES['arquivo']['name']

O mais estranho é que ele funciona em outros servidores! Sobram poucas possibilidades... acho que é alguma incompatibilidade do win 2000, mesmo!

BEOC, o problema não está na versão do PHP!

Link para o comentário
Compartilhar em outros sites

  • 0

Então, cara... tava dando erro por causa dos '?

Estranho... nunca deu isso aqui... sempre foi tranquilo...

E é, cara...o copy() funciona, o move, não... e é só quando tento salvar na mesma pasta do script...então... deve ser algum bug scrots do windows 2000 mesmo... ele é cheio de incompatibilidades... pensando em mudar pro XP... logo que trocar de pc... smile.gif

BEOC... eu estou com as últimas versões de tudo...

Link para o comentário
Compartilhar em outros sites

  • 0

Pois é, ele dava o seguinte erro quando eu chamava, por exemplo, $_SERVER[php_SELF]:

Notice: Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in C:\Arquivos de programas\Apache Group\Apache2\htdocs\exemplos\php\upload.php on line 4

Mas isso não é nada sério, pois ele interpreta a variável. O problema é que, junto com a interpretação, vem a mensagem de erro... aí se eu colocar @$_SERVER[php_SELF], ele traz só caminho de onde se encontra o script... sem problemas.

Eu não me arrependo de ter mudado pro WinXP, exceto por um detalhe: não tem mais como fazer downloads de atualizações do windows se a versão for pirata. A microsoft barra dizendo que o serial é inválido e pede pra você entrar em contato com eles caso "suspeite que adquiriu um software pirata", hehehe.

Falou, velho!

Link para o comentário
Compartilhar em outros sites

  • 0

Só pra dizer, sobre o $_SERVER[php_SELF] dar erro, isso está explicado aqui: Manual do PHP: Linguagem->Tipos->Arrays

olhem o subtitulo: porque $foo[bar] está errado

tá falando que é questão de compatibilidade com versões futuras, e que então é "boas maneiras de programação" delimitar isso com aspas..

do manual:

Isto está errado, mas funciona. Então, porque está errado? A razão está neste código, que tem uma constante indefinida (bar) em vez de uma string ('bar' - repare nos delimitadores), e o PHP pode no futuro definir constantes que, infelizmente em seu código, podem ter o mesmo nome. Isto funciona, porque o PHP automaricamente converte uma string base (uma string não delimitada que não corresponde a nenhum símbolo conhecido) em uma string que contém a string base. Por exemplo, se não existir uma constante definida com o nome bar, então o PHP irá substituí-la pela string 'bar' e usá-la.

Nota: Isto não significa que você sempre deve delimitar as chaves nos arrays. Você não deve delimitar chaves que sejam constantes ou variáveis, porque isso vai impedir o PHP de interpretá-las.

Nota: Só para fixar, dentro de uma string delimitada por aspas, é válido não englobar índices de arrays com apóstrofos, de forma que "$foo[bar]" é válido

leia mais no link

wink.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...