No envía consulta a base de datos MySQL

PussInBoots

Lanero Reconocido
3 Mar 2007
1,889
Buenas a todos,

Quiero solicitarles su ayuda, ya que estoy tratando de insertar los campos de este formulario dentro de la tabla, al hacer la consulta en phpmyadmin la sintaxis se ajusta e inclusive utilicé la sentencia que genera el mismo phpmyadmin.

El caso es que la consulta no pasa a insertar los campos dentro de la tabla, que es lo que debería hacer, cabe aclarar que el código está dentro del mismo archivo agregar.php, como pueden ver coloqué sentencias de validación y el problema está DESPUÉS de hacer la consulta, no sé qué está mal, agradezco sus observaciones.

PHP:
<?php
// datos de configuracion
$ip = 'localhost';
$user = 'miusuario';
$password = 'miclave';
$db_name = 'acceso';
$tabla = 'usuarios';
// conectamos con la db

$conn = mysql_pconnect($ip,$user,$password) or die();
// seleccionamos la base de datos
if($conn)
 echo "CONEXION CON BD OK -- ";
$huboerror = mysql_select_db($db_name,$conn) or die();
if ($huboerror)
 echo "SELECCION DE BD OK -- ";
// si se envia el formulario
if (!empty($_POST['submit']) ) {
 echo "FORMULARIO NO VACIO -- ";
 echo "usuario: ".$_POST['usuario'];
 $_POST['clave']=$pass;
 
 $sql = "INSERT INTO usuarios (nombre,clave) VALUES ('pepitoperez','123456789')";
 
 $resultado = mysql_query($sql, $conn);
 
	if (!$resultado) {
		die ("Se ha producido un error: " . mysql_error());
	}



}	
?>
<html>
<head>
<title>Formulario</title>
</head>
<body>

<h1>Agregar Nueva Noticia</h1>
<form action="agregar.php" method="post">
<label for="usuario">usuario</label><br />
<input id="usuario" type="text" name="usuario" /><br /><br />
<label for="clave">clave</label><br />
<input id="clave" name="clave" type="text"></textarea><br /><br />
<button type="submit" name="submit" value="1">Enviar Formulario</button>
</form>
</body>
</html>

Lo actualicé y funcionó por un momento, sin cambiar el código.

Si hago la prueba de usar el botón de enviar dejando los campos vacíos, de todos modos aparece que no lo están con el mensaje de control que coloqué. :s

Les agradezco su amable ayuda.

PD: ¿Cómo coloco en los parámetros de mysql_query el contenido de $_POST['usuario']???
 
Que tal lanero pues revise tu codigo y hay dos cosas que se me ocurren

1)esta es solo un tal vez dices que tu quieres enviar un dato pero como es que pides datos en el formulario de html y no los tomas en cuenta a la hora de enviarlos ya que solo envias pepitoperez y 123456789 y no los valores que pasaste de el formulario

2)eta es el error que encontre ya que los nombres de tus valores en html son usuario y clave y en el codigo php son nombre y clave esto te causara un error de que no te incertara los datos tambien en la tabla de mysql deben de llamarse igual por la asociacion

saludos laneros y que tengas buena suerte
 
OK compañero, gracias :)

Otro error que había era el de las llaves, ya logré hacer la validación de la consulta con la base de datos para que deniegue o permita el acceso.

Tengo una pregunta:
Si la instrucción header debe ir antes de cualquier output HTML, cómo hago en PHP para redireccionar después de tener los datos... me explico, mi código hace lo siguiente:

  1. En PHP valida si ya hay datos ingresados a través de $_POST
  2. Si no encuentra datos que hayan sido pasados al fomulario con el botón submit, entonces muestra el formulario.
  3. En caso contrario, valida si los datos son correctos. Si no lo son, simplemente escribe el HTML con el formulario y un mensaje de error.

Entonces, lo que quiero saber es cómo hago para que hecha la validación redireccione a otro PHP recogiendo las variables, lo único que no tengo claro es cómo hacer para que no las pase por URL.

Gracias nuevamente y salu2
 
Hola, eso lo haces con los if() bien puedes hacer include_once("elotro.php"); o poner el codigo a mostrar dentro del if
 
Que tal lanero pues pensando un poco se me ocurre que pongas codigo html y le metas um meta en el momento en el que quieras reenviar tmb se puede