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

criar pasta a partir da confirmação do cadastro script


Lenzisk8

Pergunta

Boa noite estou desenvolvendo um projeto e não tenho muita intimidade com o php, estou tentando achar uma maneira de criar um diretório com o nome do usuario cadastrado apos a confirmação do seu cadastro e em seguida copiar alguns arquivos de um outro diretorio para dentro dele.

Ex.

faz o cadastro> recebe email para confirmar> ao confirmar ativa e cria o dir > em seguida copia alguns arquivos para dentro deste diretório e mostra msg de confirmacao para efetuar o login.

ESTRUTURA

diretorioARQUIVO

diretorioUSUARIOS

dentro do diretorio usuarios diretorios// usuario1 , usuario2 ....

apos criar o dir nomeusuario copia arquivos de dentro do diretorioARQUIVO.

Estou usando o seguinte script já com bastante coisas prontas do maaking.com

se alguém tiver uma ideia de como poderia fazer isso se for possivel na hora da confirmação.

segue abaixo:

[

################################################################################

#------------------------------------------------------------------------------#

# Register

#------------------------------------------------------------------------------#

################################################################################

function Register(){

include("header.php");

register_form();

include("footer.php");

}

function register_form(){

global $username, $password, $password2, $email, $fullname, $user_taken_err, $email_taken_err;

echo "<center><font class=\"title\">"._REG_FORM."</font></center><br>\n";

//onsubmit='return CheckRegisterForm(RegisterForm)'

echo "<center>"._FILED_STAR_REQUIRED."

<form name=\"RegisterForm\" method=\"POST\" action=\"users.php\">

<table align=\"center\" border=\"1\" width=\"400\" id=\"table1\" cellpadding=\"2\" bordercolor=\"#C0C0C0\">

<tr>

<td width=\"150\" align=\"right\">"._USERNAME." :</td>

<td><input type=\"text\" name=\"username\" size=\"18\" value=\"$username\"> * $user_taken_err</td>

</tr>

<tr>

<td align=\"right\">"._PASSWORD." :</td>

<td><input type=\"password\" name=\"password\" size=\"18\" value=\"$password\"> *</td>

</tr>

<tr>

<td align=\"right\">"._RETYPE_PASSWORD." :</td>

<td><input type=\"password\" name=\"password2\" size=\"18\" value=\"$password2\"> *</td>

</tr>

<tr>

<td align=\"right\">"._EMAIL." :</td>

<td><input type=\"text\" name=\"email\" size=\"27\" value=\"$email\"> * $email_taken_err</td>

</tr>

<tr>

<td align=\"right\">"._FULLNAME." :</td>

<td><input type=\"text\" name=\"fullname\" size=\"27\" value=\"$fullname\"></td>

</tr>

<tr>

<td> </td>

<td> <input type=\"hidden\" name=\"maa\" value=\"do_Register\">

<input type=\"submit\" value=\""._REGISTER."\"></td>

</tr>

</table>

</form>

<center>"._GOBACK." "._GOHOME."</center>";

}

function do_Register(){

global $db, $prefix, $username, $password, $password2, $email, $fullname, $user_taken_err, $email_taken_err;

global $site_name, $site_email, $site_url, $validate;

//this function will check fields incase of javascript not working.

if((!$username) || (!$password) || (!$password2) || (!$email)){

if(trim(empty($username))){

}

if(empty($password)){

}

if(empty($password2)){

}

if(trim(empty($email))){

}

//print the error message and load the form.

include("header.php");

echo "<center><font class=\"error\">"._ERROR_PLEASE_FILL_FIELDS."</font></center>\n";

register_form();

include("footer.php");

exit();

}

//this code will check if the 2 passwords are match or not.

if($password != $password2){

//print the error message and load the form.

include("header.php");

register_form();

echo "<center><font class=\"error\">"._ERROR_PASSWORD_DOESNT_MATCH."</font></center>\n";

include("footer.php");

exit();

}

//this code will check if the email is correct or not

if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){

//print the error message and load the form.

include("header.php");

register_form();

echo "<center><font class=\"error\">"._ERROR_INVALID_EMAIL."</font></center>\n";

include("footer.php");

exit();

}

//--nothing empty? everything is okay? lets do the register.

$sql_email_check = $db->sql_query("SELECT email FROM ".$prefix."_users WHERE email='$email'");

$sql_username_check = $db->sql_query("SELECT username FROM ".$prefix."_users WHERE username='$username'");

$email_check = $db->sql_numrows($sql_email_check);

$username_check = $db->sql_numrows($sql_username_check);

if(($email_check > 0) || ($username_check > 0)){

//define error message for usage in multi plces.

$exist_msg= "<font class=\"error\">"._ALREADY_TAKEN."</font>";

if($email_check > 0){

$email_taken_err = $exist_msg;

unset($email);

}

if($username_check > 0){

$user_taken_err = $exist_msg;

unset($username);

}

//if the username or email already been taken load the form and print errors.

include("header.php");

register_form();

include("footer.php");

exit();

}

//if you as and admin forsed users to vaildate their accounts.

if($validate == 1){

$isactive = 0;

//generate random code

$code = md5(time());

$code = rand(0,999999999);

$subject = _VALIDATE_EMAIL;

}else{

$isactive = 1;

$subject = _YOUR_INFO_AT;

}

$md5_password = md5($password);

$result = $db->sql_query("INSERT INTO ".$prefix."_users ( username,password,email,fullname,regdate,isactive,code) "

." VALUES('$username','$md5_password','$email','$fullname',NOW(),'$isactive','$code')");

$eol ="\r\n";

$message = "$eol";

$message .= ""._WELCOME_TO." $site_name $eol";

$message .= "$eol";

$message .= ""._PLZ_KEEP_THIS_EMAIL." $eol";

$message .= "$eol";

$message .= "---------------------------- $eol";

$message .= ""._USERNAME.": $username $eol" ;

$message .= ""._PASSWORD.": $password $eol";

$message .= "---------------------------- $eol";

$message .= "$eol" ;

if($validate == 1){

$message .= ""._YOUR_ACCOUNT_IS_NOT_ACTIVE." $eol";

$message .= "$eol" ;

$message .= "$site_url/users.php?maa=Activate&code=$code $eol";

}else{

$message .= ""._YOUR_ACCOUNT_IS_CURRENTLY_ACTIVE." $eol";

$message .= "$eol" ;

$message .= "$site_url $eol";

}

$message .= "$eol";

$message .= ""._PLZ_DONT_FORGOT_PWD." $eol";

$message .= " $eol";

$message .= ""._THANKS_FOR_REGISTERING." $eol";

$message .= "$eol";

$message .= "-- $eol";

$message .= "- $site_name $eol";

$message .= "$site_url $eol";

$message .= "$eol";

$message .= "$eol";

$message .= ""._THIS_EMAIL_AUTO_GENERATED." $eol" ;

$message .= ""._DONT_RESPOND_WILL_IGNORED." $eol";

#set email headers to aviod spam filters

$headers .= "From: ".$site_name."<".$site_email.">".$eol;

$headers .= "Reply-To: ".$site_name."<".$site_email.">".$eol;

$headers .= "Return-Path: ".$site_name."<".$site_email.">".$eol;

$headers .= "Message-ID: <".time()."-".$site_email.">".$eol;

$headers .= "X-Mailer: PHP v".phpversion().$eol;

$headers .= 'MIME-Version: 1.0'.$eol.$eol;

if(!mail($email,$subject,$message, $headers)){

die (""._EMAIL_DIE."");

}else{

include("header.php");

if($validate == 1){

echo "<br><br><div align=\"center\" class=\"div\">"._REG_SUCCESS_VALIDATE."</div><br><br> <center>"._GOHOME."</center>";

}else{

echo "<div align=\"center\" class=\"div\">"._REG_SUCCESS."</div>";

login_form();

}

include("footer.php");

}

}

Editado por Lenzisk8
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Para criar a pasta:

<?php $path = $_SERVER['DOCUMENT_ROOT'] . '/[VAR-USERNAME]/';


if (isset($_POST['create'])) {
    $dirName = isset($_POST['dirName'])?$_POST['dirName']:false;
    if ($dirName !== false && preg_match('~([^A-Z0-9]+)~i', $dirName, $matches) === 0) {
        if (!is_dir($path . $dirName)) {
            if (mkdir($path . $dirName, 0775)) {
                $success = "Your directory has been created succesfully!<br /><br />";
            }else {
                $error = "Unable to create dir {$dirName}.";
            }
        }else {
            $error = "Directory {$dirName} already exists.";
        }
    }else {
        $dirName = htmlentities($dirName);
        $error = "You have invalid values in {$dirName}.";
    }
}
?>

Para criar os arquivos e se precisar edita-los use a função fopen http://php.net/manual/pt_BR/function.fopen.php

Link para o comentário
Compartilhar em outros sites

  • 0
Para criar a pasta:

<?php $path = $_SERVER['DOCUMENT_ROOT'] . '/[VAR-USERNAME]/';


if (isset($_POST['create'])) {
    $dirName = isset($_POST['dirName'])?$_POST['dirName']:false;
    if ($dirName !== false && preg_match('~([^A-Z0-9]+)~i', $dirName, $matches) === 0) {
        if (!is_dir($path . $dirName)) {
            if (mkdir($path . $dirName, 0775)) {
                $success = "Your directory has been created succesfully!<br /><br />";
            }else {
                $error = "Unable to create dir {$dirName}.";
            }
        }else {
            $error = "Directory {$dirName} already exists.";
        }
    }else {
        $dirName = htmlentities($dirName);
        $error = "You have invalid values in {$dirName}.";
    }
}
?>

Para criar os arquivos e se precisar edita-los use a função fopen http://php.net/manual/pt_BR/function.fopen.php

Se no mkdir($path . $dirName, 0775) eu quiser que o caminho seja fixo tipo tenho uma pasta users e dentro dela quero criar a nova usando a variavel nome do diretorio posso fazer algo tipo

mkdir('\users\' . $dirName, 0775) sendo que users é um diretório dentro do que eu estou e não na raiz.

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

só alterar essa linha:

$path = $_SERVER['DOCUMENT_ROOT'] . '/[VAR-USERNAME]/';

em [VAR-USERNAME] você coloca o nome da pasta, havia colocado essa indicação pois achava que seria uma pasta para cada usuário.

Agora caso queira criar dentro de uma pasta, outra pasta, é só seguir o padrão:

$path = $_SERVER['DOCUMENT_ROOT'] . '/users/$username';

Link para o comentário
Compartilhar em outros sites

  • 0
só alterar essa linha:

$path = $_SERVER['DOCUMENT_ROOT'] . '/[VAR-USERNAME]/';

em [VAR-USERNAME] você coloca o nome da pasta, havia colocado essa indicação pois achava que seria uma pasta para cada usuário.

Agora caso queira criar dentro de uma pasta, outra pasta, é só seguir o padrão:

$path = $_SERVER['DOCUMENT_ROOT'] . '/users/$username';

amigo desculpe não consegui fazer funcionar daquele jeito ali, não entendo muito de php.

rodou e não deu erro mas não cria nada.

tava tentando assim:

$oldumask = umask(0);

mkdir($username, 0777);

umask($oldumask); (dessa forma cria a pasta dentro da pasta que estao os arquivos)

desse jeito consigo mas , quero colocar essa pasta $username que é a variavel nome do usuario dentro de outra pasta tipo USUARIOS que esta dentro da mesma pasta que estou.

tentei assim

mkdir('/usuarios/'$username, 0777);

mkdir('/usuarios/'. $username, 0777);

mas da erro e não cria

qual seria a sintaxe correta?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0
tente:

$dir = "/usuarios/$username";

mkdir($dir, 0777);

lembrando que o 0777 é o chmod, não sei qual a reação do windows, uma vez que CHMOD é para linux.

*Caso eu esteja enganado desculpe, também não sou nenhum expert em php. ^^

so vai com $dir = $username; (que fica na mesma que usar so uma variavel)

se tento colocar /apasta da erro

o 0777 no windows é irrelevante mesmo já tinha lido no php.manual tava botando so por desencargo com ele ou sem ele cria igual

detalhe meu servidor windows caminho completo /dominio/web/video/onde estao meus arquivos e a pasta usuarios

no caso criando diretamente ele cria a nova pasta com o nome da variavel dentro de video mas queria criar em usuarios

acho q o problema esta no caminho , não sei se devo colocar completo desde a raiz ou não.

se tiver mais alguma ideia...

vlw

Link para o comentário
Compartilhar em outros sites

  • 0
Tente esse:

$dir= '/usuarios/' . $username;

da erro tambem. já tinha ate tentado esse modo.

talvez se for criado o diretorio usuarios junto com o $username

e depois ao criar o proximo verificar q já existe o usuarios e so criar o novo $username dentro

sera que funcionaria?

que coisa , parecia ser simples mas não acho exemplos usando o caminho junto com uma variavel que funcione dessa forma.

vou continuar tentando caso descobrir posto aqui dps.

vlw

Link para o comentário
Compartilhar em outros sites

  • 0
Verifique se a sua pasta raiz tem permissões para a escrita... você está rodando localmente ou em um servidor?

No servidor, utilize o seu programa de FTP e mude as permissões :mellow:

Opa...

Sim já setei as permissoes consigo escrever copiar e criar o diretorio dentro do diretorio corrente mas não em outro diretorio no caso um diretorio dentro do que eu estou executando o codigo.

E ate agora não consegui ainda. Estou deixando assim mesmo no diretorio atual ate ver se aparece a solucao, também era so uma forma de organizar não é algo que impede de prosseguir.

Se alguém descobrir o que pode ser ... posta ai

Vlw

Link para o comentário
Compartilhar em outros sites

  • 0

resolvido ----

por incrivel que pareça , era uma coisinha ridicula.

$dir= '/usuarios/' . $username; a forma de juntar a variavel com string era por aqui mesmo mas...

como estou dentro de um diretorio e quero criar a nova pasta dentro de outro que já esta presente no mesmo.

não vai a barra na frente :

no caso fica assim ::: $dir= 'usuarios/' . $username; simplesmente....

tinha deixado parado e fui desenvolver o resto e quando de repente fazendo outras partes do codigo utilizando caminhos que percebi o erro simples.

Fazer oque ehueu pelo menos ta resolvido.

falou obrigado por quem ajudou.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...