Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu estou criando um aplicativo que cria subdomínios criando pastas e nessa pasta cria um index.html com informação do redirecionamento, tais como <title> keywords ect..
Então para não criar subdominios duplicados eu pensei em verificar as pastas então eu gostaria de saber como eu posso fazer isso para se poder criar um subdominio apenas uma vez para não haver "roubo de subdominios",
Muito obrigado por ler a minha duvida,
Cumps,
LuyZ
http://br.php.net/manual/pt_BR/function.file-exists.php
file_exists — Checa se um arquivo ou diretório existe
>
Seria isso:
<?
$dir = "nomedapasta";
if(is_dir($dir)) { echo "O diretório já existe."; }
else { echo "O diretório não existe ainda."; }
?>
Muito obrigado Gutto Faria e André D. Molin consegui resolver este problema
Agora estou com mais um problema aqui hehe eu estou criando um código para criar um index dentro da pasta ai esta o problema vou mostrar o código
--> SEM IR NA PASTA
$fp = fopen('index.html', 'w');
if (is_bool($fp)) echo 'Você não tem permissão para abrir o criar um arquivo!';
fwrite($fp, " $finalprocessamento ");
fclose($fp);
Eu tentei ainda da seguinte forma
$fp = fopen('.$pasta./index.html', 'w');
if (is_bool($fp)) echo 'Você não tem permissão para abrir o criar um arquivo!';
fwrite($fp, " $finalprocessamento ");
fclose($fp);
MAS DEU ERRO..
Alguém me ajudaria ai ?
Muito obrigado ai Gutto Faria e André D. Molin, sou novo no forum e estou gostando muito hehe,
Cumps,
LuyZ
Que erro?
>
Que erro?
--ESTE--Warning: fopen(../index.html) [function.fopen]: failed to open stream: Permission denied in /home/public_html/LETS.php on line 53
Você não tem permissão para abrir o criar um arquivo!
Warning: fwrite(): supplied argument is not a valid stream resource in /home/public_html/LETS.php on line 55
Warning: fclose(): supplied argument is not a valid stream resource in /home/public_html/LETS.php on line 57
Simples! O arquivo não tem permissão para ser aberto. Altere as permissões do arquivo e tente novamente.
Certo, contudo ele cria que eu já fiz um teste colocando index.html só sem qualquer variável, penso que tenho que coloca a parte que cria index no fim para ele pegar a pasta :S
Vou testar
Da forma mais simples funciona?
if(fopen("acesso.txt", "r") {
echo "abriu";
if(fwrite($arquivo, "texto"))
echo "Texto atualizada!";
else
echo "Erro na escrita.";
fclose($arquivo);
}Vou postar toda a source do file do processamento para ver se conseguem dar um concerto final porque está complicado hehe ainda por cima comecei a aprender php a mais ou menos duas a três semanas
O que o meu script faz é basicamente um bot que vai e cria pelo cpanel subdomínios contudo não estou conseguindo negar a subscrição da index.html que é enviada para cada nova pasta, ou seja qualquer um pode "roubar" o subdomínio de qualquer outro e gostaria de dar um fixed nisso
Muito obrigado por ler este post,
e obrigado por ajudarem -me =)
AQUI VAI CODIGO HEHE
<?php
$endereco = $_POST['endereco'];
$titulo = $_POST['titulo'];
$keywords = $_POST['keywords'];
$descric = $_POST['descric'];
$fy1 = '<html> <head> <meta http-equiv="Content-Language" content="pt-pt"> <title>';
$fy2 = '</title>';
$fy3 = '<meta name="keywords" content="';
$fy4 = '" />';
$fy5 = '<meta name="description" content="';
$fy6 = '" />';
$fy7 = '
<meta name="author" content="www.webteu.com">
<META HTTP-EQUIV="expires" content="">
<META HTTP-EQUIV="charset" content="ISO-8859-1">
<META HTTP-EQUIV="content-language" content="Português">
<META HTTP-EQUIV="VW96.OBJECTTYPE" content="www.webteu.com">
<meta name="rating" content="www.webteu.com">
<META content="1 days" name=revisit>
<META NAME="REVISIT-AFTER" CONTENT="1 DAYS">
<meta name="robots" content="index,follow"> ';
$fy8 = '</head>';
$fy9 = '
<frameset rows="1,*" frameborder="no" border="0" framespacing="0" marginwidth="0" marginheight="0">
<frame src="webteu.php" name="webteu" scrolling="no" noresize>
<frame src="http://';
$fy10 = '" name="webteu2" target="full">
</frameset>
</html>';
$ab = $fy1.$titulo.$fy2.$fy3.$keywords.$fy4.$fy5.$descric.$fy6.$fy7.$fy8.$fy9.$endereco.$fy10;
$username = "webte";
$password = "pw123"; //senha invalida ne rsrs
$udomain = "webteu.com";
$skincpanel = "x3";
$acao = htmlspecialchars(trim($_REQUEST['acao']));
if ($acao == "ok"){
$subdomain = htmlspecialchars(trim($_POST['nome']));
$authstr = "$username:$password";
$pass = base64_encode($authstr);
$socket2 = fsockopen("www.$udomain",2082);
if(!$socket2)
{
print('Socket error');
echo "<BR>There was an error while setting up the account. Please let support@$udomain know the above error";
exit();
}
$indom = "GET /frontend/$skincpanel/subdomain/doadddomain.html?domain=$subdomain&rootdomain=mydomain.com\r\n HTTP/1.0\r\nHost:$udomain\r\nAuthorization: Basic $pass\r\n\r\n";
$dir = "$subdomain";
fputs($socket2,$indom);
while (!feof($socket2)) {
fgets ($socket2,128);
}
//----------------- INICIO DA PROBLEMATICA ----------------
//---- QUERO Q O ARQUIVO index.html que é enviado para dentro de cada pasta nao possa ser subscrito nao havendo assim "roubos.."
$fp = fopen("$subdomain/index.html", 'w');
if (is_bool($fp)) echo 'u sei la..';
//if(is_dir($dir)) { echo " ! Subdominio Já Existe !"; }
fwrite($fp, " $ab ");
fclose($socket2);
echo"SEU SUBDOMINIO É <font color=blue size=3>www.<b>$subdomain</b>.webteu.com</font>";
}else{
echo "OFF";
}
?>Luyz, o atributo de leitura que você está usando é 'w', que é somente de leitura e cria ou sobrescreve um arquivo. Creio que deva ser usado o atributo 'a' ou 'a+' que cria ou continua o arquivo, exemplo:
<?php
$arquivo = fopen("arquivo.txt", 'a');
if($arquivo) {
fwrite($arquivo, "The book is on the table\n");
fclose($arquivo);
}
else
echo "erro ao abrir o arquivo.";
?>
Aí vai da sua necessidade, se criar um único arquivo index dentro de cada subdomínio e ir escrevendo dentro de cada um deles ou criar arquivos index separados, mas aí deves colocar algo a mais no nome do arquivo, como a data por exemplo, ficando "index_17072010.html".
Não sei se é isso...
Consegui colocando a+ muito obrigado ai pessoal tinha esquecido disso hehe
agora eu vi que afinal ele ao invés de re-escrever esta a escrever por baixo ou seja escrever depois como se resolve isso? ideias ? hehe
Se quiser escrever no início do arquivo, use o modo de abertura com 'r+', isso leva o ponteiro para o início do arquivo.
Mais informações AQUI.
Seria isso:
<?