Jump to content


Alex_DTP

Member Since 07/04/2008
Offline Last Active 13/04/2009, 00:09
-----

Topics I've Started

Problema Com Jpgraph - Imagem/gráfico Não Aparece Na Tela

10/04/2009, 00:49

Pessoal,

Estou tentando usar a classe jpgraph mas quando executo qualquer exemplo a imagem não aparece no browser. Mostra só o icone padrão de espaço de imagem não encontrada.

Estou usando WAMP (não sei se tem alguma coisa a ver).

Já testei a biblioteca GD e está ok.

Nas pesquisas que fiz parece que a configuração é simples mas comigo não funciona. Já testei em 3 máquinas com configurações diferentes e nada.

Não sei mais o que fazer.

Será que alguém sabe aonde pode estar o problema ou já teve este problema.


Encontrei o erro! A duras penas.

Existe um erro no script do arquivo jpgraph.php da classe do jpgraph. Eu havia editado a diretriz error_reporting no meu php.ini para tratar erros como E-ALL (error_reporting = E-ALL) e quando o erro do jpgrph era encontrado a execução do script era interrompida. Então mudei para E_ALL | E_STRICT e pude ver a reportação do erro. Não sei bem o que significa, mas acho que não importa. A solução foi não reportar o erro e o gráfico foi exibido normalmente.

Aqui vai um artigo muito bom sobre tratamento de erros para quem se interessar (http://www.kdphp.com...rror_reporting/)
e abaixo o erro reportado no script do jpgraph:

De qualquer forma tá resolvido!
----------
JpGraph Error: HTTP headers have already been sent.
Caused by output from file jpgraph.php at line 381.
Explanation:
HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).

Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser.

For example it is a common mistake to leave a blank line before the opening "<?php".
---------

[resolvido] Problema Com Window.opener

19/10/2008, 17:09

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?

Assim abre no mesmo popup direitinho com as variáveis, mas 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();"/>

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!

Problema Com Página De Login Em Php

28/08/2008, 21:30

Pessoal, estou começando em programação web e me deparei com um problema. Será que alguém pode me ajudar?

Este é o código original de um curso que estou fazendo (dw+php+mysql do imasters) que está dando erro.

O código é de uma página onde o usuário solicita uma nova senha. Ele insere o e-mail num formulário, é enviado um e-mail com um link com uma chave que através dele remete novamente a mesma página. O código confere a chave. Se estiver errada exibe uma mensagem de erro, se estiver correta exibe o outro formulário que é para a alteração da senha.

O erro é que o link para verificação da chave para criar uma nova senha não está funcionando.

Não tem segredo, é um código simples, mas não estou achando o erro.

Será que alguém pode me dizer o que está acontecendo?

Ex.:
http://localhost:8080/site/login-lembrete.php?action=criar-senha&key=123 //Chave inválida[url="http://localhost:8080/site/login-lembrete.php?action=criar-senha&key=2bcbe064b85f946cd35g876h4rt567hg"]http://localhost:8080/site/login-lembrete....35g876h4rt567hg[/url] //Chave válida que peguei do banco

Testei o link direto no browser com uma chave certa e uma errada mas 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'); ?><?phpif (!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"),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.[url="http://localhost:8080/site/login-lembrete....enha&key=%s"]http://localhost:8080/site/login-lembrete....enha&key=%s[/url]', $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><?phpmysql_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

Autenticação De Usuário Usando O Mesmo Login Da Rede

29/05/2008, 16:06

Estou precisando de ajuda para solução do problema a seguir:

Criei uma pequena intranet em PHP usando o Apache como servidor instalado na minha máquina, ligada na rede interna no meu trabalho.

Disponibilizei as páginas, que podem ser acessadas facilmente pela rede interna por qualquer usuário através do ip da minha máquina. (ex.: http://ip_da_maquina:8080)

Até aqui tudo bem, mas acontece que todos da rede podem acessar a minha intranet.

O que eu queria é restringir o acesso a apenas um grupo de usuários através do Apache (talvez) , usando a própria autenticação de login do usuário no domínio do Windows. Ou seja, quando um usuário previamente autorizado, em qualquer máquina da rede, uma vez logado no windows, possa acessar a intranet sem precisar logar novamente. Eu queria que o Apache "enxergasse" o usuário, já previamente autorizado por mim, e liberasse o acesso automaticamente, como é, por exemplo, o compartilhamento de pastas no Windows.

Eu "diria" ao Apache que os usuários do domínio "grupo_tal\id3456", "grupo_tal\id4532" e "grupo_tal\id2342", tem permissão e uma vez que estivessem logados na rede tivessem o acesso liberado.

Talvez também, possa ser usado uma solução paleativa (gambiarra), ou outra solução um pouco mais simples que as implementações complexas de Active Directory, pois sou iniciante nesta área de programação.

Desde já agradeço,

Alex

IPB Skin By Virteq