Foros del Web » Programando para Internet » PHP »

Conexion a MYSQL desde PHP

Estas en el tema de Conexion a MYSQL desde PHP en el foro de PHP en Foros del Web. Buenas Tardes! Tengo un problemilla .... a saber: Tengo el siguiente formulario HTML: Código HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns= ...
  #1 (permalink)  
Antiguo 29/05/2012, 19:53
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Conexion a MYSQL desde PHP

Buenas Tardes!

Tengo un problemilla .... a saber:

Tengo el siguiente formulario HTML:


Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
	<head>


	</head>
	<body>
	<form id="form1" method="post" action="conectar.php">
	  <p>
	    <label for="server">server</label>
	    <input type="text" name="server" id="server" />
      </p>
	  <p>
	    <label for="user">user</label>
	    <input type="text" name="user" id="user" />
	  </p>
	  <p>
	    <label for="pwd">pwd</label>
	    <input type="text" name="pwd" id="pwd" />
	  </p>
	  <p>
	    <label for="base">base</label>
	    <input type="text" name="base" id="base" />
	  </p>
	  <p>&nbsp;</p>
	  <p>
	    <input type="submit" name="enviar" id="enviar" value="Enviar" />
	    <input type="reset" name="borrar" id="borrar" value="Restablecer" />
      </p>
	</form>

	</body>
</html> 
Este formulario envía datos de conexión a un PHP (conectar.php) que lo procesa, el código es el siguiente:

Código PHP:
<?php
error_reporting
(0);

$server =$_POST['server'];
$user$_POST['user'];
$pwd $_POST['pwd'];
$base $_POST['base'];

echo 
"SERVER: ".$server;
echo 
"<br>";
echo 
"USER: ".$user;
echo 
"<br>";
echo 
"PWD: ".$pwd;
echo 
"<br>";
echo 
"BASE: ".$base;
echo 
"<br>";
 
$link =  mysql_connect($server$user,  $pwd) or die ("Error Mysql: ".mysql_error());

echo 
"<br>";

if (!
$link) {
    die(
'No pudo conectarse: ' mysql_error());
    echo 
"&opcion=a&";
    echo 
"<br>";
    echo 
"&cadena=".$server.",".$user.",".$pwd."&";
    echo 
"<br>";
}
else
{
    
$sql=mysql_select_db($base$link);
        echo 
"&opcion=b&";
     echo 
"<br>";
     echo 
'Conectado  satisfactoriamente';    
     echo 
"<br>";
     echo 
"&cadena=".$server.",".$user.",".$pwd."&";
     echo 
"<br>";

    }

?>
Si cargo los datos de conexión en el HTML y hago click en enviar, el PHP lo procesa y se conecta o bien, si cargo datos erróneos (clave incorrecta) procesa el error de MYSQL y lo muestra. Hasta ahi todo bien, pero, el problema es el siguiente:

Si dejo todos los campos vacíos del html o ejecuto por si solo el codigo PHP, tengo como resultado que "la conexión es exitosa", todo indica que lo siguiente:
Código PHP:
$link =  mysql_connect($server$user,  $pwd) or die ("Error Mysql: ".mysql_error());

echo 
"<br>";

if (!
$link) { 
No se ejecuta correctamente y no evalua el resultado de la función mysql_connect

Alguna idea?

Desde ya muchas gracias!

Rodrigo
  #2 (permalink)  
Antiguo 29/05/2012, 22:37
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Conexion a MYSQL desde PHP

Aparentemente es porque las variables están en blanco y la función toma los valores por defecto. Del manual:

Cita:
resource mysql_connect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0 ]]]]] )
Como verás, todos los parámetros son opcionales. Si las variables son NULL, false o string vacío (o sea, formulario en blanco o entrar a la página directamente) estos valores por defecto son tomados como ser(mysql.default_host, mysql.default_user, etc).

Leé este hilo que está bien interesante: http://www.forosdelweb.com/f18/pregu...onnect-688762/

Supongo que deberías hacer algo así:
Código PHP:
Ver original
  1. if(empty($_POST))
  2.         die ('Error - no se recibieron datos');
  3.        
  4.     $server =$_POST['server'];
  5.     $user= $_POST['user'];
  6.     $pwd = $_POST['pwd'];
  7.     $base = $_POST['base'];

Así te asegurás que al menos tengas datos.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 29/05/2012, 22:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Conexion a MYSQL desde PHP

Lee el manual de mysql_connect() para que te fijes que valores devuelve.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 29/05/2012, 23:01
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Conexion a MYSQL desde PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
Lee el manual de mysql_connect() para que te fijes que valores devuelve.
Ese no es el problema. El problema es que si las variables que le paso a la función están en blanco, la función devolverá un link válido dado que usa sus valores por defecto configurados en el servidor.
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 30/05/2012, 01:53
 
Fecha de Ingreso: noviembre-2010
Ubicación: Munich - Alemania
Mensajes: 76
Antigüedad: 13 años, 5 meses
Puntos: 7
Respuesta: Conexion a MYSQL desde PHP

Comprueba que se reciben todos los datos con (isset) por ejemplo:
Código PHP:
if(isset($_POST['server']) && isset($_POST['user']) &&  isset($_POST['pwd']) &&  isset($_POST['user'])){ // Si se reciben todo los datos
 //Conectas con la BBDD
}else{
 echo 
"No se han recibido todo los datos.";

  #6 (permalink)  
Antiguo 30/05/2012, 07:16
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Conexion a MYSQL desde PHP

muchas gracias por las respuestas, la verdad no sabia que la funcion se conectaba con los datos por defecto si recibia argumentos en blanco o null...

Etiquetas: conexion, formulario, html, mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:18.