alquin me puede ayudar?????

tioal
23 de Febrero del 2005
www.ingresar.gratishost.com
mira tengo un problema
yo cree una base de dato, llamada db_ingresar_gratishost_com
yo lo que necesito es que un formulario que alguien lo llena cuando entra a la pagina se grabe en esa base de dato
que tiene una table llamada comentario
con tres filas
Nombres Mail y Msn
lo que necesito que es que si me podrian ayudar.

este es el index.php seria lo que tenian que llenaor los que ingresen a la pagina

<form action="prosesar.php">
<table width="421" border="0" cellspacing="2" cellpadding="0"><tr>
<td width="95" height="32">Nombre</td>
<td><input type="text" name="nombre" size="32" maxlength="50" border="0"></td>
</tr>
<tr>
<td width="95">E - mail</td>
<td><input type="text" name="mail" size="32" maxlength="50" border="0"></td>
</tr>
<tr>
<td width="95">Mensaje</td>
<td><textarea name="mensaje" rows="4" cols="53"></textarea></td>
</tr>
<tr>
<td width="95"><input type="submit" name="accion" value="Grabar"></td> <td></td>
</tr>
</table>
</form>
el prosesar.php es el siguiente

<?php
include("db.php");

$link=connect();

$sql = "INSERT INTO comentario (nombre, mail, mensaje) VALUES ('$Nombre', '$Mail', '$Msn')";

$result = mysql_query($sql);

header("Location: www.ingresar.gratishost.com/index.php");

y aqui esta el db.php

<?php
function connect()
{
if (!($link=mysql_connect("localhost","admin43284","*******")))
{
echo "Error al conectar a la base de datos.";
exit();
}
if (!mysql_select_db("db_ingresar_gratishost_com",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$link=connect();
echo "Conexión con la base de datos conseguida.";
mysql_close($link);



el problema que me surgue al llenar ese formuilario es este

Conexión con la base de datos conseguida.
Warning: Cannot modify header information - headers already sent by (output started at /home/virtual/sitio43284/www/db.php:18) in /home/virtual/sitio43284/www/prosesar.php on line 12


por que seria este asunto??? cual es el problema

aparte que la base de dato no le llegan los datos???

me podrian ayudar???

muchas gracias de antemano

forgin
23 de Febrero del 2005
el fallo esta que en la funcion connect() en db.php, imprimes en pantalla usando echo"...." y esto es incompatible con el header siempre y cuando se encuentre en el mismo sitio, osea, que si el header y el echo estan separados por ejemplo:
<?php
$variable=$_POST["variable1"];
if ($variable=="2")
{
echo "la variable es $variable";
}
else{
header("lcoation:escribirvariable.php")
}
?>
de esta forma si funciona porque el header y el echo no se suceden a la misma vez sino que o sucede uno u otro.

forgin
23 de Febrero del 2005
Con respecto a que no te llegan los datos, es porque:
1.- al poner esto
$link=connect();
echo "Conexión con la base de datos conseguida.";
mysql_close($link);
en db.php, estas cerrando la conexion y no dejas que se ejecute el
$sql = "INSERT INTO comentario (nombre, mail, mensaje) VALUES ('$Nombre', '$Mail', '$Msn')";

2.- para que $sql use la funcion conectarse debes añadir $link a $result = mysql_query($sql); de forma que queda
$result = mysql_query($sql,$link);

Al poner esto, el error 1 desparace con lo cual mysql_close($link) realiza bien su funcion y no da problemas.

si $result = mysql_query($sql,$link); no funciona, prueba qutando $result= y dejando el resto.

y creo que ya esta, yo no llevo muxo con el php pero creo que mas o menos asi debe ser