Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Ayuda con código al pasar a mysqli

Hola, tengo unos Warning: en base a mysqli_real_escape_string, Warning: mysqli_select_db y Warning: mysqli_query... dicen
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs etc...
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs etc...
Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs etc...

Segun tengo entendido es mas o menos que tengo cambiada la forma de contruccion de la "operación" que esperan otros parametros a los que yo uso o coloco, (no sabría bien explicarme)

os pego el codigo por si me podeis guiar ya que viene de GetSQLValueString

Un saludo gracias
<?php require_once('../Connections/sbrweb.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysqli_real_escape_string") ? mysqli_real_escape_string($theValue) : mysqli_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['email'])) {
  $loginUsername = mysqli_real_escape_string($_POST['email']);
  $password = mysqli_real_escape_string ($_POST['password']);
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "../tienda/Catalog.php";
  $MM_redirectLoginFailed = "errorlogin.php";
  $MM_redirecttoReferrer = false;
  mysqli_select_db($database_db, $conexion);
 
  $LoginRS__query=sprintf("SELECT idusuario, email, password, estado, username FROM usuarios_sbr WHERE email=%s AND password=%s AND estado=1",
    GetSQLValueString($loginUsername, "text"),
    GetSQLValueString(md5($password), "text"));
  $LoginRS = mysqli_query($LoginRS__query, $conexion)or die(mysqli_error());
  $elusername= mysqli_fetch_assoc($LoginRS);
  $loginFoundUser = mysqli_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;
    $_SESSION['MM_username'] = $elusername ["username"];          
    $_SESSION['MM_idUsuario'] = $elusername ["idusuario"];          

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];    
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
0
Puntos
2217
Visitas
6
Resp
Por Drums hace 55 meses
Principiante
Respuesta #1
ok perdonad, ya está, faltaba la conexion en GetSQLvalueString oh ...
$theValue = function_exists("mysqli_real_escape_string") ? mysqli_real_escape_string($conexion,$theValue) : mysqli_escape_string($conexion,$theValue);
0
Puntos
Por Drums hace 55 meses
Principiante
Respuesta #2
perdón de nuevo, no puedo editar el post de arriba, no está, siguen los Warning: me hice ilusiones y ... :/
0
Puntos
Por Drums hace 55 meses
Principiante
Respuesta #3
Hola de nuevo vale ya encontre que pasaba, faltaba la conexión $conexion antes de post 'email' y password
if (isset($_POST['email'])) {
  $loginUsername = mysqli_real_escape_string($conexion,$_POST['email']);
  $password = mysqli_real_escape_string ($conexion,$_POST['password']);
0
Puntos
Por Drums hace 55 meses
Principiante
1
Puntos
Por alber hace 55 meses
Administrador
Respuesta #5
alber dijo: hola con esto deberías de solucionar el problema, yo siempre lo uso como ejemplo:
https://datoweb.com/post/2486/ejemplos-de-como-usar-mysqli-de-manera-facil
https://datoweb.com/post/2608/formatear-cadena-con-funcion-getsqlvaluestring-en-mysqli
Gracias alber, los estoy usando, gracias a ellos poco a poco voy migrando código.
1
Puntos
Por Drums hace 55 meses
Principiante
Respuesta #6
Buenas de nuevo, ya tengo casi todo lo que es el registro y el login corregido, se me está resistiendo esto, me dice no database selected
La conexion la tengo en un php dentro de una carpeta connections.
Luego en los php que la necesiten le hago require_once con lo cual arranco así para iniciar la sesion y no tener que escribir el session start
 <?php require_once('../Connections/sbrweb.php'); ?>
esto está en una carpeta includes con las funciones, el php se llama funciones_castll, mas abajo tengo este código que me arroja -tras arreglar mucho codigo warning- el no database selected cuando registro un usuario
/*Teneis que declarar las variables $servidor, $usuario,$password y  $sdb (base de datos). Para Localhost tengo lo siguiente:*/
		
        //Configuración.
        $hostname_db = "localhost";
	$database_db = "pruebadb";
        $username_db = "root";
        $password_db = "";
		
		$conexion = new mysqli($hostname_db, $username_db, $password_db); 
		
		$inserta = "INSERT INTO users_temp (nombre, usersTemp, password, email, fecAlta, txt_Activ) VALUES ('$name_','$username_','$password1_','$email_', CURDATE(),'$clave')";
		$resultado3=mysqli_query($conexion,$inserta) or die (mysqli_error($conexion));
		
		if (!$resultado3)
    	return false;
		else
			return true;
}
si meto la variable database_db a la conexion arroja una mountruosidad de error. No encuentro por google gran cosa, a ver si sabeis que puede ser, no se, si falta conexion global o algo, ya digo que tiene su require_once al inicio de la página.
Un saludo
0
Puntos
Por Drums hace 55 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate