|
2
|
Programación / PHP / Re: MySQL no me muestra el valor? Osea khé?
|
en: 25 Octubre 2015, 01:04 am
|
$query->fetch_assoc();
Es un metodo de MySQLi Result: http://php.net/manual/en/mysqli-result.fetch-assoc.phpEl comportamiento para las hileras en el result set es tal cual describes (cada vez que lo llamas, regresa la siguiente hilera o null si no hay mas hileras para retornar). Si tienes un result set asi (el resultado de tu query): miusuario | contraseña | pass Con fetch_assoc extraes la primera hilera a un arreglo associativo (las llaves son los campos de la tabla) y dejas el result set asi: Vuelves a hacer fetch_assoc y como no hay siguiente hilera, el resultado es null: Entonces: Es el mismo metodo si, pero la funcion muta el estado del result set cada vez que invocas la función. Por lo que en cada invocación, el resultado puede ser distinto. Edit: De hecho, no estoy seguro si el comportamiento es tal cual así. Es probable que el result set no sea mutado y simplemente dependa de un puntero interno del result set. En ese caso, el puntero simplemente avanza una fila cada que llames a la función. Probé a hacer eso mediante variable, es decir, sin hacer el llamamiento a la funcion de cada vez, y funcionó, pero, habría alguna forma de no usar una variable?, es decir, aunque llame a la funcion dos veces, que sea el mismo resultado? [es una curiosidad por optimizar, pero bue.. {el fantasmita mita mita}] $fassoc = $query->fetch_assoc(); if ($fassoc['**'] == $haspass) { $_SESSION['**.**'] = $_POST['usuario']; $_SESSION['**.**'] = $haspass; $_SESSION['**.**'] = $fassoc['cEmail']);
|
|
|
5
|
Programación / PHP / MySQL no me muestra el valor? Osea khé?
|
en: 24 Octubre 2015, 12:45 pm
|
Esta ultima semana estuve desarrollando un panel de control para unos servidores y al testar la parte de 'Mi cuenta' veo que me sale el usuario, pero no el 'email', y está hecho de la misma forma que el usuario, osea, no entiendo porque no sale En el proceso de login es donde se asigna la sesion $haspass = //ENCRIPTACION DE CONTRASENA $db = new mysqli ("", "", "", ""); $query = $db->query("SELECT * FROM usuarios WHERE usuario='".$_POST['usuario']."' LIMIT 1"); if ($query->num_rows > 0) { if ($query->fetch_assoc()['pswd'] == $haspass) { $_SESSION['***.***'] = $_POST['usuario']; $_SESSION['***.***'] = $haspass; $_SESSION['emailClient'] = $query->fetch_assoc()['email']; //Luego en el siguiente script, no muestra nada $_SESSION['login'] = true; $db->close(); logsec(); } else { $db->close(); logerror("Contraseña incorrecta"); } } else { $db->close(); logerror("El usuario no existe"); }
<html style="background-color:#eee;"> <head> <title>Mi cuenta - Cydrio cPanel</title> <link rel="stylesheet" href="bs3.3.5/css/bootstrap.min.css"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body class="container" style="background-color:#eee;"> <?php include('cpanel.header.php'); ?> <table class='table table-bordered table-hover table-striped'> <tbody> <tr> <td style="width:25%;">Tu usuario</td> <td style="width:75%;"><?php echo($_SESSION['***.***']); //Esto lo muestra bien ?></td> </tr> <tr> <td>Tu email</td> <td><?php echo($_SESSION['emailClient']); //Esto ya no ?></td> </tr> </tbody> </table> </body> </html>
Puse la depuracion de errores, pero nada, es como si tuviera una string en blanco, he revisado la base de datos por si acaso, y el valor existe ' ejemplo@ejemplo.com'
|
|
|
6
|
Programación / PHP / Re: 500 internal error al ejecutar un script?
|
en: 24 Octubre 2015, 12:32 pm
|
Solo da en ese script Uso apache2, sobre una base Linux Debian 7.8 (si mal no recuerdo) y si, mi conexion es estable, sobre eso, ayer le pase un vistazo muy centrado, y averigue este error if ($query['pswd'] == $haspass) {
En vez de haber usado if ($query->fetch_assoc()['pswd'] == $haspass) {
Ya lo tengo solucionado , pero gracias a todos por responder
|
|
|
7
|
Programación / PHP / [Resuelto] 500 internal error al ejecutar un script?
|
en: 23 Octubre 2015, 19:50 pm
|
Bueno, hoy vengo con un problema que me ocurre unicamente con el codigo de login, ningun otro me tira ese error y no sé por que (algunas veces arranca, con otro usuario y contraseña), pero normalmente tira error 500 Este es el codigo, no sé que error tiene como para que tire HTTP 500 <?php function logerror($reason) { $_SESSION['logerror'] = $reason; header("Location: login.php"); die('Redireccionando...'); } if (!isset($_POST['usuario']) || !isset($_POST['pswd'])) { logerror("Falta algun dato"); } logerror("El usuario no debe contener caracteres no permitidos"); } logerror("La contraseña no debe contener caracteres no permitidos"); } if (strlen($_POST['usuario']) < 6) { logerror("El usuario debe de tener 6 o mas caracteres"); } if (strlen($_POST['pswd']) < 6) { logerror("La contraseña debe de tener 6 o mas caracteres"); } //$haspass = //ENCRIPTACION DE LA CONTRASEÑA MEDIANTE CRYPT(); $db = new mysqli ("localhost", "***", "***", "***"); $query = $db->query("SELECT * FROM usrs WHERE usuario='".$_POST['usuario']."'"); if ($query->num_rows > 0) { if ($query['pswd'] == $haspass) { $db->close(); logerror("Login correcto"); } else { $db->close(); logerror("Contraseña incorrecta"); } } else { $db->close(); logerror("El usuario no existe"); } ?>
|
|
|
9
|
Programación / PHP / Problema con comandos en SSH desde PHP
|
en: 30 Septiembre 2015, 23:44 pm
|
Bueno, quizas esto sea dificil de explicar, pero bueno, alla voy, Hola antes que nada, despues de tanto tiempo Tengo un servidor de FTP para los usuarios virtuales, y la cosa es que intenté hacer un script para cambiar la contraseña desde el propio cPanel del hosting, pero se ve que no quiere funcionar el cabron Intenté dos metodos, los cuales estan comentados, pero aun así, no la cambia, sigue siendo la original //$shellConnection = ssh2_connect("185.35.67.76", 22); //ssh2_auth_password($shellConnection, 'root', '*****'); //PRIMARY METHOD //$shell=ssh2_shell($shellConnection, 'xterm'); //fwrite( $shell, "pure-pw passwd {$_SESSION['clientusername']}".PHP_EOL); //fwrite($shell, "$Opass".PHP_EOL); //fwrite($shell, "$Opass".PHP_EOL); //fwrite($shell, "pure-pw mkdb".PHP_EOL); //unset($shell); //ALTERNATIVE METHOD //ssh2_exec($shellConnection, "pure-pw passwd {$_SESSION['clientusername']}); //ssh2_exec($shellConnection, "$Opass"); //ssh2_exec($shellConnection, "$Opass"); //ssh2_exec($shellConnection, "pure-pw mkdb"); //ssh2_exec($shellConnection, 'exit'); //unset($shellConnection);
Y si, conecta y tal, hasta con un touch $session['clientusername'] funciona Pero se ve que ahi no, adjunto foto para que se vea como es el proceso en SSH shell (PuTTY) Esa pantalla de password seria en el script esta parte, pero se ve que no la reconoce o algo //fwrite($shell, "$Opass".PHP_EOL); //fwrite($shell, "$Opass".PHP_EOL); //ssh2_exec($shellConnection, "$Opass"); //ssh2_exec($shellConnection, "$Opass");
Pd:$Opass es la contraseña a introducir
|
|
|
10
|
Programación / PHP / Re: index.php no se muestra, a pesar de mostrarse bien antes
|
en: 6 Septiembre 2015, 16:53 pm
|
Probe a quitar TODO el codigo PHP del archivo desde la etiqueta HTML (TODO) y funcionó, que yo sepa no modifiqué nada, ya que en otros subdominios funciona perfectamente, que extraño... Osea, la misma configuracion es para el dominio principal que para ese subdominio <?php $dbConnect = new mysqli("*****", "******", "*****", "*******"); if ($dbConnect->connect_error) { echo("Error al conectar con la base de datos"); } $data = $dbConnect->query('select * from *****'); while ($i = $data->fetch_assoc()) { if (isset($i['usuario']) && isset($i['contrasena']) && isset($_SESSION['usuario']) && isset($_SESSION['contrasena'])) { if ($i['contrasena'] == $_SESSION['contrasena'] && $i['usuario'] == $_SESSION['usuario']) { $logged = true; } } } $dbConnect->close(); ?> <html> <head> <title> Prueba </title> </head> <body> <div class='container'> <div class='alert alert-success' role='alert'> <p class='text-center'>Ya estas logeado <b><a href='login.proc.php?logout'>[ Deslogearme ]</a></b></p> </div> </div> </body> </html>
Y ni con el modo de desarrollo de PHP salta error, que esto es muy extraño.. error_reporting = E_ALL
EDIT, puse el modo desarrolo y el 'display errors' Ahora si vi el error: Parse error: syntax error, unexpected '{' in /var/www/.beta/index.php on line 21 Todo solucionado xD, gracias a YuseTist por hacerme ver que era un error de PHP
|
|
|
|
|
|
|