Buenas de nuevo.
He avanzado mucho, aprendido algo, no todo, os pongo una muestra para pasar un rato y también seguir una pregunta aunque me temo que habra mucho codigo implicado y yo no sabria bien asociarlo (recordad/sabed; de esto no tengo ni idea/estudié) lo hago por ahorrarme una pasta en una web, por aprender, entretenerme y determinación cuando (me cachis esto no sale, ¿por qué?).
Bien, actualicé xampp, no a la última versión, pero al menos tiene php7.
Comencé a arreglar/migrar código de mi página insegura y obsoleta escrita en php y MySQL.
Empecé con la conexión, está en una carpeta a la que voy ligando cada vez que hay que conectar para no escribir código, enlazando con require_once.
Creo (no lo sé de memoria pero es fácil buscarlo) que la tengo/hago procedimental.
Tras declarar host, usuario, contraseña y db conecto.
Una vez arreglé esto me puse con lo que entiendo es mas vulnerable a ataques, el registro y el login.
¿Que es lo malo por decir así? Que yo no tengo un dominio/control claro de donde vienen las cosas, de por qué pasan o por qué y cuando interactuan unas con otras, entiendo que todo podría ser mas fácil si yo supiera, y si el codigo y las páginas estuvieran mejor organizadas, pero seguí los pasos de uno que sabe poco (aunque va de que sabe la tira), y luego pedí ayuda, me escribieron código a su parecer/entender y luego he ido copiando y pegando código de mini manuales de aquí y alla de la red, así es que a pesar de que lo voy arreglando, no se de donde viene, por qué pasa y mil cosas, eso es lo malo.
Esto viene por que tengo una tontería, una variable no declarada que antes "funcionaba" y ahora no; pero antes un poco de buenas prácticas y orgullo positivo, muestra de parte del código corregido y securizado (no del todo seguro se sabe).
Bien como decía antes, para el registro de usuarios tengo 3 páginas php y vinculadas /includes/ entre ellas y la leche, que lio.
Lo que hace el registro en meter en una tabla temporal de la db los datos, ahí va la clave tipica que se manda para activar la cuenta, una vez se activa la cuenta el usuario pasa a la nueva tabla usuario_validados y se borrán los datos de la tabla temporal.
Me parece que el formulario de registro esta muy bien contruido, con su lista blanca de permitidos, escapando caracteres, obligando a que sean de tipo etc etc... si hiciera falta los pondría, y a todo esto me falta implementar el reCaptcha que por ahora en local no doy con como integrarlo.
Bien voy al lio porque si no va a parecer esto no se....
He ido resolviendo warnings, Fatal errors etc etc de las pruebas de registro, pero sigo sin poder meter a la tabla temporal datos de los campos del from
¿que falla ahora? pues al parecer una variable que hay declarada dentro de un php con un if, es esta...
Creo entender que eso dice, si la respuesta es igual a 1 no insertes nada en la db ("creo").
El caso que me arroja un notice de que la variable no está declarada, como esto tiene vinculado mucho codigo que depende uno de otro busque Ctrl+f la variable $respuesta y no está por ningun lado, solo en registro.php que es donde me avisa el Notice.
¿Cómo dónde y con qué parametros la declaro?
¿Cómo veis las mejoras de seguridad? A lo mejor para la otra pregunta voy a otro sitio, pero buscando volvi a llegar aquí.
Si necesitais saber/ver mas código vinculado/incluido lo pego.
PD: ¿No hay un [spoiler][/spoiler] para meter el codigo y salvar scroll?
Saludos .
He avanzado mucho, aprendido algo, no todo, os pongo una muestra para pasar un rato y también seguir una pregunta aunque me temo que habra mucho codigo implicado y yo no sabria bien asociarlo (recordad/sabed; de esto no tengo ni idea/estudié) lo hago por ahorrarme una pasta en una web, por aprender, entretenerme y determinación cuando (me cachis esto no sale, ¿por qué?).
Bien, actualicé xampp, no a la última versión, pero al menos tiene php7.
Comencé a arreglar/migrar código de mi página insegura y obsoleta escrita en php y MySQL.
Empecé con la conexión, está en una carpeta a la que voy ligando cada vez que hay que conectar para no escribir código, enlazando con require_once.
Creo (no lo sé de memoria pero es fácil buscarlo) que la tengo/hago procedimental.
Tras declarar host, usuario, contraseña y db conecto.
Código (php) [Seleccionar]
//INICIAMOS CONEXION.
$conexion = new mysqli($hostname_db, $username_db, $password_db);
Una vez arreglé esto me puse con lo que entiendo es mas vulnerable a ataques, el registro y el login.
¿Que es lo malo por decir así? Que yo no tengo un dominio/control claro de donde vienen las cosas, de por qué pasan o por qué y cuando interactuan unas con otras, entiendo que todo podría ser mas fácil si yo supiera, y si el codigo y las páginas estuvieran mejor organizadas, pero seguí los pasos de uno que sabe poco (aunque va de que sabe la tira), y luego pedí ayuda, me escribieron código a su parecer/entender y luego he ido copiando y pegando código de mini manuales de aquí y alla de la red, así es que a pesar de que lo voy arreglando, no se de donde viene, por qué pasa y mil cosas, eso es lo malo.
Esto viene por que tengo una tontería, una variable no declarada que antes "funcionaba" y ahora no; pero antes un poco de buenas prácticas y orgullo positivo, muestra de parte del código corregido y securizado (no del todo seguro se sabe).
Código (php) [Seleccionar]
/*Declaramos las variables $servidor, $usuario,$password y $sdb (base de datos). Para Localhost tengo lo siguiente:*/
//Configuracion.
$hostname_db = "localhost";
$database_db = "pruebadb";
$username_db = "root";
$password_db = "";
$conexion = new mysqli($hostname_db, $username_db, $password_db);
mysqli_select_db($conexion, $database_db);
//MONTANDO SENTENCIAS PREPARADAS <br />
// Comprobar conexion
if($conexion->connect_error){
die("La conexión ha fallado, error numero " . $conexion->connect_errno . ": " . $conexion->connect_error);
}
$stmt = $conexion->prepare("INSERT INTO users_temp (nombre, usersTemp, password, email, fecAlta, txt_Activ) VALUES (?,?,?,?,?,?)");
$stmt->bind_param('ssssss',$nombre, $usersTemp, $password, $email, $fecAlta, $txtActiv);
$stmt->execute();
$stmt->close();
// EJECUTANDO SENTENCIA PREPARADA
if ($stmt = $conexion->prepare("SELECT nombre, usersTemp, password, email, fecAlta, txt_Activ FROM users_temp")) {
$stmt->execute();
// Vinculamos variables a columnas
$stmt->bind_result($nombre, $usersTemp, $password, $email, $fecAlta, $txt_Activ);
// Obtenemos los valores
while ($stmt->fetch()) {
printf("%s %s\n", $nombre, $usersTemp, $password, $email, $fecAlta, $txt_Activ);
}
// Cerramos la sentencia preparada
$stmt->close();
}
}
//****************************************
Bien como decía antes, para el registro de usuarios tengo 3 páginas php y vinculadas /includes/ entre ellas y la leche, que lio.
Lo que hace el registro en meter en una tabla temporal de la db los datos, ahí va la clave tipica que se manda para activar la cuenta, una vez se activa la cuenta el usuario pasa a la nueva tabla usuario_validados y se borrán los datos de la tabla temporal.
Me parece que el formulario de registro esta muy bien contruido, con su lista blanca de permitidos, escapando caracteres, obligando a que sean de tipo etc etc... si hiciera falta los pondría, y a todo esto me falta implementar el reCaptcha que por ahora en local no doy con como integrarlo.
Bien voy al lio porque si no va a parecer esto no se....
He ido resolviendo warnings, Fatal errors etc etc de las pruebas de registro, pero sigo sin poder meter a la tabla temporal datos de los campos del from
¿que falla ahora? pues al parecer una variable que hay declarada dentro de un php con un if, es esta...
Código (php) [Seleccionar]
<?php if ($respuesta == 1) ?>
Creo entender que eso dice, si la respuesta es igual a 1 no insertes nada en la db ("creo").
El caso que me arroja un notice de que la variable no está declarada, como esto tiene vinculado mucho codigo que depende uno de otro busque Ctrl+f la variable $respuesta y no está por ningun lado, solo en registro.php que es donde me avisa el Notice.
¿Cómo dónde y con qué parametros la declaro?
¿Cómo veis las mejoras de seguridad? A lo mejor para la otra pregunta voy a otro sitio, pero buscando volvi a llegar aquí.
Si necesitais saber/ver mas código vinculado/incluido lo pego.
PD: ¿No hay un [spoiler][/spoiler] para meter el codigo y salvar scroll?
Saludos .