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

Erro Ao Criar Pastas Quando Usado Loop


hipnos na area

Pergunta

Eu criei esse código para poder criar várias pastas ao mesmo tempo a partir de um arquivo.

arquivo.txt

imagens
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 erro

Warning: mkdir() [function.mkdir]: Invalid argument in C:\Arquivos de programas\xampp\htdocs\Criar.php on line 9

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

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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 erro

tipo:

<?

$value = "imagens";

mkdir("salas/html/".$value, 0777);

?>

E mais uma pergunta:

Será que eu não tenho que usar algum comando de fechamento

tipo closedir()-não estou dizendo que é essa função só to dando uma ideia-

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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 inicio

então é só usar o comando trim()

Editado por hipnos na area
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,3k
    • Posts
      652,1k
×
×
  • Criar Novo...