Nimaro 0 Denunciar post Postado Novembro 20, 2009 ola a todos, Tenho uma pagina php que me faz a pesquisa à minha base de dados por nome ou por telefone... o problema esta que quando abro a pagina as caixas de texto aparecem preenchidas com isto -----> <br /> <b>Notice</b>: Undefined variable: nome in <b>C:\wamp\www\Secretel\pesquisar_pacientes.php</b> on line <b>10</b><br /> Vou mostrar o meu codigo a ver se me conseguem ajudar... --------------------------------------------------------------------------------------------------------------------------------------------- <?php require_once("includes/session.php");?> <?php require_once("includes/connection.php");?> <?php require_once("includes/functions.php");?> <title>Pesquisar Clientes</title> <h1><center> Pesquisar Clientes </center></h1><br/> <!--------PESQUISAR CLIENTES---------> <form action="pesquisar_pacientes.php" method="post"> <table> <tr><td>Nome:</td> <td><input type="text" name="nome" maxlength="30" value="<?php echo htmlentities($nome); ?>"/></td></tr> <tr><td colspan="2"><input type="submit" name="submit" value="Pesquisar" /></td></tr> </table> </form> <form action="pesquisar_pacientes.php" method="post"> <table> <tr><td>Telefone:</td> <td><input type="text" name="telefone" maxlength="30" value="<?php echo htmlentities($telefone); ?>"/></td></tr> <tr><td colspan="2"><input type="submit" name="tele" value="Pesquisar" /></td></tr> </table> </form> <!----------------PESQUISA POR NOME----------> <?php if(isset($_POST['submit'])){ $nome = strip_tags($_POST['nome']); $exc = "SHOW TABLES"; /*VARIÁVEL RENOMEADA*/ $query = mysql_query("SELECT * FROM pacientes WHERE nome = '".mysql_real_escape_string($nome)."'"); echo "<center><font face=Verdana size=2><b>Tabelas da base de dados</b></font></center><br>"; echo "<table>"; while($dados = mysql_fetch_array($query)){ $descreva = mysql_query("SELECT * FROM pacientes WHERE id='". $dados[0] ."'"); } while($atributos = mysql_fetch_array($descreva)){ echo "<tr><td><font face=Verdana size=1>$atributos[0]</td><td><font face=Verdana size=1>| $atributos[1]</td><td><font face=Verdana size=1>| $atributos[2]</td><td><font face=Verdana size=1>| $atributos[3]</td><td><font face=Verdana size=1>| $atributos[4]</td></tr>"; } echo "</table>"; }[b][i]else{$nome = '';}[/i][/b] ?> <!----------------PESQUISA POR TELEFONE----------> <?php if(isset($_POST['tele'])){ $telefone = strip_tags($_POST['telefone']); $exc = "SHOW TABLES"; /*VARIÁVEL RENOMEADA*/ $query = mysql_query("SELECT * FROM pacientes WHERE telefone = ($telefone)"); echo "<center><font face=Verdana size=2><b>Tabelas da base de dados</b></font></center><br>"; echo "<table>"; while($dados = mysql_fetch_array($query)){ $descreva = mysql_query("SELECT * FROM pacientes WHERE id='". $dados[0] ."'"); } while($atributos = mysql_fetch_array($descreva)){ echo "<tr><td><font face=Verdana size=1>$atributos[0]</td><td><font face=Verdana size=1>| $atributos[1]</td><td><font face=Verdana size=1>| $atributos[2]</td><td><font face=Verdana size=1>| $atributos[3]</td><td><font face=Verdana size=1>| $atributos[4]</td></tr>"; } echo "</table>"; }[b][i]else{$telefone = '';}[/i][/b] ?> ---------------------------------------------------------------------------------------------------------------------------- A parte que coloquei a negrito, é onde pensava que fazia aquilo que queria, ou seja, se nao ouver pedido da script ele coloca o campo sem nada, mas nao esta a funcionar assim por alguma razão. Agradecia uma ajuda aqui de vocês... Compartilhar este post Link para o post Compartilhar em outros sites
Douglas 6 Denunciar post Postado Novembro 20, 2009 A variável 'nome' não existe, ou está em outro escopo. Olhando o seu código acredito que o escopo correto seria o POST. $_POST['nome'] Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Novembro 20, 2009 hmmmm, nao entendi muito bem, é o que da ser novo em php... Mas a variavel nome nao esta defenida aqui??? ---> <td><input type="text" name="nome" maxlength="30" value="<?php echo htmlentities($nome); ?>"/></td></tr> Como faria entao para apagar o que esta dentro da text? Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Medrado 1 Denunciar post Postado Novembro 20, 2009 tenta isso <?php echo (isset($_POST['nome'])) ? htmlentities($_POST['nome']) : ''; ?> e pra entender melhor dá uma lida aqui: http://php.net/manual/pt_BR/security.globals.php http://www.php.net/manual/pt_BR/reserved.variables.post.php http://www.vivaolinux.com.br/artigo/If-inline-para-PHP/ Compartilhar este post Link para o post Compartilhar em outros sites
Nimaro 0 Denunciar post Postado Novembro 20, 2009 tentei e deu perfeito... obrigado mesmo ;) Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Medrado 1 Denunciar post Postado Novembro 20, 2009 Que bom. O problema era que você estava tentando escrever o conteúdo de uma variável que não existia, você tem que verificar antes se a mesma existe. E dá uma lida em alguma coisa a respeito de register_globals Flw. Compartilhar este post Link para o post Compartilhar em outros sites