Foros del Web » Programando para Internet » PHP »

verificar si ya existe

Estas en el tema de verificar si ya existe en el foro de PHP en Foros del Web. hice un sistema de mails, donde a los usuarios les llega un correo sobre las actualizaciones de la pagina. por el momento todo bien pero ...
  #1 (permalink)  
Antiguo 16/06/2003, 16:55
 
Fecha de Ingreso: diciembre-2002
Ubicación: en mi casa
Mensajes: 131
Antigüedad: 21 años, 4 meses
Puntos: 0
verificar si ya existe

hice un sistema de mails, donde a los usuarios les llega un correo sobre las actualizaciones de la pagina.
por el momento todo bien
pero encontre un error, los correos estan guardados en
|correo1|correo2|correo3|correoN|
despues los meto en n array, el problema es cuando una persona mete el correo y ya existe ese correo, como hago para que aparesca un mensaje.
seria verificar si el valor del array ya existe
__________________
Sin firma
  #2 (permalink)  
Antiguo 16/06/2003, 18:07
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
Código PHP:
Foreach ($array as $correos)
{
  if (
$correoingresado == $correos){
        echo 
"el correo que ingresaste ya existe"
        
exit(); //y salimos del script
     
}

salu2
  #3 (permalink)  
Antiguo 16/06/2003, 20:29
 
Fecha de Ingreso: diciembre-2002
Ubicación: en mi casa
Mensajes: 131
Antigüedad: 21 años, 4 meses
Puntos: 0
asme un favor, seria mejor para la sociedad.. por ejemplo nunca supe que en php se utilizaba as en una funcion
__________________
Sin firma
  #4 (permalink)  
Antiguo 16/06/2003, 20:35
 
Fecha de Ingreso: mayo-2003
Ubicación: Medellín
Mensajes: 187
Antigüedad: 20 años, 11 meses
Puntos: 0
También se me ocurre esto, para analizar el string de los emails en forma |[email protected]|[email protected]| ....

Código PHP:
<?php

if (strpos($str,'|[email protected]|')) {
  echo 
"el email esta";
}

?>
__________________
- Julian
http://www.laneros.com

Última edición por JulianD; 16/06/2003 a las 20:39
  #5 (permalink)  
Antiguo 16/06/2003, 21:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
bet0 .. sobre el "AS" en una función .. pues cáda función tiene sus forma de trabajar .. Y para eso tenemos php.net para ver su sintax concreta ...

A todo esto .. tenemos ya implementada la función:

in_array() .. para hacer lo mismo que la propuesta que te dijeron con el foreach() ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 18/06/2003, 00:53
 
Fecha de Ingreso: diciembre-2002
Ubicación: en mi casa
Mensajes: 131
Antigüedad: 21 años, 4 meses
Puntos: 0
pero una cosa no entiendo de in_array... cuando pongo la funcion if(in_array($correo)) donde le digo al script que array verificar si tiene ese valor...
utilizo $array_mail=file("correos.txt");
if (in_array($registro)){
mis acciones
}
ya cambie lo de|| linea por linea.. asi sera mas facil y podre traajar con file()
__________________
Sin firma
  #7 (permalink)  
Antiguo 18/06/2003, 01:59
 
Fecha de Ingreso: mayo-2003
Ubicación: Medellín
Mensajes: 187
Antigüedad: 20 años, 11 meses
Puntos: 0
En tu primer post decias:

Cita:
despues los meto en n array....
Pues creo que puedes aplicar in_array en ese array donde metes las direcciones.
__________________
- Julian
http://www.laneros.com
  #8 (permalink)  
Antiguo 18/06/2003, 11:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
bet0 .. please .. revisa la sintax de uso de in_array() .. se nota que no lo has mirado y "supones" que se llama a la función con un sólo parámetro .. y no es así .. Esa función requiere de dos parámetro que son junstamente el Array y el valor que vas a buscar en ella ..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 18/06/2003, 13:19
 
Fecha de Ingreso: diciembre-2002
Ubicación: en mi casa
Mensajes: 131
Antigüedad: 21 años, 4 meses
Puntos: 0
utilizo el siguiente codigo:
Código PHP:
$array_mail=file("correos.txt");
if (
in_array($registro$array_mail)) {
            echo 
"1";
            }else{
            echo 
"2";           
$archivo fopen('correos.txt','a');
           
$codigo="$registro\n\r";
           
fputs($archivo$codigo);
           } 
no me aparece error pero solo me muestra el numero 2.. significa que no lo lee por que yo tengo ingresado en el archivo de texto el correo y se agrea 3 veces o las veces que intente
__________________
Sin firma
  #10 (permalink)  
Antiguo 18/06/2003, 16:14
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 3 meses
Puntos: 5
Bet0, creo que estas algo confundido...

la funcion file() te devuelve un array donde cada elemento es UNA LINEA de tu archivo, es decir, se abre un nuevo elemento del array cada que se encuentra un salto de linea, y hasta donde puedo ver, tu tienes los mails separados con |

Pero a la hora de guardarlos, dices que se guarde con un salto de linea despues del mail ($registro\n\r), asi que puedo imaginarme tu archivo mas o menos asi...

[email protected]|[email protected]|[email protected]|[email protected]|mail5@t al.com|
[email protected]
[email protected]
[email protected]
[email protected]

Cosa que ya no tiene mucho orden que digamos...

Para que el script que estas usando funcione correctamente, primero debes arreglar el archivo de los mails para que solo sea con saltos de linea...

Saludos!!
__________________
Manoloweb
  #11 (permalink)  
Antiguo 18/06/2003, 18:14
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 6 meses
Puntos: 6
Si estas guardando tus registro en la forma

a@localhost1|b@localhost2|c@localhost3
a@localhost4|b@localhost5|c@localhost6
a@localhost7|b@localhost8|c@localhost9

Tu codigo esta empleando mal es uso de in_array, debiera de ser algo asi.
Código PHP:
$array_mail=file("correos.txt");
foreach( 
$array_mail as $mail )

    if ( 
in_array$registroexplode'|'$mail ) )
    {
          echo 
"** Si existe **</br>\n";
    }

Esta forma es un poco mas dificil de trabajar sobre todo a la hora de alamcenar los datos en orden, asi que yo te recomendaria que mejor los guardaras de la siguiente forma
a@localhost1
a@localhost4
a@localhost7

de esta forma podrias a hora si usar tu script como lo pensabas.
Código PHP:
$array_mail=file("correos.txt");
if (
in_array($registro$array_mail)) {
            echo 
"1";
            }else{
            echo 
"2";           
$archivo fopen('correos.txt','a');
           
$codigo="$registro\n";
           
fputs($archivo$codigo);
           } 
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:21.