Preciso de ajuda em código simples php

Fiz um código PHP + HTML experimental no NetBeans, mas acho que estou me perdendo nas aberturas das tags php.

O nome do arquivo é index.php

ele nao faz o que eu quero


<?

$msgerr="";

if(isset ($_REQUEST['login']))
    {
        $email = $_REQUEST['email'];
                if($email=="")        {
            
                $msgerr="Digite dado corretamente";
        }        
        else
        {
            header("Localização:principal.php");
        }
    }

?>

<form action="index.php" method="POST">

        <input type="hidden" name="login" value="sim">

        Email <br> <input type="text" name="email">

        <br><br>

        <? echo"$msgerr" ?>
        <br><br>

        <input type="submit" value="Login">

    </form>

eu sou da opinião que devias usar o
<?php ?> em vês de <? ?>.

pelo que eu sei, no php podemos delimitar o codigo em php de diversas formas, mas apenas a forma standard ( padrão) é o <?php ?> que todos os servidores web que vão interpretar o codigo php conhecem esta forma padrão

tem q ser
[code]header("Location: principal.php");  [/code]

tem q ser

É, peguei de um site que traduziu o código, zuado demais rs

Agora acho que minha dúvida nao é TÃO simples assim:

tenho 3 arquivos índex,executa e conecta)

index = página inicial

conecta = apenas faz a conexão com o bd

executa - apenas possue uma função que retorna o resultado dessa pesquisa

vou postar os 3 arquivos aqui, mas o erro está no arquivo index, no momento que eu chamo a função do arquivo executa.

INDEX :

<?php

    require_once("executar.php");

    $query = "SELECT * FROM TABELA WHERE SENHA = senha1";
    
    $result = executar($query1); // erro aqui

    $row = pg_fetch_assoc($result);

    echo "${ROW['nome']}";

?>

CONECTA:

[code]<?php

$conectabd = pg_connect("dbname=teste  port=5432 host=localhost user=postgres password=postgres");

if ($conectabd) {
    echo "Conectado com: " . pg_host($conectabd) . "<br/> ";
 }
 else {
      echo pg_last_error($conectabd);
      exit;
 }

?>[/code]

EXECUTA:

[code]<?php

function executar($Sql){

          $Resultado = pg_query($conectabd,$Sql);
          pg_close($conectabd);
          return $Resultado;
 }

?>[/code]

Na página, ele mostra um erro na chamada da função, estou achando que é problema na String $conectabd

Posta o erro ai…

Fatal error: Call to undefined function pg_query() in C:\xampp\htdocs\teste\executar.php on line 5

qual a versão do php você está usando?

de acordo com o php.net, esta função está disponível apenas para funções iguais ou superiores que 4.2

http://br2.php.net/manual/pt_BR/function.pg-query.php

tenta usar

no lugar de

Preciso ver qual a versão, eu fiz a troca, deu o mesmo erro

verifica se no php.ini esta ativo o modulo do postgres
procure pela seguinte linha:

e remove o ;

O código que eu coloquei aqui em cima, está funcionando perfeitamente em um pc com Linux.

Creio que seja alguma coisa que eu deixei de instalar, ou fiz errado.

estranho… parece ser alguma conf específica… você adicionou a dll como o duduribeiro informou?

Não tive que alterar, já estava sem o ;

se você executar só o conecta.php dá algum erro?

Eu arrumei meu erro, formatei a máquina (mas deixei uma copia do php.ini), depois da formatação substitui, e o erro apareceu de novo (Y)

Estou com um arquivo bem simples, assim:

<?php
$conecta = pg_connect("dbname = teste port = 5432 host = localhost user = <usuario> password = <senha>");
if($conecta) echo "OK";
?>

e o erro aparece Fatal error: Call to undefined function pg_connect() in C:\xampp\htdocs\teste\index.php on line 1

É problema na configuração do php.ini … ja descomentei a linha da extension php_pgsql, só que me lembro que tinha que mudar o caminho do extension_dir … por default ele veio assim : extension_dir = “C:\xampp\php\ext”

eu acho que esse caminho é o correto, na pasta C:php\ext também existem as extensões do php, mas quando altero para esse caminho c:php\ext também da esse erro

(ahh e o php.ini que eu alterei foi da pasta C:\xampp\php … existe outro arquivo php.ini na pasta C:\Program Files\PHP - nao sei se alterei o correto)

Consegui … a cada alteração eu preciso reiniciar o apache (nooob)