Ir para conteúdo

POWERED BY:

Gniusplay

Enviar formulario só se tiver X pontos no Banco de Dados

Recommended Posts

Olá pessoal, eu tenho um sistema de comentários que quando um "player" preenche esse comentário, ele vai direto para pagina inicial, funciona como um feedback, só que ele pode usar isso várias e várias vezes, eu queria que ele usasse apenas uma vez e não pudesse mais utilizar, sendo assim só seria possível usar uma vez.
Ou q só poderia usar se tivesse x quantidades de pontos no banco de dados(eu tenho uma coluna com pontos) e a cada vez que ele usasse esse formulário(comentário), ele perderia 1 ponto,e  quando não tivesse mais pontos, ele não poderia comentar.

Alguém tem alguma ideia de como posso fazer isso? e qual funções utilizar?

VALEUU!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá! 

 

Baseando-se nesta parte da sua questão:

 

Quote

...só poderia usar se tivesse x quantidades de pontos no banco de dados(eu tenho uma coluna com pontos) e a cada vez que ele usasse esse formulário(comentário), ele perderia 1 ponto,e  quando não tivesse mais pontos, ele não poderia comentar.

 

Você pode usar PHP e MySql como solução montando um script para debitar o ponto a cada vez que usuário realizar um submit no formulário. No caso, partindo que você já tem um sistema de login de usuário, você pode criar um script php que ao ser chamado atualiza a coluna "pontos" no MySql.

 

Abaixo segue um script básico com função de atualizar a coluna pontos quando o botão submit do formulário "comentários" for clicado. Repare que no início do mesmo contém um "session_start()" que tem como função armazenar o id do usuário durante o seu login. Esse número ID é usado para selecionar dados relativos a ele :

<?php
// Initialize the session
session_start();

if(isset($_POST['submit'])){

include 'pdo_connection.php';
        
$sth = $db->prepare("SELECT pontos FROM users WHERE id = ".$_SESSION["id"]."");
$sth->execute();
$result = $sth->fetchColumn();

$pontos = $result - 1;

$st = $db->prepare("UPDATE users SET pontos = $pontos WHERE id = ".$_SESSION["id"]."");
$st->execute();

$db = null;

}
?>

E abaixo, o script que inseri o comentário, por exemplo. Nesse script php, o comentário é inserido na coluna "comentario" do MySql onde ao mesmo tempo ele chama o script php (update-pontos.php) acima onde atualiza a pontuação depois do comentário ter sido inserido:

<?php
// Initialize the session
session_start();

$link = mysqli_connect("localhost", "root", "", "system");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
// Escape user inputs for security
$comentario = mysqli_real_escape_string($link, $_REQUEST['comentario']);

// Attempt insert query execution

$sql = "INSERT INTO comentarios (comentario, usuarioFK) VALUES ('$comentario',".$_SESSION["id"].")";

if(mysqli_query($link, $sql)){
    
    include_once 'update-pontos.php';
    
header("location: comentario-inserido-com-sucesso.php");

} else{
    
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

?>

Criei um sistema bem básico como forma de demonstração. Dê uma olhada e se possível baixe os arquivos para testar. No caso do banco de dados criei uma tabela para armazenar os comentários e uma tabela para armazenar usuários e seus pontos.

 

Link para o sistema básico de testes

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, michelmir disse:

Olá! 

 

Baseando-se nesta parte da sua questão:

 

 

Você pode usar PHP e MySql como solução montando um script para debitar o ponto a cada vez que usuário realizar um submit no formulário. No caso, partindo que você já tem um sistema de login de usuário, você pode criar um script php que ao ser chamado atualiza a coluna "pontos" no MySql.

 

Abaixo segue um script básico com função de atualizar a coluna pontos quando o botão submit do formulário "comentários" for clicado. Repare que no início do mesmo contém um "session_start()" que tem como função armazenar o id do usuário durante o seu login. Esse número ID é usado para selecionar dados relativos a ele :


<?php
// Initialize the session
session_start();

if(isset($_POST['submit'])){

include 'pdo_connection.php';
        
$sth = $db->prepare("SELECT pontos FROM users WHERE id = ".$_SESSION["id"]."");
$sth->execute();
$result = $sth->fetchColumn();

$pontos = $result - 1;

$st = $db->prepare("UPDATE users SET pontos = $pontos WHERE id = ".$_SESSION["id"]."");
$st->execute();

$db = null;

}
?>

E abaixo, o script que inseri o comentário, por exemplo. Nesse script php, o comentário é inserido na coluna "comentario" do MySql onde ao mesmo tempo ele chama o script php (update-pontos.php) acima onde atualiza a pontuação depois do comentário ter sido inserido:


<?php
// Initialize the session
session_start();

$link = mysqli_connect("localhost", "root", "", "system");

// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
// Escape user inputs for security
$comentario = mysqli_real_escape_string($link, $_REQUEST['comentario']);

// Attempt insert query execution

$sql = "INSERT INTO comentarios (comentario, usuarioFK) VALUES ('$comentario',".$_SESSION["id"].")";

if(mysqli_query($link, $sql)){
    
    include_once 'update-pontos.php';
    
header("location: comentario-inserido-com-sucesso.php");

} else{
    
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}

?>

Criei um sistema bem básico como forma de demonstração. Dê uma olhada e se possível baixe os arquivos para testar. No caso do banco de dados criei uma tabela para armazenar os comentários e uma tabela para armazenar usuários e seus pontos.

 

Link para o sistema básico de testes

Então, eu já tenho tudo feito, só quero implementar essa função para remover x pontos e também só dar submit se tiver esses pontos!
No caso a parte onde a pessoa envia o formulário"comentário" é essa abaixo:

Citar

<?php

global $config;

require("config.php");

$ots = POT::getInstance();

$ots->connect(POT::DB_MYSQL, connection());

$SQL = $ots->getDBHandle();

$ide = new IDE;

$ide->requireLogin();

if($ide->isLogged()){

$accountName = $_SESSION['nickname'];

//$SQL->query('SELECT * FROM accounts WHERE name="'.$accountName.'"')->fetch();
}
?>


<br>


<br>        <form method="POST" action="/comentarios.php">
                <div class="wrap-login100">
                                </span>
                        <span class="login100-form-title p-b-34 p-t-27">
                        COMENTÁRIO/FEEDBACK
                    </span>
                <center><h4><b>Deixe seu comentário contando sua experiência com o jogo</b></h4></center><br>
                <div class="wrap-input100 validate-input" data-validate = "Enter username">
<input type="text" value="<? echo $accountName; ?>" class="input100" name="nome" placeholder="Nome" required />
                        <span class="focus-input100" data-placeholder="&#xf207;"></span>
                    </div>
                    


                                <div class="wrap-input100 validate-input" data-validate = "Enter username">    <h1><font color="white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comente sua experiência com o jogo no campo abaixo:</h1>
            <textarea type="mensagem" class="input100" name="mensagem" maxlength="110" placeholder="Digite aqui sua observação" required /> </textarea>
                        <span class="focus-input100" data-placeholder="&#xf222;"></span>
</div>
                            
<div class="wrap-input100 validate-input" data-validate = "Enter username">
<span class="focus-input100" data-placeholder="&#xf32f;"></span>
<h2><font color="white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<select name="sendo" class="buttonseelct" required />
<?php

date_default_timezone_set("America/Sao_paulo");
$ano = date ('Y');
$mes = date ('m');
$dia =date ('d');


  print '<option value="'.date('Y-m-d').'">'.$dia.'/'.$mes.'/'.$ano.' </option>';
?>
</div>
</font></select>
</h2></div>
<div class="container-login100-form-btn">
                        <button type="submit" class="login100-form-btn">
                        Enviar
                        </button>
                    </div>
                    <br>
                            <div class="container-login100-form-btn">
                        <button type="reset" class="login100-form-btn">
                        Limpar Campos
                        </button>
                </div>
            

</form>
 

Agora abaixo é pra poder acessar a informação do banco de dados:

Citar

<?php
$servidor = "localhost";
$usuario = "root";
$senha = "";
$dbname = "comentario";

//Criar a conexao
$conn = mysqli_connect($servidor, $usuario, $senha, $dbname);

E abaixo é quando o formulário é enviado

Citar

<?php
session_start();
include_once("comentario.php");

$nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING);
$mensagem = filter_input(INPUT_POST, 'mensagem', FILTER_SANITIZE_STRING);
$sendo = filter_input(INPUT_POST, 'sendo', FILTER_SANITIZE_STRING);


//echo "Nome: $nome <br>";
//echo "E-mail: $email <br>";

$result_usuario = "INSERT INTO comentario (nome, mensagem, sendo, created) VALUES ('$nome', '$mensagem', '$sendo', NOW())";
$resultado_usuario = mysqli_query($conn, $result_usuario);

if(mysqli_insert_id($conn)){
    $_SESSION['msg'] = "<p style='color:green;'>Comentário enviado com sucesso, obrigado por enviar o seu feedback.</p>";
    header("Location:/index.php/p/v/sucesso2");
}else{
    $_SESSION['msg'] = "<p style='color:red;'>Comentário não enviado, tente novamente</p>";
    header("Location:/index.php/p/v/fail2");
}
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

14 hours ago, Gniusplay said:

Então, eu já tenho tudo feito, só quero implementar essa função para remover x pontos e também só dar submit se tiver esses pontos!
No caso a parte onde a pessoa envia o formulário"comentário" é essa abaixo:

Agora abaixo é pra poder acessar a informação do banco de dados:

E abaixo é quando o formulário é enviado

 

 

O script comentario.php contém uma tabela chamada comentário com colunas nome, mensagem, sendo e created. No caso, qual tabela esta a coluna pontos? Se puder, me diga o nome da tabela onde esta a coluna pontos e suas respectivas colunas pra eu poder adaptar o script que atualizará os pontos pra você. 

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 horas atrás, michelmir disse:

 

 

O script comentario.php contém uma tabela chamada comentário com colunas nome, mensagem, sendo e created. No caso, qual tabela esta a coluna pontos? Se puder, me diga o nome da tabela onde esta a coluna pontos e suas respectivas colunas pra eu poder adaptar o script que atualizará os pontos pra você. 

A tabela pontos está em outro banco de dados(no banco de dados da conta de cada pessoa que criou a conta)

Fica no banco de dados awvenda2>accounts>premium_points

a imagem abaixo mostra onde tá:

d08670f3-4501-4826-9aac-3d9735915f5e.thumb.jpg.189296de615f0634d6fc83e52c7a9a44.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, basicamente você deverá criar um script php que tenha a função de atualizar os pontos do usuário quando o mesmo clicar no botão 'enviar comentário'. Pelo que entendi, você mencionou que existem outros bancos de dados que estão conectados entre-si neste projeto, correto? ou seria apenas um banco de dados com todas as tabelas nele? 

 

De qualquer forma, ambas as situações você deverá se atentar na forma como o script se conecta a esses banco de dados configurando o script de conexão conforme as suas configurações bem como a query SELECT e UPDATE. 

 

Abaixo, segue um script que atualiza a pontuação 'premium_points' da tabela 'accounts':

 

Nome: update-pontos.php

<?php
// Initialize the session
session_start();

$db = new PDO('mysql:host=localhost;dbname=', 'user', 'pass');
        
$sth = $db->prepare("SELECT premium_points FROM accounts WHERE userFK = ".$_SESSION["nickname"]."");
$sth->execute();
$result = $sth->fetchColumn();

$pontos = $result - 1;

$st = $db->prepare("UPDATE accounts SET premium_points = $pontos WHERE userFK = ".$_SESSION["nickname"]."");
$st->execute();

$db = null;

?>

Repare que na query 'WHERE userFK' você deve sustituir o 'userFK' pelo nome da coluna que armazena o id do usuário correspondente dentro dessa tabela 'accounts', ou seja, seria uma foreing key (FK) dentro da tabela 'accounts', pois na imagem que você postou não dá pra ver como se chama a coluna do ID do usuário nesta tabela.

 

Outro ponto é o $_SESSION. No caso reparei que existe um '$_SESSION['nickname']'. O $_SESSION deve estar relacionado com o ID do usuário que esta logado pois dessa forma a query SELECT retornará corretamente os resultados relacionados ao usuário logado.

 

Após ter criado o script 'update-pontos.php', abra o script que envia os dados do formulário para a tabela 'comentários' e inclua um 'include' na seguinte parte:

if(mysqli_insert_id($conn)){

	include_once 'update-pontos.php';

	$_SESSION['msg'] = "<p style='color:green;'>Comentário enviado com sucesso, obrigado por enviar o seu feedback.</p>";
	header("Location:/index.php/p/v/sucesso2");

}

Dessa forma, caso a mensagem seja enviada corretamente, este script também chama e executa o script 'update-pontos.php' que atualiza a coluna 'premium_points' atualizando os dados relativos a mesma.

 

Dê uma olhada neste exemplo que criei. Quando você inserir um comentário no campo e clicar no botão enviar comentário, a mensagem é inserida na tabela 'comentários' e ao mesmo tempo, com o sucesso da mensagem enviada, o campo 'premium_points' é atualizado em uma outra tabela chamada 'accounts'.

 

Por fim, basicamente a lógica é mais ou menos essa. Uns também criam funções para executar este tipo de tarefa outros preferem utilizar métodos simples desde que o script seja criado evitando sql injection

 

Tente adaptar ao seu projeto, lembrando de configurar a conexão conforme os dados do seu banco de dados, usuário e senha do mesmo.

 

Caso alguém deseje acrescentar alguma melhoria, fique a vontade.

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, michelmir disse:

Então, basicamente você deverá criar um script php que tenha a função de atualizar os pontos do usuário quando o mesmo clicar no botão 'enviar comentário'. Pelo que entendi, você mencionou que existem outros bancos de dados que estão conectados entre-si neste projeto, correto? ou seria apenas um banco de dados com todas as tabelas nele? 

 

De qualquer forma, ambas as situações você deverá se atentar na forma como o script se conecta a esses banco de dados configurando o script de conexão conforme as suas configurações bem como a query SELECT e UPDATE. 

 

Abaixo, segue um script que atualiza a pontuação 'premium_points' da tabela 'accounts':

 

Nome: update-pontos.php


<?php
// Initialize the session
session_start();

$db = new PDO('mysql:host=localhost;dbname=', 'user', 'pass');
        
$sth = $db->prepare("SELECT premium_points FROM accounts WHERE userFK = ".$_SESSION["nickname"]."");
$sth->execute();
$result = $sth->fetchColumn();

$pontos = $result - 1;

$st = $db->prepare("UPDATE accounts SET premium_points = $pontos WHERE userFK = ".$_SESSION["nickname"]."");
$st->execute();

$db = null;

?>

Repare que na query 'WHERE userFK' você deve sustituir o 'userFK' pelo nome da coluna que armazena o id do usuário correspondente dentro dessa tabela 'accounts', ou seja, seria uma foreing key (FK) dentro da tabela 'accounts', pois na imagem que você postou não dá pra ver como se chama a coluna do ID do usuário nesta tabela.

 

Outro ponto é o $_SESSION. No caso reparei que existe um '$_SESSION['nickname']'. O $_SESSION deve estar relacionado com o ID do usuário que esta logado pois dessa forma a query SELECT retornará corretamente os resultados relacionados ao usuário logado.

 

Após ter criado o script 'update-pontos.php', abra o script que envia os dados do formulário para a tabela 'comentários' e inclua um 'include' na seguinte parte:


if(mysqli_insert_id($conn)){

	include_once 'update-pontos.php';

	$_SESSION['msg'] = "<p style='color:green;'>Comentário enviado com sucesso, obrigado por enviar o seu feedback.</p>";
	header("Location:/index.php/p/v/sucesso2");

}

Dessa forma, caso a mensagem seja enviada corretamente, este script também chama e executa o script 'update-pontos.php' que atualiza a coluna 'premium_points' atualizando os dados relativos a mesma.

 

Dê uma olhada neste exemplo que criei. Quando você inserir um comentário no campo e clicar no botão enviar comentário, a mensagem é inserida na tabela 'comentários' e ao mesmo tempo, com o sucesso da mensagem enviada, o campo 'premium_points' é atualizado em uma outra tabela chamada 'accounts'.

 

Por fim, basicamente a lógica é mais ou menos essa. Uns também criam funções para executar este tipo de tarefa outros preferem utilizar métodos simples desde que o script seja criado evitando sql injection

 

Tente adaptar ao seu projeto, lembrando de configurar a conexão conforme os dados do seu banco de dados, usuário e senha do mesmo.

 

Caso alguém deseje acrescentar alguma melhoria, fique a vontade.

ótimo, eu entendi, obrigado!

Só mais uma duvida, e como faço pra não enviar o comentário caso a tabela de pontos esteja em 0?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente fazer o seguinte:

 

Selecione exatamente a parte do código do formulário contato abaixo:

<div class="container-login100-form-btn">
                        <button type="submit" class="login100-form-btn">
                        Enviar
                        </button>
                    </div>
                    <br>
                            <div class="container-login100-form-btn">
                        <button type="reset" class="login100-form-btn">
                        Limpar Campos
                        </button>
                </div>

Em seguida, por cima dessa seleção que você fez, cole o script abaixo:

<?php 

$db = new PDO('mysql:host=localhost;dbname=sistema', 'user', 'pass');

$sth = $db->prepare("SELECT premium_points FROM accounts WHERE userFK = ".$_SESSION["nickname"]."");
$sth->execute();
$result = $sth->fetchColumn();
    
if ($result < 1): ?>

<h6>Você não possui pontos suficientes para comentar</h6>

<div class="container-login100-form-btn">
   <button type="submit" class="login100-form-btn" disabled>Enviar</button>
</div>

<br>

<div class="container-login100-form-btn">
   <button type="reset" class="login100-form-btn" disabled>Limpar Campos</button>
</div>

<?php else: ?>

<div class="container-login100-form-btn">
   <button type="submit" class="login100-form-btn" >Enviar</button>
</div>

<br>

<div class="container-login100-form-btn">
   <button type="reset" class="login100-form-btn" >Limpar Campos</button>
</div>

<?php endif ?> 

O script acima desabilitará os botões "Enviar" e "Limpar Campos" caso o usuário tenha zero premium_points, caso contrário os botões "Enviar" e "Limpar Campos" estarão habilitados.

 

Lembrando que você deve inserir as informações de conexão do banco de dados bem como se atentar para a parte da query "WHERE userFK" ser exatamente o nome da coluna da tabela "accounts" que armazena o ID do usuário cadastrado bem como o "$_SESSION["nickname"]" estar relacionado ao ID do usuário também. Dessa forma o resultado retornado estará relacionado ao usuário logado :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, michelmir disse:

Tente fazer o seguinte:

 

Selecione exatamente a parte do código do formulário contato abaixo:


<div class="container-login100-form-btn">
                        <button type="submit" class="login100-form-btn">
                        Enviar
                        </button>
                    </div>
                    <br>
                            <div class="container-login100-form-btn">
                        <button type="reset" class="login100-form-btn">
                        Limpar Campos
                        </button>
                </div>

Em seguida, por cima dessa seleção que você fez, cole o script abaixo:


<?php 

$db = new PDO('mysql:host=localhost;dbname=sistema', 'user', 'pass');

$sth = $db->prepare("SELECT premium_points FROM accounts WHERE userFK = ".$_SESSION["nickname"]."");
$sth->execute();
$result = $sth->fetchColumn();
    
if ($result < 1): ?>

<h6>Você não possui pontos suficientes para comentar</h6>

<div class="container-login100-form-btn">
   <button type="submit" class="login100-form-btn" disabled>Enviar</button>
</div>

<br>

<div class="container-login100-form-btn">
   <button type="reset" class="login100-form-btn" disabled>Limpar Campos</button>
</div>

<?php else: ?>

<div class="container-login100-form-btn">
   <button type="submit" class="login100-form-btn" >Enviar</button>
</div>

<br>

<div class="container-login100-form-btn">
   <button type="reset" class="login100-form-btn" >Limpar Campos</button>
</div>

<?php endif ?> 

O script acima desabilitará os botões "Enviar" e "Limpar Campos" caso o usuário tenha zero premium_points, caso contrário os botões "Enviar" e "Limpar Campos" estarão habilitados.

 

Lembrando que você deve inserir as informações de conexão do banco de dados bem como se atentar para a parte da query "WHERE userFK" ser exatamente o nome da coluna da tabela "accounts" que armazena o ID do usuário cadastrado bem como o "$_SESSION["nickname"]" estar relacionado ao ID do usuário também. Dessa forma o resultado retornado estará relacionado ao usuário logado :thumbsup:

maxresdefault-590x332.thumb.jpg.f9eed9e0af02c405514f0dbc28a231c7.jpgA tabela de contas são essas ai, e a "$_SESSION["nickname"]" deve ser "$_SESSION["name"]"
Eu alterei porém fala que não tenho ponto, mesmo tendo, sendo assim não consigo enviar o formulário

E alterei a linha para:

 

$sth = $db->prepare("SELECT premium_points FROM accounts WHERE name = ".$_SESSION["name"]."");
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais são as colunas após a coluna "premium_points?

 

Quanto a $_session['   '], dentro da mesma deverá conter algum nome que deve estar relacionado a algum valor dentro da tabela accounts. Normalmente é uma foreingKey. Outro ponto é verificar se o usuário logado contém pontos. Observei que na primeira imagem que você enviou, alguns usuários estão com a pontuação zerada. No caso você esta logado com alguma conta que possui pontos? Por fim, vamos testando as possibilidades baseando-se no que falamos aqui :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, michelmir disse:

Quais são as colunas após a coluna "premium_points?

 

Quanto a $_session['   '], dentro da mesma deverá conter algum nome que deve estar relacionado a algum valor dentro da tabela accounts. Normalmente é uma foreingKey. Outro ponto é verificar se o usuário logado contém pontos. Observei que na primeira imagem que você enviou, alguns usuários estão com a pontuação zerada. No caso você esta logado com alguma conta que possui pontos? Por fim, vamos testando as possibilidades baseando-se no que falamos aqui :thumbsup:

A conta que estou logado tem pontos, e mesmo alterando o ponto pra 0 ou pra 1, o site fica do mesmo jeito, não consegue enviar o formulário.

 $_session['   '] é name, que no caso é o login (conta) da pessoa(deixei $_session['name'])

As colunas estão na seguinte forma:

id name, password, premdays, lastday, email, key, blocked, warnings, group_id, page_acess, page_lastday, email_new_time, rlname, location, created, email_code, next_email, premium_points, nickname, avatar, about_me, language

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois de um tempo tentando, consegui fazer, só vai enviar caso ele esteja com um ou mais pontos, caso contrário os botão de enviar e limpar campo não aparece, e quando ele envia um comentário, os pontos vão para 0, no caso ele só poderá enviar uma vez!

Obrigado, você me ajudou demais.

O Código caso alguém esteja precisando também:

 

<?php 

$db = new PDO('mysql:host=localhost;dbname=awvenda2', 'root', '');
$sth = $db->prepare("SELECT `premium_points` FROM `accounts` WHERE `id` = ".$_SESSION['account_id']."");
$sth->execute();
$result = $sth->fetchColumn();
    
if ($result == 0): ?>

<h1>Você não possui pontos suficientes para comentar</h1>


<?php else: ?>

<div class="container-login100-form-btn">
<?php
$sth = $db->prepare("UPDATE `accounts` SET `premium_points` = '0' WHERE `accounts`.`id` = ".$_SESSION['account_id']."");
$sth->execute();
?>
   <button type="submit" class="login100-form-btn" >Enviar</button>
</div>

<br>

<div class="container-login100-form-btn">
   <button type="reset" class="login100-form-btn" >Limpar Campos</button>
</div>

<?php endif ?> 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Jack Oliveira
      Ola estou fazendo um instalador de banco de dados 
       
      em parte funciona  
       
      Mas quando uso o
      <<<HTML
       
      HTML;
       
      Ele fica com estas informações no top
       
      7.4 ao 8.38.0.28512MOnOnOnOffOffOnOffOffOnOnOnOnOnprogress-bar-success
       
      <?php $MeuHtml = <<<HTML <!DOCTYPE html> <html> <head><meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Instalação {$autor}</title> <link rel="icon" href="{$urlApi}api/allinstall/assets/icone.png?v={$versao}" sizes="32x32"> <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> <link rel="stylesheet" href="{$urlApi}api/allinstall/assets/css/app.css?v={$versao}"> <style type="text/css"> .license { background-color: #FFF; height: 400px; width: 100%; margin: 10px; } .form-control{ margin-bottom: 5px; } #primary{background: #FF6403} .paper-card{background: #272c33} .card{background: none;} .sw-theme-circles>ul.step-anchor:before{background-color: #30363d} .sw-theme-circles>ul.step-anchor>li>a{border: 3px solid #30363d} .sw-theme-circles>ul.step-anchor>li>a{background: #f5f5f5; min-width: 50px; height: 50px; text-align: center; -webkit-box-shadow: inset 0 0 0 3px #fff!important; box-shadow: inset 0 0 0 3px #fff!important; text-decoration: none; outline-style: none; z-index: 99; color: #999; background: #fff; line-height: 2; font-weight: bold;} .sw-theme-circles>ul.step-anchor>li{margin-left: 15%;} .card-header{border-bottom: 0} .table-striped tbody tr:nth-of-type(odd){background-color: #30363d;} .table-bordered{border: 1px solid #30363d;} .table-bordered td, .table-bordered th { border: 1px solid #30363d; } </style> </head> <body class="light loaded"> <div id="app"> <main> <div id="primary" class="p-t-b-100 height-full"> <div class="container"> <div class="row"> <div class="col-lg-8 mx-md-auto paper-card"> <div class="text-center"> <img class="img-responsive" src="{$urlApi}api/allinstall/assets/{$imagem}?v={$versao}"> <p><strong><H3>Instalação {$projeto} | V: {$versao}</H3></strong></p> </div> HTML; if (!isset($_GET['step']) || $_GET['step'] == '1') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li><a href="#step-2y">2</a></li> <li><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <h6><b>Configurações do Servidor</b></h6><br> <table class="table table-condensed table-bordered table-striped"> <tr> <th>Função / Extensão</th> <th>Config. Necessária</th> <th>Config. Atual</th> <th width="50px">Status</th> </tr> <tr> <td>Versão do PHP</td> <td> HTML; echo $php7. ' ao '.$php8; $MeuHtml .= <<<HTML </td> <td> HTML; echo phpversion(); $MeuHtml .= <<<HTML </td> <td> HTML; if(phpversion() >= $php7 && phpversion() <= $php8) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> HTML; $MeuHtml .= <<<HTML <tr> <td>Memória do PHP</td> <td>128MB</td> <td> HTML; echo $mem = ini_get('memory_limit'); $MeuHtml .= <<<HTML </td> <td> HTML; if($mem >= 128) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>cURL</td> <td>On</td> <td> HTML; if(function_exists('curl_init')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('curl_init')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Allow URL fopen</td> <td>On</td> <td> HTML; if(ini_get('allow_url_fopen')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(ini_get('allow_url_fopen')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>File Get Contents</td> <td>On</td> <td> HTML; if(function_exists('file_get_contents')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('file_get_contents')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Sessão Auto Start</td> <td>Off</td> <td> HTML; if(ini_get('session_auto_start')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('session_auto_start')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Safe Mode</td> <td>Off</td> <td> HTML; if(ini_get('safe_mode')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('safe_mode')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Short Open Tags</td> <td>On</td> <td> HTML; if(ini_get('short_open_tag')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(ini_get('short_open_tag')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Magic Quotes GPC</td> <td>Off</td> <td> HTML; if(ini_get('magic_quotes_gpc')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('magic_quotes_gpc')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>Register Globals</td> <td>Off</td> <td> HTML; if(ini_get('register_globals')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(!ini_get('register_globals')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>PHPMail</td> <td>On</td> <td> HTML; if(function_exists('mail')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(function_exists('mail')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { $i = $i + 1; echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>MySQLi</td> <td>On</td> <td> HTML; if(extension_loaded('mysqli')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('mysqli')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>ZIP</td> <td>On</td> <td> HTML; if(extension_loaded('zip')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('zip')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>MBString</td> <td>On</td> <td> HTML; if(extension_loaded('mbstring')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('mbstring')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> <tr> <td>XML</td> <td>On</td> <td> HTML; if(extension_loaded('libxml')) { echo 'On'; } else { echo 'Off'; } $MeuHtml .= <<<HTML </td> <td> HTML; if(extension_loaded('libxml')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> </table> <hr> <h6><b>Diretórios e Permissões de Arquivos</b></h6><br> <table class="table table-condensed table-bordered table-striped"> <tr> <th>Diretório</th> <th style="width: 40px">Status</th> </tr> <tr> <td>database</td> <td> HTML; if(is_writable('database')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } $MeuHtml .= <<<HTML </td> </tr> </table> <hr> <h6><b>Pontuação / Compatibilidade</b></h6><br> <div class="progress"> <div class="progress-bar progress-bar-striped progress-bar-animated HTML; echo ProgressBar(substr(VerificaPontuacao($i,'16'),0,4)); $PontPorce = VerificaPontuacao($i,'16'); $pont100 = substr(VerificaPontuacao($i,'16'),0,4); $MeuHtml .= <<<HTML " role="progressbar" aria-valuemax="100" style="width: {$PontPorce}%;"> <strong>{$pont100} / 100</strong> </div> </div> <center> <br> <button class="btn btn-primary" onclick="document.location.href='{$URL}?step=1';">Verificar</button> <button class="btn btn-primary" onclick="document.location.href='{$URL}?step=2';">Próximo</button> </center> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '2') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body "> <iframe src="{$urlApi}api/allinstall/termos.php{$Frame}" class="license" frameborder="0" scrolling="auto"></iframe> <form action="setup.php"> <input type="hidden" name="step" value="3"> <label><input type="checkbox" required=""> Sim, eu aceito</label> <center> <br> <a href="javascript:history.back()"><button class="btn btn-primary">Voltar</button></a> <button class="btn btn-primary" type="submit">Próximo</button> </center> </form> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '3') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li class="active"><a href="#step-3y">3</a></li> <li><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <form method="post" action="?InstallDB"> <h6><b>1. MySQL - Configuração do Banco de Dados</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">MySQL Host:</label> <div class="col-sm-9"> <input class="form-control" name="dbhost" value="localhost" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Usuário MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbuser" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbpass"> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Banco MySQL:</label> <div class="col-sm-9"> <input class="form-control" name="dbname" required> </div> </div> <h6><b>2. Configuração Comum</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Site:</label> <div class="col-sm-9"> <input class="form-control" name="nomesite" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">URL do Site:</label> <div class="col-sm-9"> <input class="form-control" name="urlsite" value="{$urlsite}" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">URL de Instalação:</label> <div class="col-sm-9"> <input class="form-control" name="siteurl" value="{$siteurl}" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Extensão:</label> <div class="col-sm-9"> <select class="form-control" name="extensao" required> <option value=""> Selecionar Extensão </option> <option value="1"> MYSQLI </option> <option value="2"> PDO </option> </select> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Define TimeZone:</label> <div class="col-sm-9"> <select class="form-control" name="timezone" id="timezone"> HTML; foreach ($timezones as $timezone) : echo '<option value="'.$timezone.'" '.$timezone === $current_timezone ? 'selected' : ''.'> '.$timezone.' </option>'; endforeach; $MeuHtml .= <<<HTML </select> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">E-mail:</label> <div class="col-sm-9"> <input class="form-control" name="email" required> <em>Mesmo e-mail cadastrado em nosso Site.</em> </div> </div> <h6><b>3. Configuração do Administrador</b></h6><hr> <div class="form-group row"> <label class="col-sm-3 control-label">Nome do Usuário:</label> <div class="col-sm-9"> <input class="form-control" name="usuario" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Login:</label> <div class="col-sm-9"> <input class="form-control" name="login" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha:</label> <div class="col-sm-9"> <input class="form-control" type="password" name="senha" required> </div> </div> <div class="form-group row"> <label class="col-sm-3 control-label">Senha[confimação]:</label> <div class="col-sm-9"> <input class="form-control" type="password" name="senhaconfirm" required> </div> </div> <center> <a class="btn btn-primary" href="javascript:history.back()">Voltar</a> <button class="btn btn-primary">Próximo</button> </center> </form> </div> </div> HTML; } elseif (isset($_GET['step']) && $_GET['step'] == '4') { $MeuHtml .= <<<HTML <div class="card no-b"> <div class="card-header pb-0"> <div class="stepper sw-main sw-theme-circles" id="smartwizard" data-options='{ "theme":"sw-theme-circles", "transitionEffect":"fade" }'> <ul class="nav step-anchor"> <li><a href="#step-1y">1</a></li> <li class="active"><a href="#step-2y">2</a></li> <li class="active"><a href="#step-3y">3</a></li> <li class="active"><a href="#step-4y">4</a></li> </ul> </div> </div> <div class="card-body"> <div> <h4><b>Instalação realizada com sucesso!</b></h4> <p>Agora você poderá utilizar o seu {$projeto}, em caso de dúvidas entre em contato com o suporte: <b>{$emailautor}</b></p> </div> <center> <form action="{$URL}?step=4" method="post"> <button type="submit" name="realizar_login" class="btn btn-primary">Realizar Login</button> </form> </center> </div> </div> HTML; } if (isset($_POST['realizar_login'])) { // Deletar os arquivos @unlink('setup.php'); @unlink($URL); @unlink('termos.php'); @unlink('database/BD.sql'); @unlink('controller/setup.php'); // Redirecionar para a página de login ou outra página desejada header('Location: login.php?finish'); exit; } $MeuHtml .= <<<HTML <div class="box-footer"> <center> Todos os Direitos Reservados {$autor} </center> </div> </div> </div> </div> </div> </main> </div> <script src="{$urlApi}api/allinstall/assets/js/app.js"></script> </body> </html> HTML; echo $MeuHtml;  
    • Por Jack Oliveira
      Ola pessoal, boa noite a todos
       
      Bom é o seguinte tenho um codigo html onde selecione um modelo de site para poder criar na base selecionada, ele criar ate então, mas ele esta pegando somente o index.html
      Mas quero que ele salva junto ao novo projeto o css, js, img, images, assets e fonts, quando faço os ajuste para que pega tudo isso ele me da erro ao salvar 
      Vou mostra parte do html onde faz a seleção dos modelos
       
      <!-- new page modal--> <div class="modal fade" id="new-page-modal" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <form id="newPageForm" method="POST" action="save.php"> <div class="modal-content"> <div class="modal-header"> <h6 class="modal-title text-primary fw-normal"><i class="la la-lg la-file"></i> Nova página</h6> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"> </button> </div> <div class="modal-body text"> <div class="mb-3 row" data-key="type"> <label class="col-sm-3 col-form-label"> Modelo <abbr title="O conteúdo deste modelo será usado como ponto de partida para o novo modelo"> <i class="la la-lg la-question-circle text-primary"></i> </abbr> </label> <div class="col-sm-9 input"> <div> <select class="form-select" name="startTemplateUrl"> <option value="themes/modelo-branco/branco-template.html">Modelo em branco</option> <option value="themes/modelo1/index.html">Modelo 1 de L2</option> <option value="themes/modelo2/index.html">Modelo 3 de L2</option> <option value="themes/modelo3/index.html">Modelo 3 de L2 </option> </select> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Nome da página</label> <div class="col-sm-9 input"> <div> <input name="title" type="text" value="Minha página" class="form-control" placeholder="Minha página" required> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Nome do arquivo</label> <div class="col-sm-9 input"> <div> <input name="file" type="text" value="my-page.html" class="form-control" placeholder="index.html" required> </div> </div> </div> <div class="mb-3 row" data-key="href"> <label class="col-sm-3 col-form-label">Salvar na pasta</label> <div class="col-sm-9 input"> <div> <input name="folder" type="text" value="my-pages" class="form-control" placeholder="/" required> </div> </div> </div> </div> <div class="modal-footer"> <button class="btn btn-secondary btn-lg" type="reset" data-bs-dismiss="modal"><i class="la la-times"></i> Cancelar</button> <button class="btn btn-primary btn-lg" type="submit"><i class="la la-check"></i> Criar página</button> </div> </div> </form> </div> </div> A ideia aqui é salvar tudo que tiver depois do themes/demo1/
      quando ele salva so salva 
      my-pasta/index.html
      e quando for salva ele salva dentro de um pasta Projetos/MeuSite1
      Projetos/MeuSite2  e assim vai
      Este é o save.php
       
      <?php define('MAX_FILE_LIMIT', 1024 * 1024 * 2);//Tamanho máximo de arquivo HTML de 2 megabytes define('ALLOW_PHP', false);//verifique se o html salvo contém tag php e não salve se não for permitido define('ALLOWED_OEMBED_DOMAINS', [ 'https://www.youtube.com/', 'https://www.vimeo.com/', 'https://www.twitter.com/' ]);//carregar URLs apenas de sites permitidos para oembed function sanitizeFileName($file, $allowedExtension = 'html') { $basename = basename($file); $disallow = ['.htaccess', 'passwd']; if (in_array($basename, $disallow)) { showError('Nome de arquivo não permitido!'); return ''; } //sanitize, remova o ponto duplo .. e remova os parâmetros get, se houver $file = preg_replace('@\?.*$@' , '', preg_replace('@\.{2,}@' , '', preg_replace('@[^\/\\a-zA-Z0-9\-\._]@', '', $file))); if ($file) { $file = __DIR__ . DIRECTORY_SEPARATOR . $file; } else { return ''; } //permitir apenas extensão .html if ($allowedExtension) { $file = preg_replace('/\.[^.]+$/', '', $file) . ".$allowedExtension"; } return $file; } function showError($error) { header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500); die($error); } function validOembedUrl($url) { foreach (ALLOWED_OEMBED_DOMAINS as $domain) { if (strpos($url, $domain) === 0) { return true; } } return false; } $html = ''; $file = ''; $action = ''; if (isset($_POST['startTemplateUrl']) && !empty($_POST['startTemplateUrl'])) { $startTemplateUrl = sanitizeFileName($_POST['startTemplateUrl']); $html = ''; if ($startTemplateUrl) { $html = file_get_contents($startTemplateUrl); } } else if (isset($_POST['html'])){ $html = substr($_POST['html'], 0, MAX_FILE_LIMIT); if (!ALLOW_PHP) { //if (strpos($html, '<?php') !== false) { if (preg_match('@<\?php|<\? |<\?=|<\s*script\s*language\s*=\s*"\s*php\s*"\s*>@', $html)) { showError('PHP não permitido!'); } } } if (isset($_POST['file'])) { $file = sanitizeFileName($_POST['file']); } if (isset($_GET['action'])) { $action = htmlspecialchars(strip_tags($_GET['action'])); } if ($action) { //ações do gerenciador de arquivos, excluir e renomear switch ($action) { case 'rename': $newfile = sanitizeFileName($_POST['newfile']); if ($file && $newfile) { if (rename($file, $newfile)) { echo "Arquivo '$file' renomeado para '$newfile'"; } else { showError("Erro ao renomear arquivo '$file' renomeado para '$newfile'"); } } break; case 'delete': if ($file) { if (unlink($file)) { echo "Arquivo '$file' excluído"; } else { showError("Erro ao excluir arquivo '$file'"); } } break; case 'saveReusable': //bloco ou seção $type = $_POST['type'] ?? false; $name = $_POST['name'] ?? false; $html = $_POST['html'] ?? false; if ($type && $name && $html) { $file = sanitizeFileName("$type/$name"); if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir pasta não existe\n"; if (mkdir($dir, 0777, true)) { echo "$dir pasta foi criada\n"; } else { showError("Erro ao criar pasta '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "Arquivo salvo '$file'"; } else { showError("Erro ao salvar arquivo '$file'\nAs possíveis causas são falta de permissão de gravação ou caminho de arquivo incorreto!"); } } else { showError('Nome de arquivo inválido!'); } } else { showError("Faltam dados de elementos reutilizáveis!\n"); } break; case 'oembedProxy': $url = $_GET['url'] ?? ''; if (validOembedUrl($url)) { header('Content-Type: application/json'); echo file_get_contents($url); } else { showError('URL inválida!'); } break; default: showError("Ação inválida '$action'!"); } } else { //salvar pagina if ($html) { if ($file) { $dir = dirname($file); if (!is_dir($dir)) { echo "$dir pasta não existe\n"; if (mkdir($dir, 0777, true)) { echo "$dir pasta foi criada\n"; } else { showError("Erro ao criar pasta '$dir'\n"); } } if (file_put_contents($file, $html)) { echo "Arquivo salvo '$file'"; } else { showError("Erro ao salvar arquivo '$file'\nAs possíveis causas são falta de permissão de gravação ou caminho de arquivo incorreto!"); } } else { showError('O nome do arquivo está vazio!'); } } else { showError('O conteúdo HTML está vazio!'); } } Espero que possam entender o que preciso aqui....  fico no aguardo!  quando eu tento mudar a forma de salva no php, ele me da erro de que não foi salvo, e volta ao orginal como esta ai acima ele salva, talvez eu esteja escapando alguma coisa que não estou vendo.... 
    • Por juliosonic
      Boa noite..
      Estou desenvolvendo um site de https://www.maithunatantra.com.br/ e estou com um duvida sobre o menu de navegação da versão mobile.
      O menu que tem o dropdown "Terapeutas" e "Terapias" quando clico em cima ele expande como deve ser, mas quando clico denovo para recolher os submenus
      nao acontece nada.. segue o trecho do codigo do menu..
      <div class="collapse navbar-collapse" id="navbarsExample09">             <ul class="navbar-nav ml-auto">               <li class="nav-item  active"><a class="nav-link" href="index.html">Home</a></li>               <li class="nav-item  active"><a class="nav-link" href="about-us.html">Quem Somos</a></li>               <li class="nav-item dropdown1">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapeutas</a>                     <ul class="dropdown-menu">                         <li><a class="dropdown-item" href="terapeuta-julio-cezar.html">Julio Cezar</a></li>                         <li><a class="dropdown-item" href="terapeuta-pamela-priscila.html">Pamela Priscila</a></li>                     </ul>                                    </li>               <li class="nav-item dropdown">                     <a class="nav-link dropdown-toggle" data-toggle="dropdown1" href="#">Terapias</a>                     <ul class="dropdown-menu" aria-labelledby="dropdown01">                         <li><a class="dropdown-item" href="o-que-e-reiki.html">O que é Reiki</a></li>                         <li><a class="dropdown-item" href="beneficios-reiki.html">Benefícios do Reiki</a></li>                         <li><a class="dropdown-item" href="principios-reiki.html">Princípios do Reiki</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Reiki em Animais</a></li>                         <li><a class="dropdown-item" href="animais-reiki.html">Estudos Sobre Reiki</a></li>                         <li><a class="dropdown-item" href="terapia-massagem-tantrica.html">Terapia Tântrica</a></li>                     </ul>               </li>               <li class="nav-item  active"><a class="nav-link" href="blog.html">Blog</a></li>                <li class="nav-item"><a class="nav-link" href="contato.html">Contato</a></li>             </ul>         </div>  
      Massagem Tantrica em Curitiba
      Tantra Curitiba
      Massagem Tântrica
      Tantra
      Julio Darshan

      Obrigado
      Att
      Julio Cezar
       
       
       
    • Por joeythai
      Boa tarde pessoal,
       
      Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz
       
      <code>
           $(document).ready(function (event) {   let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal');   // apply_removal.on('click', function () { // percentage = $('#percentage').val();   // $('.table-body tr').each(function () {   // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text();   // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // })   // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // });   apply_removal.on('click', function () { percentage = $('#percentage').val();   $('.table-body tr').each(function () {   let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text();   removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck })   $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2));     console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); });   $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id);   $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },   success: function (data) { $('.table-body').empty();   for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID;   let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>';   $('.table-body').append(newRow); //let row = $('.removal-row:last');   // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado);   // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2));   arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); }   $('#copy_data_table').val(JSON.stringify(arrayData)); }   }); });   //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city').empty(); $('#deposit').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); }   if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); }   $('#city').trigger('change'); } });   });   $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); });   $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city_destiny').empty(); $('#deposit_destiny').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); }   if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); }   $('#city_destiny').trigger('change'); } }); });   $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); });   }); </code>
    • Por babylon
      Olá galera tudo bem?
      Deixa eu perguntar, estava mexendo no meu site e queria adicionar em html essa tabela porem esta dando erro pois fica assim:
       

      Porem gostaria que ficasse assim:

      Segue o código da tabela:
      <center><table border="0">
          <tr>
      <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Bicicleta<br> <font color="#0092df">..</font>Track Bikes<br> <font color="#0092df">..</font>Aro 29 TKS</b></a></span><br><br><font size="5"><center><span style="background-color: #A1CD44">DE:</span></font> <br><font size="5"><s>R$ 1.999,99</center></font></s> </td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itembicicleta.jpg"><br><font size="5"><center><span style="background-color: #A1CD44">COM - 60%:</span></font> <br><font size="5">1.199,99</font></center></a></td>
             <td><font color="#ffffff">....</font></td>
              <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Monitor 24"<br> <font color="#0092df">..</font>Samsung<font color="#0092df">aa.aa</font><br> <font color="#0092df">..</font>1ms 144hz</b></a></span></center></td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itemmonitor.jpg"></a></td>
          </tr>
          </table></center>
      O que estaria errado, pois não sei como colocar nessa tabela outro fundo de outra cor, veja que usei td bgcolor="#0092df" para o azul escuro mas não sei como usaria pro "#e4f1fb" para o fundo ficar de azul claro em baixo bem como não ficou correto em altura o "DE:" com o "COM - 60%:".
      Bom é isso, obg.


×

Informação importante

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