Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera e o seguinte estou com uma duvida, Eu estou criando um painel de controle com que ele pode criar uma pasta que chamo de Match ID que e só números, E no Painel de Controle o usuário loga e vai para a pagina criar sua pasta, Eu criei para cada Usuário sua pasta que fica localizado mais ou menos assim /Usuarios/Admin/Match ID este e o diretório, Só que preciso colocar no nome do lugar onde esta Admin o nome do usuário que esta na sessão, Entenderão ?
Abaixo tem o código da ação.
<?php
session_start();
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null)
{
mkdir("Usuarios/<?php echo $_SESSION['user_name']; ?>/Match ID/$nomePasta");
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
}
else
{
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}
?>
Como podem ver eu coloquei este código "Usuarios/<?php echo $_SESSION['user_name']; ?>/Match ID/$nomePasta" Só que da erro nesta linha ai, Só que da este erro.
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/u146958875/public_html/cloud/views/acao.php on line 7
Por favor preciso de ajuda de vocês a resolver este problema.
Vlw amigão deu certo -,
Resolveu, Amigo você pode min ajudar tbm em outra parte ?
E o mesmo esquema só que na minha parte de acao.php quero que ele verifica antes de criar a pagina se existe este pagina que ele digito, se tiver nós diretórios Usuarios/.$_SESSION['user_name']."/Match ID/ Como todos os usuários vão ter a sua pasta e preciso que ele verifique se tem esta pasta no diretório do João do Admin do Pedro e por ai vai, os diretórios base que faço são as mesmas coisas.
Usuarios/Admin/Match ID
Usuarios/Joao/Match ID
Usuarios/Pedro/Match ID
O que você poderia fazer é o seguinte...
Quando gerar a pasta colocar um uniqd e md5 do time() ao lado do nome
exemplo:
$usercode = uniqid(md5(microtime()));
mkdir("Usuarios/".$_SESSION['user_name']."_".$usercode."/Match ID/$nomePasta");
Obviamente que teria que salvar o código gerado pelo microtime na base de dados também, daí você criaria uma coluna específica para ela.
Já seria uma boa forma de evitar o que quer que evite. rs
Não entendi muito mais, assim o que isto ira fazer ?
Criar uma senha ?
OBS: Da erro na linha. 7
Código todo:
>
<?php
session_start();
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null)
{
mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/$nomePasta");
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
}
else
{
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}
?>Irá gerar um md5 com o micro tempo usado na hora.
Tipo
Array
(
[microtime] => 0.34662200 1384009173
=> uniqid(md5((0.34662200 1384009173)))
[uniqidmd5] => d41d8cd98f00b204e9800998ecf8427e527e4dd554a5a
)Hum, e assim ele ira evitar de criar as pastas iguais ?
Na minha form para criar a pasta só pode utilizar 4 Dígitos e só números,
E que sou novato ainda '-'
>
Hum, e assim ele ira evitar de criar as pastas iguais ?
Na minha form para criar a pasta só pode utilizar 4 Dígitos e só números,
E que sou novato ainda '-'
Uai, o código que você irá gerar é pelo php, a outra forma que você pode fazer é assim que adicionar o usuário na base de dados é pegar o id dele e criar a pasta... daí ficaria tipo joao_1, joao_2, joao_3...
entendeu?
Mais ou menos '-'
E que assim amigo eu preciso fazer com que ele crie pastas diferente, Por que eu vou criar um programa que faz com que conecte a este arquivo e envie dados para ele.
Você utiliza uma base de dados para gravar os dados da conta, correto?
sua tabela tem a coluna id com o auto increment, pegue o valor dela e acrescente ao nome da pasta do usuário.
Hum, Como sou novato nesta parte de PHP, e o seguinte sim e coreto tem o banco de dados onde fica salvo e tem o id de cada, Mais ai que pelo o que entende que vocês esta falando e para min colocar no nome da pasta do usuário só e o que eu preciso que quando ela cria a Pasta ou antes que crie a pasta verifica se existe em todos os diretórios pode ser assim se tem o numero desta pasta igual a ele se tiver não crie e para, e manda um echo falando que esta pasta existe.
Faça a busca após o registro do usuário e veja se existe o diretório referente as informações dele
if(!is_dir('Usuarios/.'$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/)'.$nomePasta){ mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/$nomePasta");
}Hum vou testar aqui,
Olha só eu fiz desta maneira aqui mais da erro.
<?php
session_start();
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null)
{
mkdir("Usuarios/".$_SESSION['user_name']."/Match ID/$nomePasta_.$_SESSION['user_id'].");
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
}
else
{
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}
?>
Vou tentar fazer a da sua forma aqui.
Edit:
Olha só usei assim:
>
<?php
session_start();
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null)
{
** if(!is_dir('Usuarios/.'$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/)'.$nomePasta){**
mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/$nomePasta");
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
}}
else
{
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}
?>
Só que da erro na linha 7 a que esta em negrito.
Parse error: syntax error, unexpected T_VARIABLE in /home/u146958875/public_html/cloud/views/acao.php on line 7
Erro meu, perdão.
if(!is_dir('Usuarios/'.$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/'.$nomePasta){
Ok,
Olha só tem algo errado ?
<?php
session_start();
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null)
{
if(!is_dir('Usuarios/'.$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/'.$nomePasta{
mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/$nomePasta");
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
}}
else
{
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}
?><?php
session_start();
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null)
{
if(!is_dir('Usuarios/'.$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/'.$nomePasta)){
mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/$nomePasta");
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
}
else
{
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}
?>To usando assim que tinha dado erro:
<?php
session_start();
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null)
{
if(!is_dir('Usuarios/'.$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/'.$nomePasta)){
mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/$nomePasta");
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
}
else
{
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}}
?>
E agora da este erro:
Warning: mkdir(): No such file or directory in /home/u146958875/public_html/cloud/views/acao.php on line 8
Sera que não e melhor chama a ID do Registrado que esta na sessão e acrescentar na hora de criar a pasta?
mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/".$nomePasta);
Ainda da erro e na linha 8
<?php
session_start();
$_POST["txtMatch"] = "teste";
$nomePasta = $_POST["txtMatch"];
if ($nomePasta != null){
if(!is_dir('Usuarios/'.$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/'.$nomePasta)){
if (mkdir("Usuarios/".$_SESSION['user_name']."_".uniqid(md5(microtime()))."/Match ID/".$nomePasta, 0777, true)){
echo "<script>parent.alert('Match ID criada com sucesso!')</script>";
} else {
echo "<script>parent.alert('Houve um erro ao tentar criar o Match ID')</script>";
}
echo "<script>parent.alert.document.getElementById('txtMatch').value='';</script>";
} else {
echo "<script>parent.alert('Erro! Digite o Match ID. ')</script>";
}
}
?>Tipo mais agora ele esta criando diretórios, que não e preciso ele esta refazendo a pasta Admin e adicionando números, e criando novamente a unica coisa que eu quero e que ela só precisa, adicionar um numero a mais na hora de criar a pasta exemplo o diretório fica assim Usuarios/Admin/Match ID/$nome_da_pasta+ID do Usuário
O que esta em negrito não pode modificar por isto que coloquei antes:
Mais ou menos assim que falo:
mkdir("Usuarios/".$_SESSION['user_name']."/Match ID/$nomePasta_.$_SESSION['user_id']."
Só que esta dando erro.Qual erro?
mkdir("Usuarios/".$_SESSION['user_name']."/Match ID/$nomePasta_".$_SESSION['user_id']);
Tipo amigo não esta dando erro e que não esta criando a pasta com o numero do ID dele tendeu ?
Este erro:
Warning: mkdir(): File exists in /home/u146958875/public_html/cloud/views/acao.php on line 7
Você fez a busca do ID dele na base de dados?
" SELECT id FROM... "
Não '-'
Daí complica né? rs
Ao menos já fez alguma conexão com a base de dados? rs
mkdir("Usuarios/".$_SESSION['user_name']."/Match ID/$nomePasta");