elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  problema con "ñ" no las reconoce
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problema con "ñ" no las reconoce  (Leído 5,015 veces)
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
problema con "ñ" no las reconoce
« en: 8 Septiembre 2017, 14:36 pm »

Hola,

A ver si me podéis ayudar. Tengo un campo de "búsqueda" y funciona. Cuando pongo palabras con "ñ" no las reconoce:

Código
  1.  
  2. $busqueda=mysql_query("SELECT * FROM empleados WHERE concat_ws(' 'NOMBRE, APELLIDOS) LIKE '%".utf8_encode($busca)."%'  ") ;
  3.  
  4.  
  5.  


he utilizado utf8 encode para que si $busca me reconoce esos caracteres "raros" pero no va si pongo por ejemplo "begoña" no encuentra los nombre begoña pero si pongo "bego" sí o garcia etc ¿Cómo podría hacer para que en una búsqueda con like me "cogiera" las ñ?


Engel Lex: no se debe escribir en mayúsculas


« Última modificación: 8 Septiembre 2017, 15:40 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: problema con "ñ" no las reconoce
« Respuesta #1 en: 8 Septiembre 2017, 15:41 pm »

en que codificación de caracteres tienes tienes tu db?



En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: problema con "ñ" no las reconoce
« Respuesta #2 en: 9 Septiembre 2017, 21:59 pm »

He estado leyendo pero no sé qué puede ser:

Si escribo  show variables like '%character%' me aparece lo siguiente:

character_set_client
utf8
character_set_connection
utf8
character_set_database
utf8
character_set_filesystem
binary
character_set_results
utf8
character_set_server
latin1
character_set_system
utf8
character_sets_dir
/usr/share/mysql/charsets/

Será por el latin1?



En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: problema con "ñ" no las reconoce
« Respuesta #3 en: 9 Septiembre 2017, 22:41 pm »

Este es el php donde está la búsqueda:


Código
  1.  
  2. <?php
  3.  
  4.  
  5. //Validar que el usuario este logueado y exista un UID
  6. if ( ! ($_SESSION['autenticado'] == 'SI' && isset($_SESSION['uid'])) )
  7. {
  8.    //En caso de que el usuario no este autenticado, crear un formulario y redireccionar a la
  9.    //pantalla de login, enviando un codigo de error        <form name="formulario" method="post" action="index.php">
  10. ?>
  11.        <form name="formulario" method="post" action="index.php">
  12.            <input type="hidden" name="msg_error" value="2">
  13.        </form>
  14.        <script type="text/javascript">
  15.            document.formulario.submit();
  16.        </script>
  17.  
  18. <?php
  19. }
  20.  
  21.    //Conectar BD
  22.    include("conectar_bd.php");  
  23.    conectar_bd();
  24.  
  25.    //Sacar datos del usuario que ha iniciado sesion"Propietario/a de ".$fila['Direccion']." ".$fila['PuertaLocalGaraje']
  26.    $sql = "SELECT   tx_nombre tx_TipoUsuario,id_usuario, tx_username, tx_password
  27.            FROM tbl_users
  28.            LEFT JOIN ctg_tiposusuario
  29.            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
  30.            WHERE id_usuario = '".$_SESSION['uid']."'";        
  31.    $result     =mysql_query($sql);
  32.  
  33.    $nombreUsuario = "";
  34.  
  35.  
  36.  
  37.  
  38.    if( $fila = mysql_fetch_array($result) ){
  39.  
  40.        $nombreUsuario = "".$fila['tx_nombre'];
  41. }
  42.  
  43.  
  44.  
  45.  
  46. ?>
  47.  
  48.  
  49.  
  50.  
  51.  
  52. <!DOCTYPE html>
  53. <html lang="es">
  54. <head>
  55. <title>La Nueva
  56. </title>
  57.  
  58.  
  59.    <meta charset="utf-8">
  60.    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  61.    <meta http-equiv="X-UA-Compatible" content="IE=edge">
  62.    <meta name="viewport" content="width=device-width, initial-scale=1">
  63.    <meta name="description" content="">
  64.    <meta name="author" content="">
  65. <meta name="viewport" content="width=device-width, initial-scale=1">
  66.  
  67.  
  68.    <title>Página Web </title>
  69.  
  70.    <!-- Bootstrap Core CSS -->
  71.    <link href="css/bootstrap.min.css" rel="stylesheet">
  72.  
  73.    <!-- Custom CSS -->
  74.    <link href="css/full-width-pics.css" rel="stylesheet">
  75.  
  76.    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  77.    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  78.    <!--[if lt IE 9]>
  79.        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
  80.        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
  81.    <![endif]-->
  82. <script type="text/javascript">
  83.    <!--
  84.        $().ready(function() {
  85.            $("#frmlogin").validate();
  86.            $("#usuario").focus();
  87.        });
  88.    // -->
  89.    </script>
  90.  
  91. </head>
  92.  
  93.  
  94.  
  95.  
  96. <body>
  97.  
  98.    <!-- Navigation -->
  99.    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
  100.        <div class="container">
  101.            <!-- Brand and toggle get grouped for better mobile display -->
  102.            <div class="navbar-header">
  103.                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
  104.                    <span class="sr-only">Toggle navigation</span>
  105.                    <span class="icon-bar"></span>
  106.                    <span class="icon-bar"></span>
  107.                    <span class="icon-bar"></span>
  108.                </button>
  109.  
  110.  
  111.                <a class="navbar-brand" href="principalcero.php">Ce</a>
  112.            </div>
  113.            <!-- Collect the nav links, forms, and other content for toggling -->
  114.            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  115.                <ul class="nav navbar-nav navbar-right" >
  116.                    <li>
  117.                        <a href="politad.php" style="color:#FFF" >Polí</a>
  118.                    </li>
  119.                    <li>
  120.                        <a href="normauso.php" style="color:#FFF">Normas de Uso</a>
  121.                    </li>
  122.                    <li>
  123.                        <a href="contacto.php" style="color:#FFF">Contacto</a>
  124.                    </li>
  125.                      <li align="right">
  126.  
  127.        <a href="cerrarSesion.php" style="color:#FFF">Cerrar Sesi&oacute;n &nbsp;</a>
  128.  
  129.            </li>
  130.                </ul>
  131.            </div>
  132.            <!-- /.navbar-collapse -->
  133.        </div>
  134. </div>
  135.        <!-- /.container -->
  136.    </nav>
  137.  
  138.    <!-- Full Width Image Header with Logo -->
  139.    <!-- Image backgrounds are set within the full-width-pics.css file. -->    <header class="image-bg-fluid-height">
  140.  
  141.        <img class="img-responsive img-center" src="img/f.png" alt="">
  142.  
  143.  
  144.    </header>
  145.  
  146.    <!-- Content Section -->
  147.    <section style="background-color:#E6E6FA; ">
  148.  
  149.  
  150.  
  151.     <div class="container"  margin-bottom=10px>
  152.        <div class="row">
  153.         <div class="col-lg-12 col-lg-12">
  154.  
  155.  
  156.  
  157.  
  158. <title> Busqueda </title>
  159. <p>
  160.  
  161. <form name="form1" method="post" action="expedienteempleado.php" id="cdr">
  162. <h2> Buscar CLIENTE </h2>
  163. <input name="busca" type="text" id="fichaempleado">
  164. <input name="submit" type="submit" value="Buscar">
  165. </p>
  166. </form>
  167.  
  168. <br>
  169. <br>
  170.  
  171. <?php
  172.  
  173. $busca=utf8_encode("");
  174. $busca=utf8_encode($_POST['busca']);
  175. $conexion=mysql_connect("localhost","ost","@EEE") or die("Problemas en la conexion");
  176. mysql_select_db("joscardef",$conexion) or die("Problemas en la selección de la base de datos");  
  177.  
  178.  
  179. if($busca!=""){
  180.  $nom=utf8_encode(NOMBRE);
  181.  $ape=utf8_encode(APELLIDOS);
  182.  
  183. $busqueda=mysql_query("SELECT * FROM empleados WHERE concat_ws(' ',$nom, $ape) LIKE '%".utf8_encode($busca)."%'  ") ;
  184.  
  185.  
  186.  
  187.  
  188.  
  189. ?>
  190.  
  191.  
  192.  
  193.  
  194. <div class="table-responsive "  border="1" align="left">
  195. <table class="table table-condensed table-hover table-bordered table-striped">
  196.  <tr>
  197.    <td width="226">Nombre</td>
  198.    <td width="252">Apellidos</td>
  199.    <td width="110">Oficina</td>
  200.    <td width="220">Mail</td>
  201.    <td width="212">Seleccionar</td>
  202.  
  203.  </tr>
  204.  
  205.  
  206.  <?php
  207.  
  208.  
  209.  
  210.  
  211.  while($muestra=@mysql_fetch_array($busqueda)){
  212.  echo '<tr>';
  213.  echo '<td>'.utf8_encode($muestra['NOMBRE']).'</td>';
  214.  
  215.    echo '<td>'.utf8_encode($muestra['APELLIDOS']).'</td>';
  216.  
  217.  
  218. ?>
  219.        <td> <form action="oficinaaconsultartres.php?id=<?php echo $muestra['ofi']?>" method="post" name="compra">
  220.  
  221. <input name="Comprar" type="submit" value="<?php echo $muestra['ofi']?>"></form>
  222. <?php
  223.    echo '<td>'.$muestra['MailBankia'].'</td>';
  224.  
  225. ?>
  226.  
  227.  
  228.  
  229. <td> <form action="expedienteempleadodef.php?id=<?php echo $MATRICULA ?>" method="post" name="compra">
  230.  
  231. </form></td>
  232.  
  233.     <?php
  234.  
  235.  }
  236.    }
  237. ?>
  238.  
  239.  
  240.  
  241.  
  242. <br>
  243.  
  244.  
  245. </div>
  246.  
  247.  
  248.  <br/>
  249. <br/>
  250. <table width="400" border="0">
  251.  
  252. <br>
  253. <br>
  254.  
  255. <option>Si no era esta pantalla la que buscabas...</option>
  256.  
  257. <br>
  258.  
  259. </table>
  260.  
  261.  
  262.  
  263.  
  264. <h4>  <td  width="20px" display="inline" align="left">
  265.        <!-- Proporcionar Link para cerrar sesion -->
  266.          <a href="principalcero.php"><strong> VOLVER A MENU ANTERIOR </strong>&nbsp;</a>
  267.    </td>
  268.  
  269. </h4>
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279. </table>
  280.  
  281.  
  282.  
  283.  
  284.  
  285.            </div>
  286.            </div>
  287.  
  288.  
  289. </p>
  290.  
  291.  
  292.    <!-- Footer -->
  293.    <footer>
  294.        <div class="container">
  295.            <div class="row">
  296.                <div class="col-lg-12">Coo</div>
  297.            </div>
  298.            <!-- /.row -->
  299.        </div>
  300.        <!-- /.container -->
  301.    </footer>
  302.  
  303.    <!-- jQuery -->
  304.    <script src="js/jquery.js"></script>
  305.  
  306.    <!-- Bootstrap Core javascript -->
  307.    <script src="js/bootstrap.min.js"></script>
  308.  
  309. </body>
  310.  
  311. </html>
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  


Sé que está fatal programado pero he ido aprendiendo poco a poco, y aunque ahora me doy cuenta que lo hacía fatal, como funciona, no lo toco de momento, en la búsqueda sí me reconoce las búsqueda de por ejemplo garcia , bayo, etc pero si lleva ñ o Ç nada tampoco con acentos.

LA apariencia de los "caracteres raros sí es la que toca, pero la búsqueda no los captura no sé porqué.

En phpmyadmin si pongo en búsqueda begoña (en nombre) sí que encuentra a todas las begoñas.

A ver si véis algúna línea de código de tipo charset o meta que debiera poner.

Muchas gracias por adelantado.
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: problema con "ñ" no las reconoce
« Respuesta #4 en: 10 Septiembre 2017, 00:43 am »

Leyendo sobre estos temas, he visto y comprobado que poniendo en la conexion
Código
  1. @mysql_query("SET NAMES 'utf8'");

Ya me funciona la búsqueda con "ñ" por ejemplo pongo BEGOÑA y me busca todas las begoñas pero la apariencia en la web, tanto en la salida de la consulta como los texto en general, en los acentos y las eñes me pone una A y un cuadrado o caracteres extramos

He puesto dejado el utf8_encode(texto); pero no le hace caso. ¿dónde puede estar la omisión o la solución?
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: problema con "ñ" no las reconoce
« Respuesta #5 en: 10 Septiembre 2017, 11:13 am »

Hola,

No me preguntéis cómo pero eliminando y poniendo (a modo resetear) las líneas de código de charter y encoge relacionadas con el y utf ahora sí que va todo bien.

Disculpad el rollo.
En línea

bgnumis

Desconectado Desconectado

Mensajes: 155


Ver Perfil
Re: problema con "ñ" no las reconoce
« Respuesta #6 en: 10 Septiembre 2017, 17:50 pm »

charset y encode
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines