1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Programação PHP

Discussão em 'Web Development' iniciada por rebel_de, 27 de Setembro de 2007. (Respostas: 4; Visualizações: 1005)

  1. Ajuda:
    Tenho alguns problemas que não consigo resolver e precisava de ajuda.

    1º quero escrever na base de dados e ao passar os dados de uma variavel para outro ficheiro não o consigo fazer e da-me erros:

    exemplo:
    Código:
    Form
    <html>
    <head>
      <title>Untitled</title>
      <meta content="Tabela de Pilotos" name="GENERATOR">
    </head>
    <body bgcolor="#E4E5D7">
      <center>
        <form name="criar_pilotos" method="post" action="criaregpi.php">
          <div align="center" size="7" font="">
            <strong><font size="5"><u>Carregar Tabela de Pilotos</u></font></strong>
          </div>
          <div align="center" size="7" font="">
            &nbsp;
          </div>
          <p><br>
          <?
          include 'ligar.php';
          session_start();
          $db_selected = mysql_select_db('nkt_racing', $link);
          $sql = "SELECT numero FROM tab_pilotos";
          $resultado = mysql_query($sql, $link);
          $registo  = mysql_result($resultado, 0, "numero");
          $total=$registo+1;
          print  ("Registo nº <b>$total</b>");
          $_session['total']=$total;
          ?>
          <b>Nome:</b> <input maxlength="70" size="70" name="nome"></p>
          <p><br>
          &nbsp;</p>
          <div align="center">
            <input type="submit" value="Criar Registo">
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input type="reset" value="Limpar">
          </div>
        </form>
      </center>
    </body>
    </html>
     
    Ficheiro 2:
    <?php
      $nome = $_POST['nome'];
     if ($nome) {
    include 'ligar.php';
    // make foo the current db
    $db_selected = mysql_select_db('nkt_racing', $link);
    if (!$db_selected) {
        die ('Can\'t use nkt_racing : ' . mysql_error());
    }
      $sql="insert into tab_pilotos (numero,nome) values ('$numero','$nome')";
      echo "Registo $numero criado com sucesso";
      print ("<br><center>");
      print ("<a href=\"criarpilotos.php\">Voltar</a>");
      }
      else
      {
      echo "Por favor preencha o campo nome";
      }
    ?>
    
    Erros:
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\easyphp1-8\www\criarpilotos.php:13) in c:\easyphp1-8\www\criarpilotos.php on line 23

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\easyphp1-8\www\criarpilotos.php:13) in c:\easyphp1-8\www\criarpilotos.php on line 23


    A segunda questão tem haver com o apagar registo, penso estar a fazer tudo bem mas...

    Exemplo:
    Código:
    <?
    include "ligar.php";
    //      $db_selected = mysql_select_db('nkt_racing', $link);
          $sql = "SELECT * FROM tab_pilotos where numero=".$_REQUEST['numero']."";
          $resultado = mysql_db_query("nkt_racing", $sql);
          if ($resultado) {
          print ("<h3><center>Apagar registo</center></h3>");
          print ("<center>Eliminação do registo com numero=".$_REQUEST['numero']." vai ser executada</center>");
          print ("<table width=90% align=center border=1>");
          print ("<tr bgcolor=\"686868\"><td>Nº</td><td>Nome do Piloto</td></tr>");
          while ($registo = mysql_fetch_array($resultado))
          {
          $numero = $registo["numero"];
          $nome = $registo["nome"];
          print ("<tr><td>$numero</td><td>$nome</td></tr>");
          }
          print ("</table>");
          if ($_REQUEST['submit'])
          {
          $sql = "delete from nkt_racing where numero=".$_REQUEST['numero'];
          $resultado = mysql_db_query("nkt_racing", $sql);
          $num_del=mysql_affected_rows();
          if ($num_del>0)
          {
                 print ("<p>Registo eliminado com sucesso");
          }
          }
          else
          {
          ?>
          <form method="post" action="<?php echo $_SERVER['PATH_INFO']?>">
          <P><center>Confirma a eliminação?
          <input type="submit" name="submit" value="OK">
          <input type="hidden" name="numero" value="<?php echo $_REQUEST['numero'];?>">
          </form>
          <?php
          }
          }
          else
          {
          printf ("Não há registos");
          }
          mysql_close();
          ?>
    
    Erros:

    Notice: Undefined index: submit in c:\easyphp1-8\www\eliminar.php on line 23


    Agradeço a Ajuda
     
    Última edição pelo moderador: 3 de Outubro de 2007
  2. AliFromCairo

    AliFromCairo Power Member

    Boas, coloca o session_start antes do código html, de forma a não teres esse erro dos "headers already sent".
     
  3. Obrigado, testei e continua o mesmo erro
     
  4. CoolMaster

    CoolMaster Power Member

    Se continua é porque estas a enviar output em algum lado antes do header.

    Podes sempre usar output buffering e assim usares headers em qualquer lado, da muito jeito para certas situações. Procura por ob_start no php.net/manual
     
  5. thanks funcionou, agora so me falta conseguir para o valor da variavle $ numero para poder escrever na bd.
     

Partilhar esta Página