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í:
Código HTML:
<!-- 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>
Código PHP:
<?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():
Código PHP:
<?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ó 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.
Marcadores