Foros del Web » Programando para Internet » PHP »

Separar Cadena y Controlar Valores

Estas en el tema de Separar Cadena y Controlar Valores en el foro de PHP en Foros del Web. Buenas gente, aca mi problema que no me esta saliendo una manito no vendria mal. Gracias Tengo un php que se llama errores.php que es ...
  #1 (permalink)  
Antiguo 20/02/2006, 15:02
Avatar de gaitagarcia  
Fecha de Ingreso: julio-2002
Mensajes: 79
Antigüedad: 15 años, 5 meses
Puntos: 0
Exclamación Separar Cadena y Controlar Valores


Buenas gente, aca mi problema que no me esta saliendo una manito no vendria mal. Gracias

Tengo un php que se llama errores.php que es una pagina en donde estan enumerados todos los errores que pueden haber en un sitio que tiene muchos formularios, el tema es que por ejemplo desde un formulario que cuando completo me envia los errores a errores.php de esta manera.
$errores = "0001-0002-0013-1102";
y en el errores.php
tendria que tener una funcion que me diga si el error es 0001 que imprima "solo cacarteres numericos" o si el error es 0013 imprima "email icorrecto".
lo que tengo q hacer es que me divida la cadena por el caracter " - " y ahi controle si existe algun error.

por ejemplo
if ( $errores !="0001") { echo "solo caracteres numericos";}
if ( $errores !="0012") { echo "email incorrecto";}
....
espero se entienda gracias.
  #2 (permalink)  
Antiguo 20/02/2006, 15:06
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 12 años, 4 meses
Puntos: 0
Hola... en tu script de errores utiliza la funcion explode

$nombre_arreglo = explode ('-',$errores);

Esto te va a formar un arreglo...luego lo manejas en ese script por la via for()

Saludos

Frank
  #3 (permalink)  
Antiguo 20/02/2006, 15:09
Avatar de gaitagarcia  
Fecha de Ingreso: julio-2002
Mensajes: 79
Antigüedad: 15 años, 5 meses
Puntos: 0
un ejemplo

Me podrias dar un ejemplo, la verdad que estoy perdido, trate con el implode pero el for () no me acuerdo como usarlo, te agradeco.
  #4 (permalink)  
Antiguo 20/02/2006, 15:12
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 13 años
Puntos: 34
Si sabes que errores tendra 4 valores según tu ejemplo siempre podes hacer:
$errores = "0001-0002-0013-1102";
$error = explode ( '-', $errores );
if ( $error[0] !="0001")echo "solo caracteres numericos";
if ( $error[1] !="0001")echo echo "email incorrecto";

Si no sabes, o podes usar un foreach/for sobre el vector (mira en php.net), o bien usar isset:
if ( isset($error[1]) && $error[1] !="0001" )echo echo "email incorrecto";
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 20/02/2006, 15:15
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
De acuerdo usa un array asociativo

Con un array asociativo podrías definir los tipos de error sin tener que meter tanto if y con la ventaja de poderlo recorrer.

Código PHP:
<?
//capturas tu cadena de errores
$cadena="0001-0002-0013-1102";

//estos son todos los errores posibles (le agregas todos)
$errores=array("0001"=>"Sólo caracteres numéricos.",
                
"0002"=>"E-mail incorrecto.",
                
"0013"=>"Login y password no coinciden.",
                
"1102"=>"Acceso restringido.");
                
//con explode divides la cadena
$e=explode("-",$cadena);

//ya tienes los errores en la matriz e[], ahora los muestras
foreach($e as $error)
    echo 
"<br/>Error $error: ".$errores[$error];
?>
El echo anterior imprime:

Código:
Error 0001: Sólo caracteres numéricos.
Error 0002: E-mail  incorrecto.
Error 0013: Login y password no coinciden.
Error 1102: Acceso  restringido.
suerte,
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #6 (permalink)  
Antiguo 20/02/2006, 15:19
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 12 años, 4 meses
Puntos: 0
Bueno veamos tu ejemplo

Hariamos algo como... teniendo lo valores en errores

$errores = "0001-0002-0013-1102";

Dependiendo del metodo hace en errores.php

$arreglo = explode('-',$_POST['errores']);

Esto te generaria.... en dicho caso 4 valores en el arreglo

$arreglo[0]='0001'
$arreglo[1]='0002'
$arreglo[2]='0013'
$arreglo[3]='1102'

Pero ... en principio no vas a conoces de antemano cuantos errores pasas en el valor de $errores tendras que utilizar algo como

$num_arreglo = count($arreglo);

luego haces el for() con el valor del limite ($num_arreglo)... algo como

for ($n=0; $n<=$num_arreglo ; $n++) {
echo "numero del error " . $arreglo[$n];
}

Saludos

Frank
  #7 (permalink)  
Antiguo 20/02/2006, 15:23
Avatar de gonzalezmfrank  
Fecha de Ingreso: julio-2005
Ubicación: Maracaibo - Venezuela
Mensajes: 266
Antigüedad: 12 años, 4 meses
Puntos: 0
De acuerdo

La otra solucion es la uamistad....
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 00:35.