Daemonarch Posted May 8, 2008 at 08:54 PM Report Share #184056 Posted May 8, 2008 at 08:54 PM Boas sou novo no fórum e tenho aqui um pequeno GRANDE problema. estou a implementar um sistema de envio de imagens através da web, a base do projecto é o flex a quando do login o flex faz a chamada ao php para validar o nome e pass se aceite passa para o painel de upload que é efectuado através do php. as pastas dos clientes é gerada assim que eles se logam, a variável da directoria criada é passada através da session para o upload.php que deposita as imagens nas pastas correspondentes, o problema é esse mesmo é que a session não é passada para o upload.php. resultado a pasta dos clientes é criada mas sem nada lá dentro. antes de dizerem para por o start_session() no inicio dos php, vou já adiantado serviço...eles estão lá! se alguém teve ou tem um problema parecido avise claro quem souber o porquê disso...também pode ajudar Abraços Link to comment Share on other sites More sharing options...
softklin Posted May 8, 2008 at 08:59 PM Report Share #184057 Posted May 8, 2008 at 08:59 PM Bem-vindo 😄 Atenção, não é start_session, mas session_start Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
Daemonarch Posted May 8, 2008 at 09:01 PM Author Report Share #184059 Posted May 8, 2008 at 09:01 PM isso mesmo troquei a ordem eheheh se quiserem ver o código....é capaz de ajudar não? Link to comment Share on other sites More sharing options...
softklin Posted May 8, 2008 at 09:03 PM Report Share #184063 Posted May 8, 2008 at 09:03 PM Sim, pode ajudar, mas dá alguma mensagem de erro ou assim? é colocado o cookie com a sessão? Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
Daemonarch Posted May 8, 2008 at 09:09 PM Author Report Share #184066 Posted May 8, 2008 at 09:09 PM não tem cookie, porque senão qualquer utilizador que tivesse acesso ao pc poderia entrar. esqueci-me de mensionar que sou iniciante nisto do php, tenho aprendido com exemplos práticos e trabalhos que faço lá no trabalho. aqui vai o código. login.php <?php session_start(); //ligar á Base de dados $con = mysql_connect("localhost","nome","passs"); //seleciona a base de dados mysql_select_db("xxxxxxx", $con) or print(mysql_error()); //apanha a informação passada do flex para as variáveis $usuario = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); //Query á base de dados para verificar se combinação é válida. $sql = "SELECT * FROM `membros` WHERE username = '$usuario' AND password = '$password'"; $result = mysql_fetch_array(mysql_query($sql))or print(mysql_error()); $verif=mysql_query("SELECT count(*) AS username FROM `membros` WHERE username='$usuario'")or die(mysql_error()); if(mysql_result($verif,0,'username')){ $_SESSION['pasta_usu']=$usuario; $_SESSION['username'] = $usuario; }else{ echo 'Usuário inexistente.'; unset($_SESSION['pasta_usu']); unset($_SESSION['username']); } (!file_exists('users')) ? (mkdir('users',0755)) : ''; if(isset($_SESSION['pasta_usu'])){ $pasta=$_SESSION['pasta_usu']; $dir=(!file_exists("users/$pasta/")) ? (mkdir("users/$pasta/",0755)) : ''; ($dir) ? (print('Pasta com o nome'.$_SESSION['pasta_usu'].'Criada com sucesso.')) : print 'Erro ao criar a pasta.'; }else{ echo 'Não foi atribuido o nome da pasta.'; } //começa o outputting para o XML $output = "<loginsuccess>"; //se a query retornar true, o output <loginsuccess>yes</loginsuccess> else output <loginsuccess>no</loginsuccess> if(!$result) { $output .= "no"; }else{ $output .= "yes"; } $output .= "</loginsuccess>"; //output todo o XML print ($output); ?> upload.php <?php session_start(); if(isset($_SESSION['username']) and isset($_SESSION['pasta_usu'])){ $pasta2=$_SESSION['pasta_usu']; $upload_dir="users/$pasta2/"; $temp_name = $_FILES['Filedata']['tmp_name']; $file_name = $_FILES['Filedata']['name']; $file_name = str_replace("\\","",$file_name); $file_name = str_replace("'","",$file_name); $file_path = $upload_dir.$file_name; $result = move_uploaded_file($temp_name, $file_path); }else{ echo 'Sem sessões.'; } //envio de mail caso seja feito upload /* if ($upload_dir) { $to = "xxx@xxxx.com"; $subject = "Upload efectuado"; $email = "site imagem multimedia" ; $message = "o cliente xxxx efectuou um upload" ; $headers = "From: $email"; $sent = mail($to, $subject, $message, $headers) ; */ ?> penso que os php estejam correctos, pelo menos o login está pq já fiz um pequeno html e retorna tudo bem não dá erro nenhum. very wierd Link to comment Share on other sites More sharing options...
softklin Posted May 8, 2008 at 09:16 PM Report Share #184069 Posted May 8, 2008 at 09:16 PM Se o primeiro está bem, também nao me pareceu ver qualquer erro... O segundo, podes confirmar se o nome do campo onde é feito o upload de ficheiro, tem o nome Filedata, que é o que está no upload.php (case sensitive) Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
Daemonarch Posted May 8, 2008 at 09:32 PM Author Report Share #184072 Posted May 8, 2008 at 09:32 PM sim está correcto o Filedata é por definição o que o flex manda para fora e eu não mexi nisso. juro não percebo pq isto está a acontecer Link to comment Share on other sites More sharing options...
softklin Posted May 9, 2008 at 01:06 PM Report Share #184151 Posted May 9, 2008 at 01:06 PM Por baixo de onde recebes o ficheiro (no upload.php, antes das linhas $_FILES[...]), tenta ver o conteudo dos arrays, com a instrução print_r($_FILES); Deve-te aparecer algumas infromações uteis, e deve aparecer os caminhos do ficheiro, temporários, etc... Caso a chave 'error' tenha algo diferente de 0, vê a página de erros de upload de ficheiros do php. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
Daemonarch Posted May 9, 2008 at 01:40 PM Author Report Share #184161 Posted May 9, 2008 at 01:40 PM suponho que seja isto if(isset($_SESSION['username']) and isset($_SESSION['pasta_usu'])){ $pasta2=$_SESSION['pasta_usu']; $upload_dir="users/$pasta2/"; print_r($_FILES); $temp_name = $_FILES['Filedata']['tmp_name']; $file_name = $_FILES['Filedata']['name']; isso irá dar-me algum ficheiro no servidor ou é no flex que me irá aparecer a informação? Link to comment Share on other sites More sharing options...
Daemonarch Posted May 9, 2008 at 02:12 PM Author Report Share #184167 Posted May 9, 2008 at 02:12 PM Array ( [Filedata] => Array ( [name] => zecarioca.jpg [type] => image/jpeg [tmp_name] => /tmp/phpaCBMF3 [error] => 0 => 8561 ) ) ok, agora é que isto ficou confuso (pelo menos para mim) vou passar a explicar. como o flex não retornava nada resolvi criar um pequeno html para fazer o upload. ora como é através do flex que as pastas são criadas, fiz o login para ele criar a pasta do cliente o qual o fez sem qualquer problema, depois disto foi fazer o upload com o html e como se pode ver pelo resultado ele fez o upload sem problemas, na pasta correcta. Pelos vistos ele está a gravar sem problema a session, pelo que entendi. quando apago a pasta do cliente e mando fazer o upload dá isto Array ( [Filedata] => Array ( [name] => zecarioca.jpg [type] => image/jpeg [tmp_name] => /tmp/phpMIEIi0 [error] => 0 => 8561 ) ) Warning: move_uploaded_file(users/joao/zecarioca.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/imagemm/public_html/php/upload2.php on line 14 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpMIEIi0' to 'users/joao/zecarioca.jpg' in /home/imagemm/public_html/php/upload2.php on line 14 o que tb me parece correcto pq a pasta não existe. o que dizes disto? desde já Obrigado pela paciencia Abraço Link to comment Share on other sites More sharing options...
softklin Posted May 9, 2008 at 05:27 PM Report Share #184197 Posted May 9, 2008 at 05:27 PM tenta por o caminho absoluto para o directorio de destino, ou seja $upload_dir="/home/imagemm/public_html/users/$pasta2/"; Acerta o caminho conforme no teu servidor, pressupus que fosse esse 😄 e se necessário, dá as respectivas permissões Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
Daemonarch Posted May 12, 2008 at 03:08 PM Author Report Share #184686 Posted May 12, 2008 at 03:08 PM Boas depois de um fim de semana fora cá voltei Nada feito continua com o mesmo problema. depois de passar a manhã a investigar acho que o problema está no flex...em como passar a variavel nome de um componente para outro componente. penso que seja isso. Já agora alguem sabe alguma coisa sobre isso? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now