Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Валиден емайл?

Featured Replies

Здравейте,

трябва ми скрипт, който да проверява дали въведеният емайл е валиден или не.

Аз в момента ползвам този:

function ValidaMail($pMail) {

	if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $pMail ) ) {

	   return true;

	} else {

echo "You Must Insert a Valid Email Address"; exit();

	}

}

Значи ... той само проверява дали в емайла има @ и нещо.нещо. Например ако пиша [email protected] ме пуска?

А аз искам тези който се регистрират в моя сайт, да въвеждат валидни емайли и ако се наложи да им пиша, да съм сигурен, че ще получат моето съобщение.

Ако някой знае, някаква програмка, която като й въведеш даден емайл и да ти казва дали той е валиден, пак да пише.

Здравейте,

трябва ми скрипт, който да проверява дали въведеният емайл е валиден или не.

Аз в момента ползвам този:

function ValidaMail($pMail) {

	if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $pMail ) ) {

	   return true;

	} else {

echo "You Must Insert a Valid Email Address"; exit();

	}

}

Значи ... той само проверява дали в емайла има @ и нещо.нещо. Например ако пиша [email protected] ме пуска?

А аз искам тези който се регистрират в моя сайт, да въвеждат валидни емайли и ако се наложи да им пиша, да съм сигурен, че ще получат моето съобщение.

Ако някой знае, някаква програмка, която като й въведеш даден емайл и да ти казва дали той е валиден, пак да пише.

^(\w\_\.)+\@((\w\-)+\.)+[a-zA-Z]{2,}$

Редактирано от sanddaemon (преглед на промените)

  • Автор

Значи с този код където сте ми дали.. пробвах не пуска никакъв емайл...

И ... момчета .. това задава какви символи да съдържа емайла.

Трябва ми нещо, което да го проверя дали наистина има такъв емайл... защото някой спокойно може да си пише фалшив емайл и скрипта да го пусне в сайта.

Редактирано от krasimirch0 (преглед на промените)

Значи с този код където сте ми дали.. пробвах не пуска никакъв емайл...

И ... момчета .. това задава какви символи да съдържа емайла.

Трябва ми нещо, което да го проверя дали наистина има такъв емайл... защото някой спокойно може да си пише фалшив емайл и скрипта да го пусне в сайта.

Ами направи си валидация. Т.е. той си дава пощата, ти му пращаш активационно URL и след като го посети го пускаш. Иначе няма нячин да валидираш адреса

Използвай това:

function checkEmail($email)

{

  // checks proper syntax

  if(preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/", $email))

  {

	// gets domain name

	list($username,$domain)=split('@', $email);

	// checks for if MX records in the DNS

	if(!checkdnsrr($domain, 'MX'))

	{

	  return false;

	}

	// attempts a socket connection to mail server

	if(!fsockopen($domain, 25, $errno, $errstr, 30))

	{

	  return false;

	}

	return true;

  }

  return false;

}
И това:
$email = trim($_POST['email']);  

if(!checkEmail($email))

{ 

  echo 'Invalid email address!';

}

else

{

  echo 'Email address is valid';

}

  • Автор
Ами направи си валидация. Т.е. той си дава пощата, ти му пращаш активационно URL и след като го посети го пускаш. Иначе няма нячин да валидираш адреса

Това е добра идея... но аз гледам да стане по бързо ....

Използвай това:

function checkEmail($email)

{

  // checks proper syntax

  if(preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/", $email))

  {

	// gets domain name

	list($username,$domain)=split('@', $email);

	// checks for if MX records in the DNS

	if(!checkdnsrr($domain, 'MX'))

	{

	  return false;

	}

	// attempts a socket connection to mail server

	if(!fsockopen($domain, 25, $errno, $errstr, 30))

	{

	  return false;

	}

	return true;

  }

  return false;

}
И това:
$email = trim($_POST['email']);  

if(!checkEmail($email))

{ 

  echo 'Invalid email address!';

}

else

{

  echo 'Email address is valid';

}

Кое в кой файл?

Горното е в Finctions.php а второто?

  • Автор

Слагам, но не става.... сега ми трябва програмка и като й зададеш емайл да ти казва има ли такъв или не?

  • Автор
В регистрационния скрипт

Не ме интересуват вече скриптове.

@krasimirch0, ти май не знаеш какво искаш, ама го искаш веднага. Първо си разясни за себе си какво искаш, после искай помощ.

Това което ти дадох, проверява за валиден формат и дали този email е истински. И двете части можеш да сложиш където искаш в скриптовете. Разделени са за да можеш да ползваш втората част на много места, ако трябва.

При мен функцията checkemail не работи коректно. Валидни адреси според нея са невалидни.

Ето тази функция връща (сравнително) верни стойности :

function validate_email($email)

{

//by Femi Hasani [www.vision.to]

if(!preg_match ("/^[\w\.-]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]+$/", $email))

return false;


list($prefix, $domain) = split("@",$email);


		if(function_exists("getmxrr") && getmxrr($domain, $mxhosts))

		{

		return true;

		}

		elseif (@fsockopen($domain, 25, $errno, $errstr, 5))

		{

		return true;

		}

		else

		{

		return false;

		}


}

Сравнително, защото ако за домейна може да се провери дали е валиден, за самото име - не може.

Редактирано от Ken (преглед на промените)

като цяло логиката не Ви е правилна:

1. може в момента домейна да сменя DNS сървърите си,

да има проблем с DNS сървърите, но това да не означава, че не може да получава поща въобще

2. всички мейл системи работят на принципа, че ако в момента не може да достави писмото, то се запазва в queue-то за определено време и на интервали се опитва отново неговата доставка.

3. най - простата и правилна проверка за съществуване на адрес е с изпращане на писмо за потвърждение, всичко останали интерактивни методи и модели са изначало сбъркани. не можете да съдите за адрес или домейн само по това дали в конкретният момент можете да разберете дали е регистриран, достъпен и т.н.

отностно валидацията,

няма правило което да ми забранява адреса ми да започва с точка, да има 2 точки или точки и подчертавки. може да не се среща в практиката, но не е забранено изначало от спецификациите.

4. най - простото решение понякога е най - правилно, все пак целта на валидацията Ви е да не може да се използва за изпращане на спам, за спиране на SQL, XSS.

достатъчно е да проверите дали няма в текста повече от 1 e-mail адрес, дали няма текст или ред съдържащ CC, BCC за групово изпращане до много получатели.

5. какъв е проблема, ако се изпраща писмо до невалиден домейн? mail сървъра Ви няма да се срине. имал съм 100,000 писма в queue-то и пак ми е работил сървъра. безсмислено е да правите проверки, които ви бавят webserver-a и постигат 0-лев резултат.

Редактирано от sanddaemon (преглед на промените)

  • Автор
@krasimirch0, ти май не знаеш какво искаш, ама го искаш веднага. Първо си разясни за себе си какво искаш, после искай помощ.

Това което ти дадох, проверява за валиден формат и дали този email е истински. И двете части можеш да сложиш където искаш в скриптовете. Разделени са за да можеш да ползваш втората част на много места, ако трябва.

Аз знам какво искам.. искам скрипт или програма, която ти показва има ли такъв емайл или не...

а с твоя скрипт пуска и с [email protected] ?

такъв емайл според теб има ли?!

Аз знам какво искам.. искам скрипт или програма, която ти показва има ли такъв емайл или не...

а с твоя скрипт пуска и с [email protected] ?

такъв емайл според теб има ли?!

За да си сигурен трябва да пратиш поща на адреса и да получиш някаква обратна връзка

  • Автор
За да си сигурен трябва да пратиш поща на адреса и да получиш някаква обратна връзка

ако са по 2 портебителя на ден ... мога да им пращам писма и да видя дали има такива емайли... но днес като ми се струпат 150 човека и как да им пращам??!?

Аз трябва постоанно да съм на компютъра...

някой знае ли как мога да го направя с активационен линк?

ако са по 2 портебителя на ден ... мога да им пращам писма и да видя дали има такива емайли... но днес като ми се струпат 150 човека и как да им пращам??!?

Аз трябва постоанно да съм на компютъра...

някой знае ли как мога да го направя с активационен линк?

Ето едно ръководство, което ми хвана окото: http://www.learnphponline.com/scripts/emai...n-for-php-forms

Има функция sendmail в PHP. И всичко си става автоматично. Човек се регистрира, праща му се майл с активационел линк и това всичко. Администратора не пипа нищо. Ако му невалиден майл, няма да получи и след 24 часа ми се маха регистрацията.

  • Автор
Има функция sendmail в PHP. И всичко си става автоматично. Човек се регистрира, праща му се майл с активационел линк и това всичко. Администратора не пипа нищо. Ако му невалиден майл, няма да получи и след 24 часа ми се маха регистрацията.

Е, къде е тази функция?

Има функция sendmail в PHP. И всичко си става автоматично. Човек се регистрира, праща му се майл с активационел линк и това всичко. Администратора не пипа нищо. Ако му невалиден майл, няма да получи и след 24 часа ми се маха регистрацията.

Става пращането на поща, но не и генерирането на съдържанието на писмото и линка за валидация

Аз знам какво искам.. искам скрипт или програма, която ти показва има ли такъв емайл или не...

а с твоя скрипт пуска и с [email protected] ?

такъв емайл според теб има ли?!

няма никакъв проблем, такъв адрес да съществува или да не съществува, направи си валидацията и да не ти пука какъв адрес въвеждат, стига да не е от посочените по - горе от мен причини за regexp

  • Автор
няма никакъв проблем, такъв адрес да съществува или да не съществува, направи си валидацията и да не ти пука какъв адрес въвеждат, стига да не е от посочените по - горе от мен причини за regexp

Ок, дай ми линк да чета как се прави тази валидация ..

Аз търся по гугъл, но не на мирам нищо ... @capnemo ми е дал някакъв линк, но не работи този скрипт или аз не мога да го накарам да заработи?

Ок, дай ми линк да чета как се прави тази валидация ..

Аз търся по гугъл, но не на мирам нищо ... @capnemo ми е дал някакъв линк, но не работи този скрипт или аз не мога да го накарам да заработи?

правиш таблица в mysql с 4 полета email_validateme

timestamp, username, e-mail, hash

в таблицата с потребители поставяш колона за валидиране с true/false

по време на регистрация, записваш в таблицата с потребители име, парола, адрес и 0-ла за валидация.

в таблицата за валидация записваш

кога е заявена регистрация, потребителско име, адрес, някакъв hash от рода на md5

през mail() изпращаш на посоченият адрес e-mail за валидация, като в него ще има url:

http://example.com/validate.php?hash=&...kjdfljslf"

когато клиента клике на него, правиш една проверка на GET/POST заявката за sql injections

и търсиш в базата дали има такъв hash, дали timestamp+2days примерно, е валидна и ако е валидна триеш реда и сменяш 0-та на 1 в таблицата с потребители в колоната за валидация, че адреса е потвърден.

ако очакваш да седна и да ти напиша кода, има много да чакаш!

Редактирано от sanddaemon (преглед на промените)

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.