Ir para conteúdo
Fórum Script Brasil

Alex_DTP

Membros
  • Total de itens

    18
  • Registro em

  • Última visita

Tudo que Alex_DTP postou

  1. Olá, MrMALJ Na verdade eu preciso ainda listar o Documento da tblDocumento. Se eu incluo este campo o resultado não é o esperado, pois assim ele lista todos os documentos na data que passaram pela seção b. Consegui resolver assim, fazendo uma outra consulta. Uma gambiarra, mas funcionou. Fiz uma query filtrando pelo último ID da tramitação dos documentos, e não pela data. Assim obtive os resultados apenas da última tramitação dos documentos. SELECT tblTramitação.docsID, Max(tblTramitação.tramID) AS MáxDetramID FROM tblTramitação GROUP BY tblTramitação.docsID; Então foi só criar uma relação desta qry com a tblTramitação "amarrando" o resultado na qryDestino SELECT tblDocumentos.docsID, tblDocumentos.Documento, tblTramitação.Destino, tblTramitação.Data FROM qryUltimaTramitacao INNER JOIN (tblDocumentos INNER JOIN tblTramitação ON tblDocumentos.docsID=tblTramitação.docsID) ON [qryUltimaTramitacao].MáxDetramID=tblTramitação.tramID GROUP BY tblDocumentos.docsID, tblDocumentos.Documento, tblTramitação.Destino, tblTramitação.Data HAVING (((tblTramitação.Destino)="Seção b")); Segue o arquivo: consultaUltData.zip Valeu pela força. Alex
  2. Resolvido pelo giesta tblDocumentos (docsID, Documento) tblTramitação (tramID, docsID, Destino, Data) select * from from tblTramitação b , tblDocumentos c , ( select docsID , Max(Data) ultimo_dia from tblTramitação group by docsID ) a where a.docsID = b.docsID AND a.docsID = c.docsID AND b.Data = a.ultimo_dia AND b.destino = 'Seção b'
  3. Pessoal, Tenho a seguinte estrutura como exemplo tblDocumentos (docsID, Documento) tblTramitação (tramID, docsID, Destino, Data) O problema: Ao pesquisar "Destino" como "Seção b", me retornasse todos os documentos que estão na "seção b", ou seja, que a última data da tramitação do documento contivesse "Seção b". Seria: listar todos os documentos em Tramitação agrupando pela última data e então selecionar somente os documentos que contivessem a "Seção b". Já tentei assim, mas não rola porque mostra todos os documentos quando a última data foi na "Seção b": SELECT tbl_documentos.docsID, tbl_documentos.documento, tbl_tramitacao.destino, Max(tbl_tramitacao.data) AS UltimaData FROM tbl_documentos INNER JOIN tbl_tramitacao ON (tbl_documentos.docsID = tbl_tramitacao.docsID) GROUP BY tbl_documentos.docsID, tbl_documentos.documento, tbl_tramitacao.destino HAVING tbl_tramitacao.destino = 'Seção b' Acho que é mais ou menos assim, mas dá erro: SELECT tbl_documentos.docsID, tbl_documentos.Documento, tbl_tramitacao.Destino, tbl_tramitacao.Data FROM tbl_documentos LEFT JOIN tbl_tramitacao ON tbl_documentos.docsID = tbl_tramitacao.docsID WHERE tbl_tramitacao.tramID IN (SELECT tramID, MAX(Data) FROM tbl_tramitacao WHERE "Seção b"); Segue o sql do bd para facilitar: db_ultima_data.sql Resultado esperado neste bd de exemplo: Pesquisando "Seção b" deve retornar os documentos B,C,D,E,F que estão (ou tem sua última tramitação) na "Seção b". Os Docs A e G não devem ser retornados pois encontram-se na seção c e d respectivamente, onde tiveram sua última tramitação. estou há dias quebrando a cabeça, já tentei várias outras coisas mas não deu certo. Agradeço desde já a ajuda de vocês Alex
  4. Alterei o link do arquivo que estava com pau. Agora tá ok. consultaUltData.zip
  5. Olha eu de novo. Segue o exemplo: consultaUltData.zip Observe que na qryDestino_1 usei assim o óbvio mas não funciona: SELECT tblDocumentos.docsID, tblDocumentos.documento, tblTramitação.destino, Max(tblTramitação.data) AS MáxDedata FROM tblDocumentos INNER JOIN tblTramitação ON tblDocumentos.docsid = tblTramitação.docsid GROUP BY tblDocumentos.docsID, tblDocumentos.documento, tblTramitação.destino HAVING (((tblTramitação.destino)="Seção b")); Observe que buscando, por exemplo, por "Seção b" ele me retorna entre os resultados o "Documento A" que a sua última tramitação é na "Seção c". Preciso que me retorne os documentos que sua última tramitação tenha sido na "Seção b" Na qryDestino_2 usei a query que postei no começo do tópico, mas dá erro. Se puder me dar uma luz, agradeço. Alex
  6. Olá, MrMALJ Infelizmente não posso postar o bd que além de ser grande tem informações da empresa e acho melhor evitar, mas vou montar um modelo depois. Ví um caso parecido, que se aproxima bem do que preciso neste tópico, mas não consegui adaptar. http://scriptbrasil.com.br/forum/index.php?showtopic=126312 Valeu por enquanto.
  7. Tenho 2 tabelas (exemplo) tblDocumentos docsID - Documento 1 - Documento tal a 2 - Documento tal b 3 - Documento tal c ... tblTramitação tramID - docsID - Destino - Data 1 - 1 - Seção a - 17/12/2008 2 - 2 - Seção b - 16/12/2008 3 - 3 - Seção b - 14/12/2008 4 - 2 - Seção b - 15/12/2008 5 - 3 - Seção a - 16/12/2008 Preciso que: ao pesquisar "destino" como "Seção b", me retornasse todos os documentos em que a última data da tramimitação contivesse "Seção b". 2 - 2 - Seção b - 16/12/2008 3 - 3 - Seção b - 14/12/2008 Sei que terei que usar uma subconsulta. Seria: listar todos os documentos em tramitação agrupando pela última data e então selecionar somente os que contivessem a seção pesquisada. Acho que o caminho é mais ou menos este: SELECT tblDocumentos.ID, tblDocumentos.Documento, tblTramitação.tramID, tblTramitação.docsID, tblTramitação.Destino, tblTramitação.Data FROM tblDocumentos LEFT JOIN tblTramitação ON tblDocumentos.ID = tblTramitação.ID WHERE (((tblTramitação.tramID) In (SELECT tramID, MAX(Data) FROM tbltblTramitação WHERE ([tbltblTramitação].[Destino]=[Formulários]![frmPesquisa]![Combinação38])))) Mas não está funcionando. O Access dá a seguinte mensagem: "Você gravou uma subconsulta que pode retornar mais de um campo sem usar a palavra EXISTS na cláusula FROM da consulta principal..." Já tentei também de várias outras formas, mas não consegui. Talvez nem seja assim, então se alguém puder me ajudar, agradeço. Alex
  8. Resolvi, ufa!! Nomeei a pg de destino, usei um target no action do form e botei window.close no botão do form no popup. Relativamente simples e eu quebrando a cabeça. Valeu!
  9. Não deu, não. Tá difícil. Assim abre no popup direitinho, e na janela pai abre a página mas sem as variáveis. &lt;script type="text/javascript"> function navegar() { window.opener.location = "escult-editar.php"; window.opener.document.posicao.x.value = x; window.opener.document.posicao.y.value = y; window.opener.document.posicao.idObra.value = idObra; window.close(); return false; } </script> <form action="http://localhost:8080/intradph/w_escult/escultura-editar.php" name="posicao" id="posicao"> ... <input type="submit" value="Atualizar posição" onclick="java script:navegar();"/> Assim ele fecha o popup, mas na pai não leva as variáveis &lt;script type="text/javascript"> function navegar() { window.opener.location = "escult-editar.php"; window.close(); return false; } </script> <form action="http://localhost:8080/intradph/w_escult/escultura-editar.php" name="posicao" id="posicao"> ... <input type="submit" value="Atualizar posição" onclick="java script:navegar();"/>
  10. Pssoal, tenho um formulário num popup que quando for submetido deve fechar o popup, abrir o destino na janela pai levando as váriaveis de url. Estou tentando este script mas não tá dando certo. Algém pode me dar uma luz? &lt;script type="text/javascript"> function navegar() { window.opener.document.location = "editar.php"; window.opener.document.posicao.x.value = x; window.opener.document.posicao.y.value = y; window.opener.document.posicao.idObra.value = idObra; window.close(); } </script> <form action="" name="posicao" id="posicao" onsubmit="java script:navegar();"> <table width="750" border="0" cellpadding="0" cellspacing="0"> <tr> Long: <input name="x" type="text" value="" size="18" /></td> Lat: <input name="y" type="text" value="" size="18" /></td> <input name="idObra" type="hidden" value="" /> <input type="submit" value="Atualizar" /></td> </form> // Já tentei assim também &lt;script type="text/javascript"> function navegar() { window.opener.document.location = "editar.php"; window.opener.document.posicao.x.value = x; window.opener.document.posicao.y.value = y; window.opener.document.posicao.idObra.value = idObra; window.close(); } </script> <form action="editar.php" name="posicao" id="posicao"> <table width="750" border="0" cellpadding="0" cellspacing="0"> <tr> Long: <input name="x" type="text" value="" size="18" /></td> Lat: <input name="y" type="text" value="" size="18" /></td> <input name="idObra" type="hidden" value="" /> <input type="submit" value="Atualizar" onclick="java script:navegar();" /></td> </form> Me parece que só fica tentando pegar o valor do form action. Funciona, só que fica abrindo o destino dentro da janela filho. Alex
  11. Pessoal, valeu a ajuda mas acabei resolvendo num outro forum: Deixo aqui o link para ajudar quem precisar: http://forum.imasters.uol.com.br/index.php?showtopic=310147 Queimei tanto a cabeça com isso que depois com calma vou testar as outras sugestões Valeu Alex
  12. Amigo, Não entendi Devo trazer o script que estava no mapa.html e colcar na pagina.php junto com o link? Você pode detalhar mais. Segue o código do mapa.html inteiro para mostar melhor <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Intranet Preservação</title> &lt;script src="http://maps.google.com/maps?file=api&v=2&key=XXXX" type="text/javascript"></script> &lt;script type="text/javascript"> //<![CDATA[ function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); var center = new GLatLng(AQUI O VALOR LAT, AQUI O VALOR LONG ); map.setCenter(center, 17); map.setMapType(G_HYBRID_MAP); var marker = new GMarker(center, {draggable: true}); GEvent.addListener(marker, "dragstart", function() { map.closeInfoWindow(); }); GEvent.addListener(marker, "dragend", function() { marker.openInfoWindowHtml("Desenvolvendo"); }); map.addOverlay(marker); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GOverviewMapControl());; } } //]]> </script> <style type="text/css"> <!-- body { margin-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; } --> </style></head> <body onload="load()" onunload="GUnload()"> <div id="map" style="width: 760px; height: 500px"></div> </body> </html>
  13. Pessoal, estou quebrando a cabeça e não consegui encontrar nada esclarecedor Quero pegar o "valor" passado pela URL. Tenho um link em pagina.php <a href="mapa.html?lat=<?php echo $row_rsCoordenadas['latitude']; & long=<?php echo $row_rsCoordenadas['longitude'];?>" onclick="MM_openBrWindow('mapa.html','gmap','width=760,height=500')" />Mapa</a> e um javascript em mapa.html . . . function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); var center = new GLatLng( AQUI O VALOR LAT, AQUI O VALOR LONG ); . . . Como pegar o valor 'lat' e 'long' passados pela página em php ? Valeu por enquanto. Alex
  14. Então, dei uma olhada nos recursos do ADDT mas não consegui achar intuitivamente como fazer, já que não domino muito bem os recursos. Mas vou dar uma pesquisada la no forum do DW. Você tem razão, já que usei a extensão fica mais complicado mexer no código e além do mais, agora, no estágio que meu projeto está, prá refazer não vai dar. Será mesmo uma mão na roda se eu puder implementar isto com os próprios recursos da extensão. De qualquer forma, a dica do Juan já me ajudou a entender a solução. Agora vou repensar o uso de extensões em determinadas situações e encarar o código. Vai ser bom para facilitar as personalizações e melhorar o meu aprendizado. Valeu, Alex
  15. Legal! Vou ver com calma como consigo adaptar e depois posto. Valeu, Alex
  16. O formulário foi gerado com a extensão ADDT em DW Segue o Código <?php require_once('login-verifica.php');?> <?php require_once('../Connections/connDB.php'); ?> <?php // Load the common classes require_once('../includes/common/KT_common.php'); // Load the tNG classes require_once('../includes/tng/tNG.inc.php'); // Make a transaction dispatcher instance $tNGs = new tNG_dispatcher("../"); // Make unified connection variable $conn_connDB = new KT_connection($connDB, $database_connDB); // Start trigger $masterValidation = new tNG_FormValidation(); $masterValidation->addField("strMtApTitle", true, "text", "", "", "", ""); $masterValidation->addField("intMtApCatID", true, "numeric", "", "", "", ""); $tNGs->prepareValidation($masterValidation); // End trigger // Start trigger $detailValidation = new tNG_FormValidation(); $tNGs->prepareValidation($detailValidation); // End trigger //start Trigger_LinkTransactions trigger //remove this line if you want to edit the code by hand function Trigger_LinkTransactions(&$tNG) { global $ins_tbl_files; $linkObj = new tNG_LinkedTrans($tNG, $ins_tbl_files); $linkObj->setLink("intMtApID"); return $linkObj->Execute(); } //end Trigger_LinkTransactions trigger //start Trigger_FileUpload trigger //remove this line if you want to edit the code by hand function Trigger_FileUpload(&$tNG) { $uploadObj = new tNG_FileUpload($tNG); $uploadObj->setFormFieldName("strFileName"); $uploadObj->setDbFieldName("strFileName"); $uploadObj->setFolder("../files/mat_apoio/{POST.intMtApCatID}/"); $uploadObj->setMaxSize(20000); $uploadObj->setAllowedExtensions("jpg, pdf, mp3, mpg"); $uploadObj->setRename("auto"); return $uploadObj->Execute(); } //end Trigger_FileUpload trigger if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $colname_rsUsuarioLogado = "-1"; if (isset($_SESSION['MM_Username'])) { $colname_rsUsuarioLogado = $_SESSION['MM_Username']; } mysql_select_db($database_connDB, $connDB); $query_rsUsuarioLogado = sprintf("SELECT intUsrID, strUsrNameFav FROM pn_usuarios WHERE strUsrUsername = %s", GetSQLValueString($colname_rsUsuarioLogado, "text")); $rsUsuarioLogado = mysql_query($query_rsUsuarioLogado, $connDB) or die(mysql_error()); $row_rsUsuarioLogado = mysql_fetch_assoc($rsUsuarioLogado); $totalRows_rsUsuarioLogado = mysql_num_rows($rsUsuarioLogado); mysql_select_db($database_connDB, $connDB); $query_rsCategoriasMatApoio = "SELECT * FROM tbl_mat_apoio_categ"; $rsCategoriasMatApoio = mysql_query($query_rsCategoriasMatApoio, $connDB) or die(mysql_error()); $row_rsCategoriasMatApoio = mysql_fetch_assoc($rsCategoriasMatApoio); $totalRows_rsCategoriasMatApoio = mysql_num_rows($rsCategoriasMatApoio); mysql_select_db($database_connDB, $connDB); $query_rsNoticias = "SELECT intNotID, strNotTitle FROM pn_noticias"; $rsNoticias = mysql_query($query_rsNoticias, $connDB) or die(mysql_error()); $row_rsNoticias = mysql_fetch_assoc($rsNoticias); $totalRows_rsNoticias = mysql_num_rows($rsNoticias); mysql_select_db($database_connDB, $connDB); $query_rsCategoriasNot = "SELECT * FROM pn_noticias_categorias ORDER BY strCatTitle ASC"; $rsCategoriasNot = mysql_query($query_rsCategoriasNot, $connDB) or die(mysql_error()); $row_rsCategoriasNot = mysql_fetch_assoc($rsCategoriasNot); $totalRows_rsCategoriasNot = mysql_num_rows($rsCategoriasNot); // Make an insert transaction instance $ins_tbl_mat_apoio = new tNG_insert($conn_connDB); $tNGs->addTransaction($ins_tbl_mat_apoio); // Register triggers $ins_tbl_mat_apoio->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Insert1"); $ins_tbl_mat_apoio->registerTrigger("BEFORE", "Trigger_Default_FormValidation", 10, $masterValidation); $ins_tbl_mat_apoio->registerTrigger("END", "Trigger_Default_Redirect", 99, "../mat_apoio.php"); $ins_tbl_mat_apoio->registerTrigger("AFTER", "Trigger_LinkTransactions", 98); $ins_tbl_mat_apoio->registerTrigger("ERROR", "Trigger_LinkTransactions", 98); // Add columns $ins_tbl_mat_apoio->setTable("tbl_mat_apoio"); $ins_tbl_mat_apoio->addColumn("strMtApTitle", "STRING_TYPE", "POST", "strMtApTitle"); $ins_tbl_mat_apoio->addColumn("intMtApCatID", "NUMERIC_TYPE", "POST", "intMtApCatID"); $ins_tbl_mat_apoio->addColumn("strMtApDesc", "STRING_TYPE", "POST", "strMtApDesc"); $ins_tbl_mat_apoio->addColumn("intNotID", "NUMERIC_TYPE", "POST", "intNotID"); $ins_tbl_mat_apoio->addColumn("intUsrID", "NUMERIC_TYPE", "POST", "intUsrID", "{rsUsuarioLogado.intUsrID}"); $ins_tbl_mat_apoio->setPrimaryKey("intMtApID", "NUMERIC_TYPE"); // Make an insert transaction instance $ins_tbl_files = new tNG_insert($conn_connDB); $tNGs->addTransaction($ins_tbl_files); // Register triggers $ins_tbl_files->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "POST", ""); $ins_tbl_files->registerTrigger("BEFORE", "Trigger_Default_FormValidation", 10, $detailValidation); $ins_tbl_files->registerTrigger("AFTER", "Trigger_FileUpload", 97); // Add columns $ins_tbl_files->setTable("tbl_files"); $ins_tbl_files->addColumn("strFileName", "FILE_TYPE", "FILES", "strFileName"); $ins_tbl_files->addColumn("strFileTitle", "STRING_TYPE", "POST", "strFileTitle", ""); $ins_tbl_files->addColumn("strFileDesc", "STRING_TYPE", "POST", "strFileDesc"); $ins_tbl_files->addColumn("strFileType", "STRING_TYPE", "POST", "strFileType"); $ins_tbl_files->addColumn("intUsrID", "NUMERIC_TYPE", "POST", "intUsrID", "{rsUsuarioLogado.intUsrID}"); $ins_tbl_files->addColumn("intMtApID", "NUMERIC_TYPE", "VALUE", ""); $ins_tbl_files->setPrimaryKey("intFileID", "NUMERIC_TYPE"); // Execute all the registered transactions $tNGs->executeTransactions(); // Get the transaction recordset $rstbl_mat_apoio = $tNGs->getRecordset("tbl_mat_apoio"); $row_rstbl_mat_apoio = mysql_fetch_assoc($rstbl_mat_apoio); $totalRows_rstbl_mat_apoio = mysql_num_rows($rstbl_mat_apoio); // Get the transaction recordset $rstbl_files = $tNGs->getRecordset("tbl_files"); $row_rstbl_files = mysql_fetch_assoc($rstbl_files); $totalRows_rstbl_files = mysql_num_rows($rstbl_files); ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Material de Apoio</title> <!-- InstanceEditableHeadTag --> <link href="../includes/skins/mxkollection3.css" rel="stylesheet" type="text/css" media="all" /> &lt;script src="../includes/common/js/base.js" type="text/javascript"></script> &lt;script src="../includes/common/js/utility.js" type="text/javascript"></script> &lt;script src="../includes/skins/style.js" type="text/javascript"></script> <?php echo $tNGs->displayValidationRules();?> </head> <body> <?php echo $tNGs->displayValidationRules();?> <?php echo $tNGs->getErrorMsg(); ?> <form method="post" id="form1" action="<?php echo KT_escapeAttribute(KT_getFullUri()); ?>" enctype="multipart/form-data"> <table cellpadding="2" cellspacing="0" class="KT_tngtable"> <tr> <td width="19%" class="KT_th"><label for="strMtApTitle">Título:</label></td> <td width="81%"><input name="strMtApTitle" type="text" id="strMtApTitle" value="<?php echo KT_escapeAttribute($row_rstbl_mat_apoio['strMtApTitle']); ?>" size="32" /> <?php echo $tNGs->displayFieldHint("strMtApTitle");?> <?php echo $tNGs->displayFieldError("tbl_mat_apoio", "strMtApTitle"); ?> </td> </tr> <tr> <td class="KT_th"><label for="intMtApCatID">Categoria:</label></td> <td><select name="intMtApCatID" id="intMtApCatID"> <option value="" <?php if (!(strcmp("", $row_rstbl_mat_apoio['intMtApCatID']))) {echo "selected=\"selected\"";} ?>>Escolha uma categoria...</option> <?php do { ?> <option value="<?php echo $row_rsCategoriasMatApoio['intMtApCatID']?>"<?php if (!(strcmp($row_rsCategoriasMatApoio['intMtApCatID'], $row_rstbl_mat_apoio['intMtApCatID']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rsCategoriasMatApoio['strMtApCatTitle']?></option> <?php } while ($row_rsCategoriasMatApoio = mysql_fetch_assoc($rsCategoriasMatApoio)); $rows = mysql_num_rows($rsCategoriasMatApoio); if($rows > 0) { mysql_data_seek($rsCategoriasMatApoio, 0); $row_rsCategoriasMatApoio = mysql_fetch_assoc($rsCategoriasMatApoio); } ?> </select> <?php echo $tNGs->displayFieldError("tbl_mat_apoio", "intMtApCatID"); ?> </td> </tr> <tr> <td class="KT_th"><label for="strMtApDesc">Descrição: <span class="asterisk">*</span></label></td> <td><textarea name="strMtApDesc" cols="32" id="strMtApDesc"><?php echo KT_escapeAttribute($row_rstbl_mat_apoio['strMtApDesc']); ?></textarea> <?php echo $tNGs->displayFieldHint("strMtApDesc");?> <?php echo $tNGs->displayFieldError("tbl_mat_apoio", "strMtApDesc"); ?> </td> </tr> <tr> <td class="KT_th"><label for="intNotID">Associar a uma notícia:</label></td> <td><select name="intNotID" id="intNotID"> <option value="" <?php if (!(strcmp("", $row_rstbl_mat_apoio['intNotID']))) {echo "selected=\"selected\"";} ?>>(Opcional)</option> <?php do { ?><option value="<?php echo $row_rsNoticias['intNotID']?>"<?php if (!(strcmp($row_rsNoticias['intNotID'], $row_rstbl_mat_apoio['intNotID']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rsNoticias['strNotTitle']?></option> <?php } while ($row_rsNoticias = mysql_fetch_assoc($rsNoticias)); $rows = mysql_num_rows($rsNoticias); if($rows > 0) { mysql_data_seek($rsNoticias, 0); $row_rsNoticias = mysql_fetch_assoc($rsNoticias); } ?> </select> <?php echo $tNGs->displayFieldError("tbl_mat_apoio", "intNotID"); ?> </td> </tr> <tr class="KT_buttons"> <td colspan="2"><hr /> </td> </tr> <tr> <td class="KT_th"><label for="strFileName">Anexar arquivo:</label></td> <td><input name="strFileName" type="file" class="textarea_100" id="strFileName" size="32" /> <?php echo $tNGs->displayFieldError("tbl_files", "strFileName"); ?> </td> </tr> <tr> <td class="KT_th"><label for="strFileTitle">Título para o arquivo:</label></td> <td><input name="strFileTitle" type="text" id="strFileTitle" value="<?php echo KT_escapeAttribute($row_rstbl_files['strFileTitle']); ?>"/> <?php echo $tNGs->displayFieldHint("strFileTitle");?> <?php echo $tNGs->displayFieldError("tbl_files", "strFileTitle"); ?> </td> </tr> <tr> <td class="KT_th"><label for="strFileDesc">Descrição do arquivo:</label></td> <td><input name="strFileDesc" type="text" id="strFileDesc" value="<?php echo KT_escapeAttribute($row_rstbl_files['strFileDesc']); ?>" /> <?php echo $tNGs->displayFieldHint("strFileDesc");?> <?php echo $tNGs->displayFieldError("tbl_files", "strFileDesc"); ?> </td> </tr> <tr class="KT_buttons"> <td colspan="2"><input type="submit" name="KT_Insert1" id="KT_Insert1" value="Enviar" /> </td> </tr> </table> <input type="hidden" name="intUsrID" id="intUsrID" value="<?php echo KT_escapeAttribute($row_rstbl_mat_apoio['intUsrID']); ?>" /> <input type="hidden" name="strFileType" id="strFileType" value="<?php echo KT_escapeAttribute($row_rstbl_files['strFileType']); ?>" /> <input type="hidden" name="intUsrID" id="intUsrID" value="<?php echo KT_escapeAttribute($row_rstbl_files['intUsrID']); ?>" /> </form> <p> </p> </body> </html> <?php mysql_free_result($rsUsuarioLogado); mysql_free_result($rsCategoriasMatApoio); mysql_free_result($rsNoticias); mysql_free_result($rsCategoriasNot); ?> Valeu, Alex
  17. Olá pessoal, Tenho um formulário: Titulo*: Apresentação projeto Biblioteca Assunto*: Seminário de apresentação do projeto... Arquivo*: biblioteca.pdf Descriçao: ( SE NÃO FOR PREENCHIDO, PEGAR VALOR NO CAMPO ASSUNTO ) <input name="Titulo" type="text" id="Title" value="<?php echo $row_rstbl_material['Titulo']; ?>" /> <input name="Assunto" type="text" id="Assunto" value="<?php echo $row_rstbl_material['Assunto']; ?>" /> <input name="FileName" type="file" id="FileName"/> <input name="FileDesc" type="text" id="FileDesc" value="<?php echo $row_rstbl_files['FileDesc']; ?>" /> Como fazer para: se o usuário não preencher o campo Descrição, pegar (enviar) automaticamente o mesmo valor do campo Assunto Valeu, Alex
  18. Este é o código original de um curso que estou fazendo (dw+php+mysql do imasters) que está dando erro. Alguém pode me dizer o que está acontecendo? O erro é que o link para verificação da chave para criar uma nova senha não está funcionando. http://localhost:8080/site/login-lembrete.php?action=criar-senha&key=123 //Chave inválida http://localhost:8080/site/login-lembrete.php?action=criar-senha&key=2bcbe064b85f946cd35g876h4rt567hg //Chave válida que peguei do banco Testei o link direto no browser com uma chave certa e uma errada e nas duas está exibindo a mensagem 'A chave informada é inválida' que só deve ser exibida quando a chave for inválida. Com a chave válida também aparece a mensagem, mas alterei a senha e o form funcionou. Então o problema não está no link, estou certo? E também, quando a chave é inválida deveria ser exibido o outro formulário, que é para a solicitação de uma nova senha. Mas fica no mesmo formulário e exibe a mensagem de chave inválida. Estou quebrando a cabeça para achar o erro, mas não estou conseguindo. login-lembrete.php <?php require_once('Connections/connDB.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } $colname_rsVerificaChave = "-1"; if (isset($_POST['strUsrKey'])) { $colname_rsVerificaChave = $_POST['strUsrKey']; } mysql_select_db($database_connDB, $connDB); $query_rsVerificaChave = sprintf("SELECT COUNT(*) AS total FROM pn_usuarios WHERE strUsrKey = %s", GetSQLValueString($colname_rsVerificaChave, "text")); $rsVerificaChave = mysql_query($query_rsVerificaChave, $connDB) or die(mysql_error()); $row_rsVerificaChave = mysql_fetch_assoc($rsVerificaChave); $totalRows_rsVerificaChave = mysql_num_rows($rsVerificaChave); if ( 1 == $row_rsVerificaChave['total'] ) { if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form")) { $strKey = md5( uniqid( microtime())); $updateSQL = sprintf("UPDATE pn_usuarios SET strUsrPassword=%s, strUsrKey = '$strKey' WHERE strUsrKey=%s", GetSQLValueString($_POST['strUsrPassword'], "text"), // Aqui o autor esqueceu o MD5 GetSQLValueString($_POST['strUsrKey'], "text")); mysql_select_db($database_connDB, $connDB); $Result1 = mysql_query($updateSQL, $connDB) or die(mysql_error()); } } else { $msg_retorno = 'A chave informada é inválida'; } $colname_rsDadosUsuario = "-1"; if (isset($_POST['strUsrEmail'])) { $colname_rsDadosUsuario = $_POST['strUsrEmail']; } mysql_select_db($database_connDB, $connDB); $query_rsDadosUsuario = sprintf("SELECT strUsrName, strUsrEmail, strUsrKey, COUNT(*) AS total FROM pn_usuarios WHERE strUsrEmail = %s GROUP BY strUsrEmail", GetSQLValueString($colname_rsDadosUsuario, "text")); $rsDadosUsuario = mysql_query($query_rsDadosUsuario, $connDB) or die(mysql_error()); $row_rsDadosUsuario = mysql_fetch_assoc($rsDadosUsuario); $totalRows_rsDadosUsuario = mysql_num_rows($rsDadosUsuario); if ( isset( $_POST['action']) and $_POST['action'] == 'solicitar-senha' ) : if ( 1 == $row_rsDadosUsuario['total'] ) : $titulo = sprintf( '%s, crie uma nova senha em nosso site', $row_rsDadosUsuario['strUsrName']); $mensagem = sprintf( ' Olá %s, Utilize a URL abaixo para acessar nosso site e criar uma nova senha de acesso. http://localhost:8080/site/login-lembrete....enha&key=%s ', $row_rsDadosUsuario['strUsrName'], $row_rsDadosUsuario['strUsrKey']); $cabecalho = 'From: Nome do Site <sem-reposta@endereco-site.com.br'; mail( $row_rsDadosUsuario['strUsrEmail'], $titulo, $mensagem, $cabecalho); else : $msg_retorno = 'O e-mail informado não está cadastrado em nosso banco de dados.'; endif; endif; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <?php if ( isset( $_GET['action'], $_GET['key']) and $_GET['action'] == 'criar-senha' ) : ?> <?php if ( isset( $msg_retorno) ) : ?> <p><?php echo $msg_retorno; ?></p> <?php endif; ?><form name="form" method="POST" action="<?php echo $editFormAction; ?>"> <p> <label for="strUsrPassword">Informe uma senha: </label> <input type="password" id="strUsrPassword" name="strUsrPassword" /> </p> <p> <label for="strUsrPassword2">Confirme a senha: </label> <input type="password" id="strUsrPassword2" name="strUsrPassword2" /> </p> <p> <input type="submit" value="Enviar" /> <input type="hidden" name="strUsrKey" value="<?php echo $_GET['key']; ?>" /> <input type="hidden" name="action" value="criar-nova-senha" /> </p> <input type="hidden" name="MM_update" value="form" /> </form> <?php else : ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <p> <label for="strUsrEmail">E-mail: </label> <input type="text" id="strUsrEmail" name="strUsrEmail" /> </p> <p> <input type="submit" value="Enviar" /> <input type="hidden" name="action" value="solicitar-senha" /> </p> </form> <?php endif; ?> </body> </html> <?php mysql_free_result($rsDadosUsuario); mysql_free_result($rsVerificaChave); ?> Também não entendi porque o código exibe o "nome do usuário" e a "chave" novamente em seguida http://localhost:8080/site/login-lembrete.php?action=criar-senha&key=%s ', $row_rsDadosUsuario['strUsrName'], $row_rsDadosUsuario['strUsrKey']); Obrigado a todos que puderem me ajudar. Alex
×
×
  • Criar Novo...