Love 0 Denunciar post Postado Dezembro 26, 2008 oi pessoal postei isso aqui há bem pouco tempo, mas apesar da valiosa ajuda de alguns de vcs eu continuo sem perceber onde está o erro. Eis a ideia: tem um sistema de login que, conforme o username e password vai ter à area pessoal de cada um, com dados relativos a seu proprio projecto. tipo se o id_projTIT' fôr 1 ele vai para à area do projecto 1, se for 2 etc etc Quando escrevo o url manualmente ele lê bem os dados respectivos. mas é essa passagem da variavel que faz depois o display dos dados que ele dá o errol Este código é criado automaticamente pelo Dreamweaver, eu percebo muito pouco do assunto, embora tenha feito algo com um raciocínio semelhante, mas com um Jump Menu e ele não deu problemas. Aparentemente ele não está lendo o $row_titulos['id_projTIT'] o erro que dá é o seguinte: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/clepsidr/public_html/admin.php on line 37 Aqui: $MM_redirectLoginSuccess = "projectos.php?pvar=$row_titulos['id_projTIT']"; Mas começo a desconfiar que embora ele acuse o erro nessa linha ele já vem de outra coisa qualquer. <?php require_once('Connections/dbConnection.php'); ?> <?php $colname_titulos = "-1"; if (isset($_GET['pvar'])) { $colname_titulos = (get_magic_quotes_gpc()) ? $_GET['pvar'] : addslashes($_GET['pvar']); } mysql_select_db($database_dbConnection, $dbConnection); $query_titulos = sprintf("SELECT * FROM t_projtitulos WHERE id_projTIT = %s", $colname_titulos); $titulos = mysql_query($query_titulos, $dbConnection) or die(mysql_error()); $row_titulos = mysql_fetch_assoc($titulos); $totalRows_titulos = mysql_num_rows($titulos); $colname_QProj = "-1"; if (isset($_GET['pvar'])) { $colname_QProj = (get_magic_quotes_gpc()) ? $_GET['pvar'] : addslashes($_GET['pvar']); } mysql_select_db($database_dbConnection, $dbConnection); $query_QProj = sprintf("SELECT * FROM t_projecto WHERE id_projTIT = '%s'", $colname_QProj); $QProj = mysql_query($query_QProj, $dbConnection) or die(mysql_error()); $row_QProj = mysql_fetch_assoc($QProj); $totalRows_QProj = mysql_num_rows($QProj); ?> <?php // *** Validate request to login to this site. if (!isset($_SESSION)) { session_start(); } $loginFormAction = $_SERVER['PHP_SELF']; if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck']; } if (isset($_POST['username'])) { $loginUsername=$_POST['username']; $password=$_POST['password']; $MM_fldUserAuthorization = "level"; $MM_redirectLoginSuccess = "projectos.php?pvar=$row_titulos['id_projTIT']"; $MM_redirectLoginFailed = "reserved.php"; $MM_redirecttoReferrer = false; mysql_select_db($database_dbConnection, $dbConnection); $LoginRS__query=sprintf("SELECT username, pwd, level FROM t_login WHERE username='%s' AND pwd='%s'", get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); $LoginRS = mysql_query($LoginRS__query, $dbConnection) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); if ($loginFoundUser) { $loginStrGroup = mysql_result($LoginRS,0,'level'); //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && false) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } header("Location: " . $MM_redirectLoginSuccess ); } else { header("Location: ". $MM_redirectLoginFailed ); } } ?> ALGUEM ME AJUDA POR FAVORRR? :) Boas festas para todos e muito obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Dezembro 26, 2008 faça um debug.. sugestão nesse trecho if (isset($_POST['username'])) { $loginUsername=$_POST['username']; $password=$_POST['password']; $MM_fldUserAuthorization = "level"; $MM_redirectLoginSuccess = "projectos.php?pvar=$row_titulos['id_projTIT']"; faça isso: if (isset($_POST['username'])) { // for debug purposes only echo '<hr>DEBUG<br>'; print_r( $row_titulos ); exit; $loginUsername=$_POST['username']; $password=$_POST['password']; $MM_fldUserAuthorization = "level"; $MM_redirectLoginSuccess = "projectos.php?pvar=$row_titulos['id_projTIT']"; veja o que aparece na tela e verifique os dados são consistentes conforme o resultado que deveria resgatar Compartilhar este post Link para o post Compartilhar em outros sites
Love 0 Denunciar post Postado Dezembro 26, 2008 Parece que continua algo errado olha só: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/clepsidr/public_html/admin.php on line 41 Exactamente na mesma linha que antes. Que estranho so tela branca com isso , tal como antes. Fiz tudo exactamente como você disse e nada, continua a achar que o erro vem de outro lugar, talvez na função que faz o login? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Dezembro 26, 2008 use a lógica e procure o erro agora está mais claro pois o erro anterior apontava falha na linha 37 o codigo que sugeri para que você debugasse possui 4 linhas após executá-lo, o mesmo erro persistiu e o erro foi encontrado na linha 41. 37 + 4 = 41 ou seja, o script não está entrando nesse bloco: if (isset($_POST['username'])) { na linha 40 escreva: echo time() . '<hr>'; você verá que o erro cairá pra linha 42. verifique se as variáveis ou chamadas de métodos na linha onde ocorre o erro são consistentes dica: não confie somente na saída mostrada na tela do browser. mesmo se estiver em branco, clique com o botão direito do mouse e selecione "exibir código fonte", para ver o conteúdo que foi gerado. Compartilhar este post Link para o post Compartilhar em outros sites
Love 0 Denunciar post Postado Dezembro 28, 2008 Isso supostamente deveria resolver o problema né? $MM_redirectLoginSuccess = "projectos.php?pvar=".$row_titulos['id_projTIT']; Continua sem ler os dados de $row_titulos['id_projTIT']; embora essa variável(pvar) seja passada noutras páginas exactamente da mesma maneira e sem problemas. As tabelas estão ligadas por esse id_projTIT, logo n vejo razão para isso acontecer apenas aqui. Desde que corrigi essa linha onde o erro que estava aparecendo, desapareceu, mas qd faço o login ele mostra o seguinte: no browser fica apenas - /projectos.php?pvar= e na tela You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 Embora ,se eu colocar manualmente no url projectos.php?pvar=variavel aqui, ele lê td sem problemas. Porque será que ele não está lendo esses dados? Compartilhar este post Link para o post Compartilhar em outros sites
Nielsen Tomazini 0 Denunciar post Postado Dezembro 29, 2008 Você já tentou substituir o resultado do mysql de assoc para array? Troque esta linha: $row_titulos = mysql_fetch_assoc($titulos); Por: $row_titulos = mysql_fetch_array($titulos); Compartilhar este post Link para o post Compartilhar em outros sites
Love 0 Denunciar post Postado Dezembro 29, 2008 Já testei Também n deu... que coisa. estou desmoralizando :( Testei tanto na página de login como na outra onde faz o display! Depois em todo o resto do processo corre tudo bem, porque será que aqui esta dando erro? Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Dezembro 29, 2008 T_ENCAPSED_AND_WHITESPACE Suponho que você esqueceu um apóstrofo ou uma chave.. de uma olhada no seu código novamente. Compartilhar este post Link para o post Compartilhar em outros sites
Love 0 Denunciar post Postado Dezembro 30, 2008 É, eu já tentei nessa linha: $query_titulos = sprintf("SELECT * FROM t_projtitulos WHERE id_projTIT = %s", $colname_titulos); alterar para $query_titulos = sprintf("SELECT * FROM t_projtitulos WHERE id_projTIT = '%s'", $colname_titulos); tanto na pag do login como na do display(projectos.php), mas continua dando erro. Parece que cada vez que corrijo algo surge um novo... Aliás,desde que corrigi isso em projectos.php aparece um novo erro You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 3' at line 1 Compartilhar este post Link para o post Compartilhar em outros sites
vitor_np 1 Denunciar post Postado Dezembro 30, 2008 da um echo no $query_titulos antes da execução do SQL Compartilhar este post Link para o post Compartilhar em outros sites
Love 0 Denunciar post Postado Dezembro 31, 2008 Olha, eu experimentei isso dai: como disse eu conheço muito pouco ainda de php/mysql, por isso se fiz algo absurdo, por favor compreenda :) aqui vai // *** Validate request to login to this site. if (!isset($_SESSION)) { session_start(); } echo $query_titulos; $loginFormAction = $_SERVER['PHP_SELF']; if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck']; } if (isset($_POST['username'])) { $loginUsername=$_POST['username']; $password=$_POST['password']; $MM_fldUserAuthorization = "level"; $MM_redirectLoginSuccess = "projectos.php?pvar=".$row_titulos['id_projTIT']; $MM_redirectLoginFailed = "reserved.php"; $MM_redirecttoReferrer = false; mysql_select_db($database_dbConnection, $dbConnection); e aparece na tela SELECT * FROM t_projtitulos WHERE id_projTIT = -1 mas tudo o resto parece também, não como se fosse erro. testei também do seguinte modo: <?php require_once('Connections/dbConnection.php'); ?> <?php $colname_titulos = "-1"; if (isset($_GET['pvar'])) { $colname_titulos = (get_magic_quotes_gpc()) ? $_GET['pvar'] : addslashes($_GET['pvar']); } mysql_select_db($database_dbConnection, $dbConnection); $query_titulos = sprintf("SELECT * FROM t_projtitulos WHERE id_projTIT = %s", $colname_titulos); $titulos = mysql_query($query_titulos, $dbConnection) or die(mysql_error()); $row_titulos = mysql_fetch_assoc($titulos); $totalRows_titulos = mysql_num_rows($titulos); echo $query_titulos; ?> (ou seja antes de iniciar a sessão, né?) e o resultado foi: SELECT * FROM t_projtitulos WHERE id_projTIT = -1 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/clepsidr/public_html/admin.php:13) in /home/clepsidr/public_html/admin.php on line 18 Compartilhar este post Link para o post Compartilhar em outros sites