Foros del Web » Programando para Internet » PHP »

Conexion Servidor Web

Estas en el tema de Conexion Servidor Web en el foro de PHP en Foros del Web. Buenas Me ha salido un problema, intentando conectar a un servidor web, este es mi codigo ahora adjunto el error, es una conexion de prueba ...
  #1 (permalink)  
Antiguo 16/05/2012, 08:21
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Pregunta Conexion Servidor Web

Buenas

Me ha salido un problema, intentando conectar a un servidor web, este es mi codigo ahora adjunto el error, es una conexion de prueba para ver si funciona

<?php


$serverName = "XXXX";
$username = "XXXX";
$password = "XXXXX";
$database = "XXXXX";
$conexion = array( "UID"=>$username, "PWD"=>$password, "Database"=>$database);
$conn = sqlsrv_connect( $serverName, $conexion);


$consulta = "SELECT * FROM tabla";

$resul=sqlsrv_query($conn,$consulta);

//$fila=sqlsrv_fetch_array($resul);

while( $fila = sqlsrv_fetch_array( $resul, SQLSRV_FETCH_NUMERIC) ) { // aqui sale el error
echo $fila[0].", ".$fila[1]."<br>";
}

?>

y me sale este error, que la verdad lo entiendo a medias, no se muy bien que me quiere decir

Warning: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given in E:ruta\Conexion.php on line 18
  #2 (permalink)  
Antiguo 16/05/2012, 08:39
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Conexion Servidor Web

bueno si es para probar deberias guiarte del agun ejemplo que aparezca en la pagina de PHP

por ejemplo este es uno

Código PHP:
Ver original
  1. <?php
  2. $serverName = "serverName\instanceName";
  3. $connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
  4. $conn = sqlsrv_connect( $serverName, $connectionInfo );
  5. if( $conn === false ) {
  6.     die( print_r( sqlsrv_errors(), true));
  7. }
  8.  
  9. $sql = "SELECT FirstName, LastName FROM SomeTable";
  10. $stmt = sqlsrv_query( $conn, $sql );
  11. if( $stmt === false) {
  12.     die( print_r( sqlsrv_errors(), true) );
  13. }
  14.  
  15. while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
  16.       echo $row['LastName'].", ".$row['FirstName']."<br />";
  17. }
  18.  
  19. sqlsrv_free_stmt( $stmt);
  20. ?>

adaptalo a tus necesidades
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #3 (permalink)  
Antiguo 16/05/2012, 08:39
 
Fecha de Ingreso: agosto-2003
Mensajes: 524
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Conexion Servidor Web

Necesariamente tenés que hacer la conexión con un array?

Sino podés probar con algo simple como esto

Código PHP:
$Host "localhost";
$User "usuario";
$Password "clave";
$Base "base";

# Conexión al servidor de MySQL comprobando fallos
$Link mysql_connect($Host$User$Password) or die("Ha fallado la conexion a MySQL");

# Selección de la base de datos comprobando fallos
$db mysql_select_db($Base) or die("Ha fallado la seleccion de la base de datos"); 
y luego hacer las consultas que necesites.
Espero te ayude.
__________________
Saludos!!!
Maru.-
  #4 (permalink)  
Antiguo 16/05/2012, 08:43
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Conexion Servidor Web

buenas y gracias por responder tan rapido

johhan16 , el error me ha salido adaptandolo a mis necesidades, y no se porque me sale ese warning

y Maru77 , las intrucciones que estoy utilizando son sqlsrv_query , no mysql , ya que el servidor web no es mysql, en local lo tengo con mysql y funciona perfecto ahora estoy adaptando el codigo

¿saben por que da ese error?
  #5 (permalink)  
Antiguo 16/05/2012, 08:54
Avatar de Erick_Lucas  
Fecha de Ingreso: enero-2009
Ubicación: Manta
Mensajes: 47
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Conexion Servidor Web

Hola 60NZ4, tu código está muy bien ya que se tiene por sentado que se debe enviar un array como segundo parámetro en la función de conexión.

Te comento yo tuve el mismo inconveniente de ese mensaje de error y di con la solución, todo parte del SQL Server Native Client. Para lograr una conexión satisfactoria debes tener en cuenta 2 cosas:

1) La versión del SQL Server Native Client que tienes instalado (si es 10 ó 10.5 u 11 etc.)
2) Si la versión de sqlsrv que utilizas es compatible con la versión del SQL Server Native Client.

Para verificar la versión puedes hacer 2 cosas (recomiendo hacer las 2):

1) Ir a la sección de Panel de control -> Programas -> Desinstalar un programa (Panel de control -> Agregar o quitar programas si estás en Windows XP) y en el listado que te aparece buscar SQL Server Native Client y en la última columna ver que versión tienes instalada.
2) Escribir el siguiente codigo después de la línea de conexión, así

Código php:
Ver original
  1. <?php
  2. //Esta es tu sentencia de conexión
  3. $conn = sqlsrv_connect( $serverName, $conexion);
  4. //Agregas lo siguiente
  5. if($conn) {
  6.      echo "Conexión exitosa.<br />";
  7. }else{
  8.      echo "Problema de conexion.<br />";
  9.      die( print_r( sqlsrv_errors(), true));
  10. }
  11. ?>

Te mostrará por pantalla qué versión del SQL Server Native Client necesita tu sqlsrv y ahí, tú decides: si quitar esa versión e instalar la que necesita el sqlsrv ó utilizar la versión de sqlsrv compatible con el SQL Server Native Client que ya tienes instalado. Recomiendo la última.

Los instaladores de sqlsrv los puedes descargar de acá [URL="http://www.microsoft.com/en-us/download/details.aspx?id=20098"]Microsoft Drivers 3.0 for SQL Server for PHP[/URL]

Saludos!
  #6 (permalink)  
Antiguo 16/05/2012, 08:59
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Conexion Servidor Web

Muchas gracias Lucas, voy a probarlo, cuanto tenga algo escribire para exponer avances

  #7 (permalink)  
Antiguo 16/05/2012, 09:54
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Conexion Servidor Web

hola de nuevo ^^

he estado probando lo dicho...y por fin!!! conecto


lo que me ocurre ahora es que tengo muchos errores de codigo, debido a que yo este proyecto en local lo tenia echo en una BD Mysql

este error me esta dando un gran dolor de cabeza:

Fatal error: Call to undefined function sqlsrv_fetch_row()


adjunto el codigo y pongo en situacion: es en un login y tengo esto


<?php

session_start();

require ("Conexion.php");

$email=$_GET['email'];
$pass=$_GET['pass'];
$email=strtolower($email);

$_SESSION['Email']=$email;

$consulta = "SELECT * FROM DISTRIBUIDORES WHERE EMAIL='".$email."'";
$resul=sqlsrv_query($conn,$consulta);


$fila = sqlsrv_fetch_row($resul); //aqui da el error

$url="RepetirRegistro.php";
if ($email <> ''){

if ($email == $fila[3] AND $pass == $fila[4]) {
$_SESSION['Usuario']= $email;
$url="Main.php";
}else{

}
}else{

}
header( "Location: $url" );

?>

no se como solucionarlo, alguna idea ?

gracias a todos
  #8 (permalink)  
Antiguo 16/05/2012, 10:23
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Conexion Servidor Web

y si lo tienes en local en Mysql, porque no lo subes al hosting también con el mysql? y asi no usas M$
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #9 (permalink)  
Antiguo 16/05/2012, 10:32
Avatar de Erick_Lucas  
Fecha de Ingreso: enero-2009
Ubicación: Manta
Mensajes: 47
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Conexion Servidor Web

Dentro de sqlsrv, no existe sqlsrv_fetch_row por eso tal error.

Lo que si existe es sqlsrv_get_field(). No he revisado si tu código para iniciar sesión esté bien hecho, pero para quitar esa función inexistente y reemplazarla por aquellas que sí existen para obtener los valores, deberás hacer esto.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. require ("Conexion.php");
  5.  
  6. $email=$_GET['email'];
  7. $pass=$_GET['pass'];
  8. $email=strtolower($email);
  9.  
  10. $_SESSION['Email']=$email;
  11.  
  12. $consulta = "SELECT * FROM DISTRIBUIDORES WHERE EMAIL='".$email."'";
  13. $resul=sqlsrv_query($conn,$consulta);
  14.  
  15. //Reemplazas la linea $fila = sqlsrv_fetch_row($resul); y agregas esto
  16. $valor1 = sqlsrv_get_field($resul, 3); //para obtener el campo email de tu tabla
  17. $valor2 = sqlsrv_get_field($resul, 4); //para obtener el campo pass de la tu tabla
  18.  
  19. $url="RepetirRegistro.php";
  20. if ($email <>  ''){
  21.  
  22. if ($email ==  $valor1 AND $pass == $valor2) {
  23. $_SESSION['Usuario']= $email;
  24. $url="Main.php";
  25. }else{
  26.  
  27. }
  28. }else{
  29.  
  30. }
  31. header( "Location: $url" );
  32.  
  33. ?>

Siempre que necesites saber las funciones y la utilización de las mismas acude al manual en PHP.net/manual
  #10 (permalink)  
Antiguo 16/05/2012, 10:57
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Conexion Servidor Web

johhan me lo han pedido en el trabajo, son ordenes desde arriba

lucas...muchas gracias por todo enserio , usare ese manual como la biblia de php , gracias ^^ todo solucionado ya me van saliendo las cosillas ahora es cuestion de ir probando

gracias
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores

Etiquetas: conexion, servidor, sql, tabla
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 22:20.