Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Matuzalém Teles

Pegar o nome do Usuário da sessão e colocar em uma URL

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Irá gerar um md5 com o micro tempo usado na hora.

 

 

Tipo

Array
(
    [microtime] => 0.34662200 1384009173
    
 => uniqid(md5((0.34662200 1384009173)))
    [uniqidmd5] => d41d8cd98f00b204e9800998ecf8427e527e4dd554a5a
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro meu, perdão.

 

if(!is_dir('Usuarios/'.$_SESSION['user_name'].'_'.$stmt['id'].'/Match ID/'.$nomePasta){

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>";

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?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>";

 

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?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>";

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.