Foros del Web » Programando para Internet » PHP »

Simplificar el código generado

Estas en el tema de Simplificar el código generado en el foro de PHP en Foros del Web. Hola amigos, Les cuento que estoy implementando el plugin JS Ticket Support para Wordpress y este cuando se crea un ticket genera un TicketID que ...
  #1 (permalink)  
Antiguo 07/07/2016, 10:13
Avatar de katanaweb  
Fecha de Ingreso: marzo-2014
Ubicación: Argentina
Mensajes: 18
Antigüedad: 10 años, 1 mes
Puntos: 0
Pregunta Simplificar el código generado

Hola amigos,

Les cuento que estoy implementando el plugin JS Ticket Support para Wordpress y este cuando se crea un ticket genera un TicketID que se usa como un número de reclamo, el problema es que es muy complejo, creo que encontré la función que lo genera:

Código PHP:
function getRandomTicketId() {
        
$query "SELECT ticketid FROM `" jssupportticket::$_db->prefix "js_ticket_tickets`";
        
$match '';
        do {
            
$ticketid "";
            
$length 9;
            
$possible "2346789bcdfghjkmnpqrtvwxyzBCDFGHJKLMNPQRTVWXYZ";
            
// we refer to the length of $possible a few times, so let's grab it now
            
$maxlength strlen($possible);
            if (
$length $maxlength) { // check for length overflow and truncate if necessary
                
$length $maxlength;
            }
            
// set up a counter for how many characters are in the ticketid so far
            
$i 0;
            
// add random characters to $password until $length is reached
            
while ($i $length) {
                
// pick a random character from the possible ones
                
$char substr($possiblemt_rand(0$maxlength 1), 1);
                if (!
strstr($ticketid$char)) {
                    if (
$i == 0) {
                        if (
ctype_alpha($char)) {
                            
$ticketid .= $char;
                            
$i++;
                        }
                    } else {
                        
$ticketid .= $char;
                        
$i++;
                    }
                }
            }
            
$rows jssupportticket::$_db->get_results($query);
            foreach (
$rows as $row) {
                if (
$ticketid == $row->ticketid)
                    
$match 'Y';
                else
                    
$match 'N';
            }
        }while (
$match == 'Y');
        return 
$ticketid;
    } 
Yo quiero simplificarlo, hoy está generando algo así: TcQ6jrF74, me gustaría que sean solo números, alguien me podría dar una mano?
  #2 (permalink)  
Antiguo 07/07/2016, 10:25
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Busqueda Respuesta: Simplificar el código generado

Hola,

Código PHP:
// Cambia esta linea...
$possible "2346789bcdfghjkmnpqrtvwxyzBCDFGHJKLMNPQRTVWXYZ";

// ...por esta otra
$possible "0123456789"
Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 07/07/2016, 15:06
Avatar de katanaweb  
Fecha de Ingreso: marzo-2014
Ubicación: Argentina
Mensajes: 18
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Simplificar el código generado

Cita:
Iniciado por Synkronice Ver Mensaje
Hola,

Código PHP:
// Cambia esta linea...
$possible "2346789bcdfghjkmnpqrtvwxyzBCDFGHJKLMNPQRTVWXYZ";

// ...por esta otra
$possible "0123456789"
Saludos!
Gracias por la respuesta! Pero al hacer el cambio aparentemente hay algún error porque el ticket no se crea, podrá ser que hay que hacer algo más?
  #4 (permalink)  
Antiguo 07/07/2016, 15:15
Avatar de katanaweb  
Fecha de Ingreso: marzo-2014
Ubicación: Argentina
Mensajes: 18
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Simplificar el código generado

Quizá el problema viene por la cantidad de $length? Porque si saco las mayúsculas y varias letras funciona, si lo dejo así:

Código PHP:
Ver original
  1. $possible = "0123456789abc";

Etiquetas: select, simplificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:48.