teckV Posted February 21, 2006 at 02:41 PM Report Share #14838 Posted February 21, 2006 at 02:41 PM Neste post apresentam-se funcionalidades bastante interessantes de DHTML e forms dinamicos com PHP... a ideia é criar um form com registos a partir de uma bd e poder selecionar alguns desses registos recorrendo a uma array dinamica de checkboxes... os valores foram alterados por motivos obvios... qualquer duvida perguntem 😛 <<html> <head> <script type="text/javascript"> function checkAll(thisForm) { for (i = 0; i < thisForm.chkboxVul.length; i++) { thisForm.chkboxVul.checked=true } } function uncheckAll(thisForm) { for (i = 0; i < thisForm.chkboxVul.length; i++) { thisForm.chkboxVul.checked=false } } function preSubmit(thisForm) { thisForm.vulnsSelected.value=""; for (i = 0; i < thisForm.chkboxVul.length; i++) { if (thisForm.chkboxVul.checked) { thisForm.vulnsSelected.value = thisForm.vulnsSelected.value + thisForm.chkboxVul.value +'##'; } } thisForm.submit(); } </script> </head> <body> <? include_once('../config.php'); function get_vuln_user(){ global $con; $query = "SELECT dbo.historico.Hist_Vuln_maquina, dbo.historico.Hist_Vuln_ip, dbo.historico.Hist_Vuln_servico, dbo.historico.Hist_Vuln_pluginid, dbo.historico.Hist_Vuln_plugin, dbo.historico.Hist_Vuln_hostareaSAV, dbo.SEC_users.user_login FROM dbo.SEC_areas_owners INNER JOIN dbo.historico ON dbo.SEC_areas_owners.plataforma = dbo.historico.Hist_Vuln_hostareaSAV INNER JOIN dbo.SEC_users ON dbo.SEC_areas_owners.id = dbo.SEC_users.id_area "; $logUser = $_REQUEST['user']; $vuln_get = $_REQUEST['vuln']; $maq_get = $_REQUEST['maq']; if (!empty($vuln_get)) $query = $query."WHERE (dbo.SEC_users.user_login = '".$logUser."' AND dbo.historico.Hist_Vuln_pluginid = '".$vuln_get."')"; elseif (!empty($maq_get)) $query = $query."WHERE (dbo.SEC_users.user_login = '".$logUser."' AND dbo.historico.Hist_Vuln_maquina = '".$maq_get."')"; else $query = $query."WHERE (dbo.SEC_users.user_login = '".$logUser."')"; $result=mssql_query($query, $con); $num=mssql_num_rows($result); ?> <BODY text="#000000" link="#0000ff" alink="blue" vlink="#b22222"> <? include('header_owners.php'); ?><br> <table border=0 cellspacing=0 cellpadding=0 bgcolor="#dddddd"> <tr bgcolor="#6487DB"> <td width="10%"><b>MÁQUINA</b></td><td width="25%"><b>PLUGIN</b></td> <td width="5%"><b>IP</b></td><td width="20%"><b>SERVIÇO</b></td> <td width="15%"<b>RAV CORREC</b></td><td width="15%"><b>RAV JUST</b></td> </tr> <form name="ownersForm" action="formner.php" method="post"> <? $i=0; while ($i < $num) { $maquina=mssql_result($result,$i,"Hist_Vuln_maquina"); $ip=mssql_result($result,$i,"Hist_Vuln_ip"); $servico=mssql_result($result,$i,"Hist_Vuln_servico"); $plugin=mssql_result($result,$i,"Hist_Vuln_plugin"); $pluginid=mssql_result($result,$i,"Hist_Vuln_pluginid"); $queryRav = "SELECT rav_comment, rav_correction, rav_id FROM dbo.RAV WHERE (rav_id ='".$pluginid."')"; $resultRAV=mssql_query($queryRav, $con); $numRav=mssql_num_rows($resultRAV); if ($numRav <> 0) { $rav_correction = mssql_result($resultRAV,0,"rav_correction"); $rav_comment = mssql_result($resultRAV,0,"rav_comment"); } else { $rav_correction = "Sem Rav"; $rav_comment = "Sem Rav"; } ?> <tr> <td><a href="vulner.php?maq=<?echo $maquina ?>&user=<?echo $logUser ?>"><?echo $maquina ?></a></td> <td><INPUT name=chkboxVul type=checkbox value=<?echo $pluginid ?>#<?echo $maquina ?>#<?echo $logUser ?>> <a href="vulner.php?vuln=<?echo $pluginid ?>&user=<?echo $logUser ?>"><?echo $plugin ?></a></td> <td><a href="formner.php?vuln=<?echo $pluginid ?>&maq=<?echo $maquina ?>&user=<?echo $logUser ?>"><?echo $ip ?></a></td> <td><? echo $servico ?></td> <td><TEXTAREA id=TEXTAREA1 name=TEXTAREA1 style="WIDTH: 100%"><? echo $rav_correction ?></TEXTAREA></td> <td><TEXTAREA id=TEXTAREA1 name=TEXTAREA1 style="WIDTH: 100%"><? echo $rav_comment ?></TEXTAREA></td> </tr> <? $i++; } ?> </table> <br> <table border=1 cellspacing=1 cellpadding=0 bgcolor="#a9a9a9" align="center"> <td width="50%" align="center"> <input type="button" value="Check" onclick="checkAll(this.form)"> <input type="button" value="Uncheck" onclick="uncheckAll(this.form)"> <input type="button" value="submit" onclick="preSubmit(this.form)"> </td> <td width="50%" align="center"> <a href="javascript:history.back();">Voltar</a> </td> </table> <INPUT TYPE="HIDDEN" NAME="vulnsSelected"> </form> </body> <? } get_vuln_user(); ?></html> :nono: ? :smoke: Link to comment Share on other sites More sharing options...
teckV Posted February 21, 2006 at 02:45 PM Author Report Share #14839 Posted February 21, 2006 at 02:45 PM <b><center>CORRECÇÃO DE VULNERABILIDADES</center></b><br> <table border="0" cellspacing="0" cellpadding="4" width="100%" align="center" bgcolor="#ffffff"> <? include_once('../config.php'); function update_hist_vuln() { global $con; $logUser = $_REQUEST['user']; $vuln_get = $_REQUEST['vuln']; $maq_get = $_REQUEST['maq']; $sql= "UPDATE Hist_Vuln SET ". "Hist_Vuln_fpreason = '" . str_replace("'","''", $vuln_get) . "'," . "Hist_Vuln_justification = '" . str_replace("'","''", $maq_get) . "'," . " WHERE Hist_Vuln_maquina = '" . $maq_get . "' AND dbo.historico.Hist_Vuln_pluginid = '".$vuln_get."' AND dbo.historico.Hist_Vuln_maquina = '".$maq_get."'"; if (mssql_query($sql, $con)) { return true; } return false; } function draw_Justifications() { global $con; $query_justif = "SELECT descricao FROM dbo.SEC_justificacoes"; $result_justif=mssql_query($query_justif, $con); $num_justif=mssql_num_rows($result_justif); $i=0; ?> <tr> <td width="20%" align="right"></td> <td width="5%" align="center"><b>Justificação:</b></td> <td width="75%"> <select name="opt_corr"> <option value="Baixo">Seleccione a Justificação</option> <? while ($i < $num_justif) { $valJus=mssql_result($result_justif,$i,"descricao"); echo "<option value=".$valJus.">".$valJus."</option>"; $i=$i+1; } ?> </select> </td> </tr> <? } function head_query() { $qhead = "SELECT dbo.historico.Hist_Vuln_descricao, dbo.historico.Hist_Vuln_maquina, dbo.historico.Hist_Vuln_pluginid, dbo.historico.Hist_Vuln_ip, dbo.historico.Hist_Vuln_plugin, dbo.historico.Hist_Vuln_vuln_state, dbo.historico.Hist_Vuln_risco, dbo.historico.Hist_Vuln_estado, dbo.SEC_users.user_login, dbo.SEC_areas_owners.plataforma, dbo.SEC_areas_owners.id, dbo.SEC_users.id_area FROM dbo.SEC_areas_owners INNER JOIN dbo.historico ON dbo.SEC_areas_owners.plataforma = dbo.historico.Hist_Vuln_hostareaSAV INNER JOIN dbo.SEC_users ON dbo.SEC_areas_owners.id = dbo.SEC_users.id_area "; return $qhead; } function get_hist_vuln(){ global $con; $vulsSelected = $_REQUEST['vulnsSelected']; $logUser = $_REQUEST['user']; $vuln_get = $_REQUEST['vuln']; $maq_get = $_REQUEST['maq']; if (empty($vuln_get) and empty($logUser) and empty($maq_get)) { $vulns_all = split('##', $vulsSelected); foreach ($vulns_all as $k => $val) { $vulns_slice = split('#', $val); foreach ($vulns_slice as $kk => $val2) { $vuln_get = $vulns_slice[0]; $maq_get = $vulns_slice[1]; $logUser = $vulns_slice[2]; } $query = head_query(); $query = $query."WHERE (dbo.SEC_users.user_login = '".$logUser."' AND dbo.historico.Hist_Vuln_maquina = '".$maq_get."' AND dbo.historico.Hist_Vuln_pluginid = '".$vuln_get."')"; $result=mssql_query($query, $con); if (mssql_num_rows($result)!=0) { $maquina=mssql_result($result,0,"Hist_Vuln_maquina"); $plugin=mssql_result($result,0,"Hist_Vuln_plugin"); $pluginid=mssql_result($result,0,"Hist_Vuln_pluginid"); ?> <tr> <td width="20%" align="right"><? echo $maquina ?></td> <td width="5%" align="center"><b>PlugIn:</b></td> <td width="75%"><? echo $plugin ?></td> </tr> <? } } } ?> <tr> <td width="20%" align="right" bgcolor="#cccccc"></td> <td width="5%" align="center" bgcolor="#cccccc"><b>Correcção</b></td> <td width="75%" bgcolor="#cccccc"> </td> </tr> <tr> <td width="20%" align="right"></td> <td width="5%" align="center"><b>Estado:</b></td> <td width="75%"> <select name="opt_jus"> <option value="Baixo">Seleccione o Estado</option> <option value="Baixo" >Corrigido</option> <option value="Médio" >Falso Positivo</option> <option value="Alto" >Vulnerável</option> </select> </td> </tr> <? draw_Justifications(); ?> <tr> <td width="20%" align="right"></td> <td width="5%" align="center" valign="top"><b>Descrição Correcção Efectuada:</b></td> <td width="75%"><textarea name="rav_solution" cols="70" rows="5"></textarea></td> </tr> </tbody> </table> <br> <table border=1 cellspacing=1 cellpadding=0 bgcolor="#a9a9a9" align="center"> <td width=150 align="center"> <a href="javascript:history.back();">Confirmar</a> <a href="javascript:history.back();">Voltar</a> </td> </table> <? } get_hist_vuln(); ?> 😛 Link to comment Share on other sites More sharing options...
Ped@ntilva Posted February 21, 2006 at 02:55 PM Report Share #14841 Posted February 21, 2006 at 02:55 PM include_once('../config.php'); isto tem mais que um ficheiro, certo? este codigo todo é so dum ou de vários? devias por tudo dentro dum quote de codigo; do tipo: <<html> <head> <script type="text/javascript"> function checkAll(thisForm) { for (i = 0; i < thisForm.chkboxVul.length; i++) { thisForm.chkboxVul.checked=true } } function uncheckAll(thisForm) { for (i = 0; i < thisForm.chkboxVul.length; i++) { thisForm.chkboxVul.checked=false } } function preSubmit(thisForm) { thisForm.vulnsSelected.value=""; for (i = 0; i < thisForm.chkboxVul.length; i++) { if (thisForm.chkboxVul.checked) { thisForm.vulnsSelected.value = thisForm.vulnsSelected.value + thisForm.chkboxVul.value +'##'; } (...) Link to comment Share on other sites More sharing options...
teckV Posted February 23, 2006 at 10:22 AM Author Report Share #15058 Posted February 23, 2006 at 10:22 AM ya... vou começar a colocar em quote de código.. é que faço isto no trabalho e o tempo para estar no site é curto, tipo sucapa... a ideia de colocar código não é de criar programas completamente funcionais mas sim dar exemplos de diversas rotinas e estratégias para atingir diversos fins. Eu uso muito código na net como referencia e gostava que nesta comunidade começasse a ser possivel o mesmo. o código apresentado são dois files de uma app completa desenvolvida por mim que não faz sentido colocar em posts... já agora.. não acham interessante uma secção com código exemplo onde se pudessem descarregar apps completas e os seus componentes tipos scripts de bd, etc? Tenho muito código para disponibilizar... Link to comment Share on other sites More sharing options...
Ped@ntilva Posted February 23, 2006 at 10:31 AM Report Share #15059 Posted February 23, 2006 at 10:31 AM já agora.. não acham interessante uma secção com código exemplo onde se pudessem descarregar apps completas e os seus componentes tipos scripts de bd, etc? Tenho muito código para disponibilizar... Já estão a criar um projecto para tal efeito. http://www.portugal-a-programar.pt/index.php?showtopic=1431 Mas aqui no forum também é possivel colocares ficheiros. Para isso tens de mandar um email aos administradores com os files. Se não me engano é este o mail... portugal-a-programar@gmail.com Cumps Pedantilva Link to comment Share on other sites More sharing options...
alfatek Posted February 23, 2006 at 05:13 PM Report Share #15090 Posted February 23, 2006 at 05:13 PM porque é que usas $_REQUEST ? Idealmente devias usar $_POST, porque é isso que pretendes (ou $_COOKIE ou whatever, n li o código com mt atenção 🙂 ). Apesar disso n ser suficiente para verificar o input, sempre ajuda e torna o código + legível... Link to comment Share on other sites More sharing options...
teckV Posted February 24, 2006 at 10:15 AM Author Report Share #15139 Posted February 24, 2006 at 10:15 AM esse código é uma snapshot de desenvolvimento, não um produto final e a ideia é para os novatos terem uma ideia de como as coisas funcionam e não estar a explicar a quem já sabe... como sabem o $_POST recebe os valores passados pelo metodo post e só por POST... na fase de dev o código em cima recebia valor na querystring pelo metodo GET e outras vezes por POST... questões relacionadas com o fluxo de DEV... usando o $_REQUEST temos acesso ao array de valores passados por POST, GET e tambem os COOKES Resumo... Se o valor for passado por GET usem o $_GET(var); Se o valor for passado por POST usem o $_POST(var); Para situações em que querem aceder a todos usem o $_REQUEST(var); [move]VIVA A VICTORIA SECRETS - É A MELHOR AMIGA DO HOMEM[/move] Link to comment Share on other sites More sharing options...
M@KO Posted March 5, 2006 at 04:34 PM Report Share #16910 Posted March 5, 2006 at 04:34 PM Boas! Eu quero fazer um guestbook mas preciso de ajuda ? To a usar uma tabela, na primeira linha fiz um formulario com um botao e queria que ao carregar nesse botao a mensagem ficava gravada na outra linha. Já vi que a mensagem fica gravada entre a tag <blockquote></blockquote> mas nao sei programar o botao Se algum me poder dar uma ajudinha era porreiro Cumps! cool stuff http://blog.zxcoders.com/ Link to comment Share on other sites More sharing options...
saramgsilva Posted March 5, 2006 at 09:05 PM Report Share #16939 Posted March 5, 2006 at 09:05 PM ve isto aqui www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5 Link to comment Share on other sites More sharing options...
teckV Posted March 6, 2006 at 12:33 PM Author Report Share #17007 Posted March 6, 2006 at 12:33 PM oi tudo fix? como sabem em ambientes web a arquitectura aplicacional divide-se em dois componentes Servidor e Cliente (pode-se conceptualmente dividir de outras formas mas agora é esta que interessa) Quando se coloca um ficheiro PHP num servidor e ele é acedido remotamente por um cliente (browser tipo Internet Explorer) ele é intrepertado no servidor e cria código HTML para enviar para o Browser (o Browser é um intrepetador de HTML e não só. Recebe HTML e apresenta uma página conforme esse HTML que recebe do servidor web) No principio isto era um processo estático, isto é, uma vez criada uma pagina HTML não se podia alterar no cliente e não era interactiva. O cliente apenas podia visualizar os resultados não podia interagir com os mesmos. Para haver interação tinha de se fazer um Post para o servidor com um pedido e o servidor interpetrava o PHP com a nova info e gerava uma nova página HTML. É um processo que requer muitas comunicações Cliente/Servidor tornando o processo lento e ineficaz. Então surgiu o DHTML que é HTML Dinamico. Cria-se HTML que pode ser manipulado pelo Browser dando ao utilizador do Browser/cliente a possibilidade de interagir com os resultados apresentados no browser, tipo, o browser recebe 20 registos da bd mas só apresenta 10 e cria um botão em que o utilizador pode navegar entre registos sem ter que efefctuar um pedido ao servidor. DHTML é muito bom para gerir o layout/apresentação de sites, gerindo a posição dos objectos (text, combobox, etc), a sua visibilidade e os seus valores. Pelo que percebi queres em DHTML alterar em client side o valor de um texto.. se for isso é simples... este caso uso um textbox podes adaptar para qualquer objecto crias um código javaScript (ou vbscript) que vai ser processado pelo Browser. Client Script. Usa-se esta TAG para indicar ao browser que é código Client Side a ser processado no Browser e não no servidor. <script type="text/javascript"> [código DHTML client side] </script> Crias a função alteraTexto <script type="text/javascript"> function alteraTexto(txtCampo) { txtCampo.value="meuValor"; } </script> depois no HTML do objecto, neste caso um button, associas um evento, neste caso onclick, à função por ti criada... <input type="button" onClick="alteraTexto(this.form.txtCampo)" value="Executar" /> e é tudo.. podes explorar e desenvolver melhor saudações de um outro mundo... :bye2: Link to comment Share on other sites More sharing options...
M@KO Posted March 22, 2006 at 01:58 AM Report Share #19036 Posted March 22, 2006 at 01:58 AM Oi!! Encontrei este tuturial de DHTML na net e gostei... http://www.artifice.web.pt/tutoriais/cntd/dhtml_tut1.html tem bons exemplos 👍 cool stuff http://blog.zxcoders.com/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now