no me agrega los datos a la base de datos en mysql

Hola estoy haciendo el curso de PHP y MySql en CCTW.

Ahora bien todo perfecto hasta q llegue a la lección de "todo sobre formularios" en la parte donde dice "Guardar la Información".
Donde no me almacena en mi base de datos, la informacion q agrego en el index.php.

a continuación agrego el codico q hay en mi index.php q estoy editandolo en el HTML-Kit, para q por favor me digan si estoy haciendo algo mal. Ademas tambien agregue los codigos contenidos en el los archivos de "config.php" y "insertardatosentabla.php".

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>mi quinta pagina con php</title>
</head>
<body>

<!-- formulario -->

<form method = "post" action="insertardatosentabla.php">
<input type = "text" name = "NOMBRE" value = "Escribe tu nombre" size = 30 maxlength=50 ><br/>
<input type = "text" name = "EMAIL" value = "tuemail@correcto" size = 30 maxlength = 50 ><br/>
<input type="text" name="URL" value="http://www.tudirecciondepagina.web" size=30 maxlength=50 ><br/>
<input type="hidden" name="ESTADO" value="Activo" />
<input type="SUBMIT" value="Boton de envio estandar" name="Enviar la información al servidor"><br/>
</form>

</body>
</html>


Hice mi archivo en en block de notas llamado "config.php", como lo describen y copie y pegue esto en el:

<?php
// Rellena los espacios ente comillas de abajo con los datos que te da
// el servidor al activar la base de datos.
// Este dato de abajo suele ser localhost casi siempre:
$server="localhost";

// Aqui abajo escribe el nombre de la base de datos.
// Si tu servidor tiene cpanel normalmente va primero tu nombre de username,
// por ejemplo: username_nombredelabasededatos
$database = "cartago_basedepruebas";

// Aqui abajo el nombre de username de la base de datos para acceder a ella.
$db_user = "cartago_pepito";

// Y ahora la contraseña:
$db_pass = "servicio23";
?>

entendiendo lo del usuario y todo lo coloque como me corresponde en mi caso.

Luego abri otro block de notas y lo llame "insertardatosentabla.php" y coloque esto (este si es exactamente como lo tengo en la raiz de mi web):

<?php include("config.php") ; ?>

<?php
// leer datos de usuario y contraseña de la base de datos
include("config.php") ;

// Conexión con el servidor
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());

// Selección de Base de Datos
mysql_select_db($database) or die ("error2".mysql_error());
?>

<?php
mysql_query ("INSERT INTO `alexismo_basedepruebas`.`USUARIOS` (`NOMBRE`, `EMAIL`, `URL`, `ESTADO`) VALUES ('$_POST', '$_POST[correo eliminado]', '$_POST', '$_POST') ");
?>



Cualquier ayuda se los agradeceria!!!!!!!!!!!!!!!!
Probá con:

<?php

include("config.php") ;

// Conectar con el servidor de datos MYSQL.
$conexion=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());

// Seleccionás la base de datos con la cual vas a trabajar.
mysql_select_db($database, $conexion) or die ("error2".mysql_error());

mysql_query ("INSERT INTO USUARIOS(NOMBRE,EMAIL,URL,ESTADO) VALUES ('".$_POST[NOMBRE]."', '".$_POST[EMAIL]."', '".$_POST[URL]."', '".$_POST[ESTADO]."')") or die ("Problemas al insertar".mysql_error());
?>

Saludos :)

Una cosa en especial, no hace falta abrir y cerrar el código php tantas veces, en uno solo puede entrar todo :P
cuando me pide:
$conexion=mysql_connect($server, $db_user, $db_pass)
debo colocar como?
asi:
$conexion=mysql_connect($server="localhost", $db_user="alexismo_basedepruebas", $db_pass="pass")
asi:
$conexion=mysql_connect($localhost, $alexismo_basedepruebas, $pass)

o como?



_St escribió:Probá con:

<?php

include("config.php") ;

// Conectar con el servidor de datos MYSQL.
$conexion=mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());

// Seleccionás la base de datos con la cual vas a trabajar.
mysql_select_db($database, $conexion) or die ("error2".mysql_error());

mysql_query ("INSERT INTO USUARIOS(NOMBRE,EMAIL,URL,ESTADO) VALUES ('".$_POST[NOMBRE]."', '".$_POST[EMAIL]."', '".$_POST[URL]."', '".$_POST[ESTADO]."')") or die ("Problemas al insertar".mysql_error());
?>

Saludos :)

Una cosa en especial, no hace falta abrir y cerrar el código php tantas veces, en uno solo puede entrar todo :P
No entiendo, si los datos están en el archivo config.php no te hace falta nada.

Saludos!
Hola:

@debonaire, lo que dice _St es que los datos están en el archivo config.php y este es incluído en el archivo insertardatosentabla.php a través de include( 'config.php' );. La palabra clave include hace que este disponible todo lo que contiene el archivo que se especifique entre paréntesis (include( 'config.php' );), por ende, las variables $server, $database, $db_user y $db_pass se pueden utilizar como tal, o sea, con el nombre de la variable. Lo siguiente

include( 'config.php' );
$conexion = mysql_connect( $server, $db_user, $db_pass );

es lo mismo que esto

$conexion = mysql_connect( 'localhost', 'cartago_pepito', 'servicio23' );

y, si te fijas bien, en este último trozo de código no se incluye la función include(), puesto que has escrito, literalmente, los parámetros necesarios; todo lo que esta entre paréntesis y separado por comas es un parámetro (mysql_connect( 'parámetro1', 'parámetro2', 'parámetro3' );, include( 'parámetro' );, etcétera).

Espero haber aclarado la duda :P.

Saludos.
Yo tengo el mismo problema, he seguido el curso y brujuleado por ahí, ahora logro que conecte con la base de datos pero no me agrega los datos. He realizado bastantes pruebas y se ve que es un problema que tenemos más de uno, incluso modifique segun se define más arriba por _ST, pero nada ¿me puede ayudar alguien?
este es el código escrito
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>PRUEBA PARA ENVIAR DATOS A UN FORMULARIO</title>
</head>
<body>
<?php
// leer datos de usuarios y contraseña de la base de datos
include("config.php");
// conexión con el servidor
mysql_connect('localhost', 'root', '') or die ("error1".mysql_error());
//Selección de Bae de Datos
mysql_select_db('basedepruebas') or die ("error2".mysql_error());
?>

<?php
if (isset($_POST['NOMBRE,EMAIL,URL,ESTADO'])) {
// esquema básico
//mysql_query ("INSERT INTO base.tabla (nombre de los campos) VALUES (datos correspondientes)");
mysql_query("INSERT INTO usuarios (NOMBRE,EMAIL,URL,ESTADO) VALUES ('".$_POST."', '".$_POST[correo eliminado]."', '".$_POST."', '".$_POST."')") or die ("Problemas al insertar".mysql_error());
echo 'Datos agregados correctamente';
}
else
{
?>
<form method="post" action="insertardatosentabla02.php" name="frmDatos" id="frmDatos">
<input type="text" name="NOMBRE" value="escribe tu nombre" size="30" maxlength="50"> <br/>
<input type="text" name="EMAIL" value="escribe tu e-mail" size="30" maxlength="50"> <br/>
<input type="text" name="URL" value="escribe tu pagina WEB" size="30" maxlength="50"> <br/>
<input type="hidden" name="ESTADO" value="Activo" /><br/>
<input type="submit" value= "botón de envio estandar" name="enviar la informqción al servidor"><br/>
</form>
<?php
}
mysql_close($conexion);
?>
</body>
</html
Saludos
Adaraja
@Adaraja:

¿Te muestra algún error? Lo único malo que veo es que debes poner el nombre de los indices del arreglo $_POST entre comillas (simples o dobles): $_POST['NOMBRE'], $_POST['EMAIL'], etcétera. Además, la variable $conexion no existe. Reemplaza la línea

mysql_connect('localhost', 'root', '') or die ("error1".mysql_error());
por
$conexion = mysql_connect('localhost', 'root', '') or die ("error1".mysql_error());

Saludos.
Gracias Skaparate, no me da ningún error
entiendo que la variable $conexión ya está incluida en config.php

<?php
$conexion = mysql_connect('localhost', 'root', '');
//mysql_select_db('basedepruebas');
//$server="localhost";
//$database="basedepruebas";
//$db_user="root";
//$db_pass="";
mysql_select_db('basedepruebas');
?>
En cuanto a las comillas ya lo he pronbado y nada
También he probado definiendo las variables
<?php
// leer datos de usuarios y contraseña de la base de datos
include("config.php");
// conexión con el servidor
mysql_connect('localhost', 'root', '') or die ("error1".mysql_error());
//Selección de Bae de Datos
mysql_select_db('basedepruebas') or die ("error2".mysql_error());

$NOMBRE = $_POST ['NOMBRE'];
$EMAIL = $_POST['EMAIL'];
$URL = $_POST['URL'];
$ESTADO = $_POST['ESTADO'];

if (isset($_POST['ID,NOMBRE,EMAIL,URL,ESTADO'])) {
// esquema básico
//mysql_query ("INSERT INTO base.tabla (nombre de los campos) VALUES (datos correspondientes)");

//mysql_query ("INSERT INTO usuarios(NOMBRE,EMAIL,URL,ESTADO) VALUES ('$NOMBRE','$EMAIL','$URL','$ESTADO")") or die("hubo un error al conectar con el servidor de BD");

mysql_query ("INSERT INTO `usuarios`(`NOMBRE`, `EMAIL`, `URL`, `ESTADO`) VALUES ([$NOMBRE],[$EMAIL],[$URL],[$POST]);
}
else
{
?>
<form method="post" action="insertardatosentabla05.php" >
<input type="text" name="NOMBRE" value="escribe tu nombre" size="30" maxlength="50"> <br/>
<input type="text" name="EMAIL" value="escribe tu e-mail" size="30" maxlength="50"> <br/>
<input type="text" name="URL" value="escribe tu pagina WEB" size="30" maxlength="50"> <br/>
<input type="hidden" name="ESTADO" value="Activo" /><br/>
<input type="submit" value= "botón de envio estandar" name="enviar la informqción al servidor"><br/>
</form>
<?php
}
mysql_close($conexion);
?>
En este caso me da error en la línea de inicio del formulario
Gracias de nuevo por tu atención
Adaraja
A ver... No sé cómo es la estructura de los archivos, pero debería ser así:

formulario.html, config.php e insertardatos.php deben estar en la misma carpeta. El contenido de cada archivo debe ser así:

<!-- formulario.html -->
<!DOCTYPE html>
<html>
<head>
  <title>titulo</title>
</head>
<body>
  <form action="insertardatos.php" method="post">
    <input type="text" name="NOMBRE" value="escribe tu nombre" size="30" maxlength="50" /> <br/>
    <input type="text" name="EMAIL" value="escribe tu e-mail" size="30" maxlength="50" /> <br/>
    <input type="text" name="URL" value="escribe tu pagina WEB" size="30" maxlength="50" /> <br/>
    <input type="hidden" name="ESTADO" value="Activo" /><br/>
    <input type="submit" value= "Enviar" /><br/><!-- name, en el botón submit, no es necesario -->
  </form>
</body>
</html>

<?php
  // config.php
  $db_dom = 'localhost';
  $db_user = 'root';
  $db_pass = '';
  $db = 'basedepruebas';
?>

Algo que no me fijé anteriormente, y es donde esta el error, es que no se pueden comparar varios índices de un arreglo con una sola llamada a la función isset():

<?php
  // insertardatos.php

  

  // if( isset( $_POST['ID,NOMBRE,EMAIL,URL,ESTADO'] ) ) <-- Esto esta mal, lo correcto sería:
  
  if( isset( $_POST['NOMBRE'] ) && 
      isset( $_POST['EMAIL'] ) &&
      isset( $_POST['URL'] ) &&
      isset( $_POST['ESTADO'] ) ) {
    // Sólo se realiza la conexión con la base de datos si los datos se enviaron al archivo:
    require( 'config.php' );
    $con = mysql_connect( $domain, $user, $pass, ) or die ( "Error 1: " . mysql_error() );
    mysql_select_db( $db, $con ) or die ( "Error 2: " . mysql_error( $con ) );

    // strip_tags quita las etiquetas html que puedan ser peligrosas, como <?php
    $name = strip_tags( $_POST['NOMBRE'] );
    $email = strip_tags( $_POST['EMAIL'] );
    $url = strip_tags( $_POST['URL'] );
    $state = strip_tags( $_POST['ESTADO'] );
    $query = "INSERT INTO usuarios (NOMBRE, EMAIL, URL, ESTADO) VALUES ('$name', '$email', '$url', '$state')";
    $result = mysql_query( $query, $con );
    
    if( $result > 0 ) {
      echo "<p>Datos guardados correctamente</p>";
    } else {
      echo "<p>Ocurri&oacute; un error al guardar los datos: " . mysql_error( $con ) . "</p>";
    }
    mysql_free_result( $result );
    mysql_close( $con );
  } else {
    echo "<p>Todos los campos son obligatorios.</p>";
  }
?>

Eso sí debe funcionar. Si no funciona puede ser porque la base de datos y la tabla no corresponden, así que revíselos. También se me puede haber pasado un error XD.

Saludos.
Gracias Skaparate por la pronta y practica respuesta, lo pruebo en esta forma
Adaraja
Skaparate:
Ya lo he probado, poniendo los datos db, user y passwoor correctos, funciona
Me da error en la instrucción mysql_free_result, he hecho varios intentos pero no lo he conseguido, solo anulandolo
// mysql_free_result( $result ); no da error., logico por otra parte
Gracias de nuevo
Saludos
Adaraja
Tienes razón, fue mi error. mysql_free_result() solo funciona cuando se han ejecutado consultas que extraen datos :P. Pero al menos ya lo resolviste.

Saludos.
Skaparate:
De nuevo con las dudas, como comente anteriormete segui el esquema y funciono sin problemas, pero he aqui que he creado una nueva base y nuevos campos, incluso manteniendo los mismos nombres para solo cambiar las referencia a nombre de la base y tabla, pero no logro que se graben los datos en la tabla ¿a que puede deberse?
Saludos
Adaraja
¿Podrías mostrar el código? Siempre "recorre" tu código línea por línea y ve que hace, así podrás descubrir los errores; eso se llama rutear o tracear (del inglés trace) el código.
Prueben con esto que es semejante a lo anteriormente planteado (me baso en lo que saqué por internet, si el foro lo permite puedo dar el lingk del video you tube que lo explica):

archivo.html (escuché que también puede ser php)

<form method="POST" action="insertardatosentabla.php">
<input type="TEXT" name="NOMBRE" value="Escribe tu nombre" size=30 maxlength=50><br />
<input type="TEXT" name="EMAIL" value="tuemail@correcto" size=30 maxlength=50><br />
<input type="TEXT" name="URL" value="http://www.tudirecciondepagina.web" size=30 maxlength=50><br />
<input type="HIDDEN" name="ESTADO" value="Activo">
<input type="SUBMIT" value="Botón de envio estandar" name="Enviar la información al servidor"><br />
</form>


config.php

<?php
// Rellena los espacios ente comillas de abajo con los datos que te da
// el servidor al activar la base de datos.
// Este dato de abajo suele ser localhost casi siempre:
$server="localhost";

// Aqui abajo escribe el nombre de la base de datos.
// Si tu servidor tiene cpanel normalmente va primero tu nombre de username,
// por ejemplo: username_nombredelabasededatos
$database = "loquetecorresponde_basedepruebas";

// Aqui abajo el nombre de username de la base de datos para acceder a ella.
$db_user = "loquetecorresponde_pepe";

// Y ahora la contraseña:
$db_pass = "loquetecorresponde";
?>

insertardatosentabla.php

<?php

include("config.php") ;

if(isset($_POST['NOMBRE']) && !empty($_POST['NOMBRE']) &&
isset($_POST['EMAIL']) && !empty($_POST['EMAIL']) &&
isset($_POST['URL']) && !empty($_POST['URL']) &&
isset($_POST['ESTADO']) && !empty($_POST['ESTADO']))
{

$conexion = mysql_connect($server, $db_user, $db_pass) or die ("problema al conectar el server");

mysql_select_db($database, $conexion) or die ("problemas al conectar la database");

mysql_query ("INSERT INTO USUARIOS (NOMBRE, EMAIL, URL, ESTADO) VALUES ('$_POST', '$_POST[correo eliminado]', '$_POST', '$_POST')", $conexion);
echo "datos insertados correctamente";

}else{
echo "problema al insertar los datos";
}
?>