entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

las rutas no cargan por algun error con la conexion

recibo el siguiente mensaje cuando intento acceder o registrarme en mi formulario
aparentemente si se puede conectar al servidor pero mas abajo aparece lo contrario, la verdad que es un poco dificil de comprender, mi script de conexion esta ubicado en otra carpeta pero contiene el mismo archivo de conexion de la ruta relativa.
sin embargo si incluyo mi archivo de conexion ubicado en la carpeta
F:\xamp\htdocs\local\demo\avanzado\sistema\model\ pasandole la ruta por una url de esta manera localhost://demo/avanzado/sistema/model/conexion.php tampoco funciona y devuelve el mismo error de conexion, a este punto creo que se deba por cuestiones de rutas.

aviso que antes de poner el codigo dejare la ruta del archivo en negrita

"F:\xamp\htdocs\local\modulos\conexion.php"

<?php

$server = "localhost";
$username = "root";
$db ="test";
$conex = mysql_connect($server, $username, "");

mysql_select_db($db, $conex) or die ("Error: No se puede usar la base de datos. ".mysql_error());
echo "<h2>conexion exitosa</h2>";

?>

cuando intento logearme o registrarme recibo el siguiente error

conexion exitosa(este mensaje es mandado por el script de conexion)

Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in F:\xamp\htdocs\local\demo\avanzado\sistema\model\verificador.php on line 24

Warning: mysql_query(): A link to the server could not be established in F:\xamp\htdocs\local\demo\avanzado\sistema\model\verificador.php on line 24
Error en la query: Access denied for user ''@'localhost' (using password: NO)**

F:\xamp\htdocs\local\demo\avanzado\sistema\model\verificador.php


<body style="background-color: darkblue; color:skyblue; font-weight: bold;">

<?php

$uname = $_POST['uname'];
$pw = $_POST['password'];
$email = $_POST['email'];

$ruta_conexion = "http://localhost/modulos/conexion.php"; 
require($ruta_conexion);

// require("../model/conexion.php"); // esto si funciona

$comando = "SELECT * FROM users WHERE email ='$email' AND password ='$pw' ";

$consulta = mysql_query($comando) or die ("Error en la query: ".mysql_error()); // esta es la linea que genera el error
echo "verifica realizada";

mysql_close($conex);

?>

tampoco funciona el otro script para la registracion
tengo el mismo error en la linea 20

F:\xamp\htdocs\local\demo\avanzado\sistema\model\register.php


<body style="background-color: darkblue; color:skyblue; font-weight: bold;">

<?php

$uname    =    $_POST['uname'];
$pw       =    $_POST['pass'];
$email    =    $_POST['email'];
// $telefono =    $_POST['telefono'];
$ruta_conexion = "http://localhost/modulos/conexion.php"; 

$table = "users";

require("$ruta_conexion");

/* los siguientes lineas impide repetir registrar al mismo usuario */

$comando   = "SELECT * FROM $table WHERE email ='$email' AND name ='$uname' ";

$consulta = mysql_query($comando) or die ("Error en la query: ".mysql_error()); // linea 20

$verificador = mysql_num_rows($consulta) ;

// echo $verificador;
if ($verificador > 1)
    { 
      echo "<h1>esta email no puede ser reutilizada</h1>";
    }

/* la siguente condicion registra un nuevo usuario */
else
  {
   $sql = "INSERT INTO $table (id, name, email, password) VALUES (id, '$uname', '$email', '$pw')";

  $insertar = mysql_query($sql) or die ("Error en la query: ".mysql_error());
    echo "register succesfily!";

  }

mysql_close($conex);
?>

1 Respuesta

3votos

Leonardo-Tadei Puntos227320

Hola @steven,

no es un problema de rutas.
El mensaje de error dice que falla al ejecutar

$conex = mysql_connect($server, $username, "");

como si alguno de los 3 datos fuera incorrecto para ingresar. Luego, las demás sentencias que usan a $conex fallan, porque la conexión no está establecida.

El mensaje "conexion exitosa" va a aparecer siempre, conecte o no conecte, porque no está puesto en un IF que verifique si se realizó la conexión o no.

Revisá que con estos valores puedas ver la DB desde otro programa. Estás usando ahora:

$server = "localhost";
$username = "root";
$db ="test";

Saludos cordiales

0voto

steven comentado

ahora no tengo ninguna password, por eso quiero darle una pero no se con que comando se hace, no puedo hacero desde la interfaz grafica de phpmyadmin porque tengo un problema con xamp

he probado tu codigo y cuando inserto una password me devuelve error porque tengo mi servidor sin ninguna pass

0voto

steven comentado

sabes si es posible iniciar mi servidor mysql desde la consola, he probado hacerlo con net start mysql pero me dice que el nombre del servicio no es valido

1voto

Leonardo-Tadei comentado

Voy a adivinar:

no hay ninguna estructura encapsulando la conexión.

En alguna parte entre la llamada a mysql_connect() y la llamada a mysql_query(), hay un mysql_close() que cierra todo, y por eso el identificador de la conexión ya no existe.

Mis 2 centavos.

0voto

steven comentado

no lo se creo que es por lo que dijo @magarzon sobre las peticiones , de todos modos para que lo compruebes te vuelvo a mostrar el codigo

F:\xamp\htdocs\local\demo\avanzado\sistema\model\conexion.php


<?php

global $conex; 
$conex = mysql_connect("localhost", "root", "admin");

if($conex){
mysql_select_db("test", $conex) or die ("Error: No se puede usar la base de datos. ".mysql_error());

echo "conexion establecida";
}
?>

F:\xamp\htdocs\local\demo\avanzado\sistema\model\verificador.php

<body style="background-color: darkblue; color:skyblue; font-weight: bold;">

<?php

$uname = $_POST['uname'];
$pw = $_POST['password'];
$email = $_POST['email'];

require("http://localhost/demo/avanzado/sistema/model/conexion.php");

$comando = "SELECT * FROM users WHERE email ='$email' AND password ='$pw' ";

$consulta = mysql_query($comando, $conex) or die ("Error en la query: ".mysql_error());
if($consulta)
{echo "verifica realizada";
}

mysql_close($conex);

?>

output

**conexion establecida
Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in F:\xamp\htdocs\local\demo\avanzado\sistema\model\verificador.php on line 22

Warning: mysql_query(): A link to the server could not be established in F:\xamp\htdocs\local\demo\avanzado\sistema\model\verificador.php on line 22
Error en la query: Access denied for user ''@'localhost' (using password: NO)**

2votos

magarzon comentado

@Leonardo-Tadei es por lo que yo decía.

Nunca había trabajado con urls en los requires, pero he hecho esta prueba:

index.php:

<?php
echo 'index process id: '.getmypid().'<br/>';
require('http://localhost/test.php');

test.php:

<?php
echo 'test process id ':getmypid().'<br/>';

Y la salida que me da es esta:

index process id: 30359
test process id: 30360

Es decir, como me esperaba, es manejado por diferentes procesos, por lo que no pueden compartir variables, solo la salida.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta