hipnos na area Postado Outubro 22, 2006 Denunciar Share Postado Outubro 22, 2006 Eu criei esse código para poder criar várias pastas ao mesmo tempo a partir de um arquivo.arquivo.txtimagens mensagens videos spams html Criar.php <? if(!$_POS["lista"] || !$_POS["enviar"] || !$_POS["diretorio"]){ }else{ $arquivo = "sampa.txt"; $ArraySalas = file($_POST["lista"]); while(list(,$value)=each($ArraySalas)) { echo $value; mkdir("pasta/".$_POST["diretorio"]."/".$value, 0777); echo"<br />"; } } ?> <form action="<?=$_SERVER["PHP_SELF"]?>" method="post"> <input type="file" name="sala"> <select name="tema"> <? $dh = opendir($dir = "./pastas/"); while (false !== ($filename = readdir($dh))) { if (is_dir("$dir$filename") && ! ($filename == '.' || $filename == '..')) { ?> <option value="<? echo $filename;?>"><? echo $filename?></option> <? } } ?> </select> <input type="submit" name="enviar" value=" Criar Salas "> </form>Mensagem de erroWarning: mkdir() [function.mkdir]: Invalid argument in C:\Arquivos de programas\xampp\htdocs\Criar.php on line 9Se eu não uso o "While" ele cria normalmente algum sabe o que está ocorrendo? :blink: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Outubro 22, 2006 Denunciar Share Postado Outubro 22, 2006 Parece estar tudo correto. Vamos tentar mudar algumas coisas:1-) Talvez declarando as duas variáveis da list, dê certo.while(list($var, $value)=each($ArraySalas)) {2-) Tente colocar barra (/) após a variável $value: mkdir("salas/".$_POST["diretorio"]."/".$value."/", 0777); Não tenho certeza de que poderá funcionar, mas não custa nada fazer um teste. :)[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hipnos na area Postado Outubro 22, 2006 Autor Denunciar Share Postado Outubro 22, 2006 Parece estar tudo correto. Vamos tentar mudar algumas coisas:1-) Talvez declarando as duas variáveis da list, dê certo.while(list($var, $value)=each($ArraySalas)) {Esse não é o erro pois eu também usei for ao invés de while e acusava o mesmo erro...Vou testar tua segunda alternativa, apesar de que quando não listo em uma for e em um while não ocorre errotipo:<?$value = "imagens";mkdir("salas/html/".$value, 0777);?>E mais uma pergunta:Será que eu não tenho que usar algum comando de fechamentotipo closedir()-não estou dizendo que é essa função só to dando uma ideia- Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Outubro 22, 2006 Denunciar Share Postado Outubro 22, 2006 Como o problema está sendo na hora de criar o diretório, acho pouco provável o problema ser devido à falta do closedir(). Você deve fechar o diretório após abri-lo com opendir(), que foi chamado após o mkdir().Mas tente colocar a barra e/ou usar opendir(), quem sabe resolva.[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 hipnos na area Postado Outubro 22, 2006 Autor Denunciar Share Postado Outubro 22, 2006 (editado) Kara eu disse que não era essa função foi só uma ideia entendeu?tipo closedir()-não estou dizendo que é essa função só to dando uma ideia-----------------[atualizado]o problema é que "listar" coisas em FORs e WHILEs gera um espaço no final ou no inicioentão é só usar o comando trim() Editado Novembro 1, 2007 por hipnos na area Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
hipnos na area
Eu criei esse código para poder criar várias pastas ao mesmo tempo a partir de um arquivo.
arquivo.txt
Criar.phpMensagem de erro
Se eu não uso o "While" ele cria normalmente algum sabe o que está ocorrendo?
:blink:
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.