Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: узнать ip при отправке
 
 автор: TavRoX   (07.10.2010 в 18:40)   письмо автору
 
 

друзья как при отправке данной формі узнать айпи адресс отправителя. ато спамеры задрали
пожже сделаю капчу но ип тоже надо
<?php
session_start
();
$admin 'мыло';

if ( isset( 
$_POST['sendMail'] ) ) {
  
$name  substr$_POST['name'], 064 );
  
$email   substr$_POST['email'], 064 );
  
$subject substr$_POST['subject'], 064 );
  
$message substr$_POST['message'], 0250 );
 
  
$error '';
  if ( empty( 
$name ) ) $error $error.'<li>Не заполнено поле "Имя"</li>';
  if ( empty( 
$email ) ) $error $error.'<li>Не заполнено поле "E-mail"</li>';
  if ( empty( 
$subject ) ) $error $error.'<li>Не заполнено поле "Тема"</li>';
  if ( empty( 
$message ) ) $error $error.'<li>Не заполнено поле "Сообщение"</li>';
  if ( !empty( 
$email ) and !preg_match"#^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,6}$#i"$email ) )
    
$error $error.'<li>поле "E-mail" должно соответствовать формату somebody@somewhere.ru</li>';
  if ( !empty( 
$error ) ) {
    
$_SESSION['sendMailForm']['error']   = '<p>При заполнении формы были допущены ошибки:</p><ul>'.$error.'</ul>';
    
$_SESSION['sendMailForm']['name']    = $name;
    
$_SESSION['sendMailForm']['email']   = $email;
    
$_SESSION['sendMailForm']['subject'] = $subject;
    
$_SESSION['sendMailForm']['message'] = $message;
    
header'Location: '.$_SERVER['PHP_SELF'] );
    die();
  }

  if ( !empty( 
$_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == ) {
    
$filepath $_FILES['file']['tmp_name'];
    
$filename $_FILES['file']['name'];
  } else {
    
$filepath '';
    
$filename '';
  }
 
  
$body "АВТОР:\r\n".$name."\r\n\r\n";
  
$body .= "E-MAIL:\r\n".$email."\r\n\r\n";
  
$body .= "ТЕМА:\r\n".$subject."\r\n\r\n";
  
$body .= "СООБЩЕНИЕ:\r\n".$message;
 
  if ( 
send_mail($admin$body$email$filepath$filename) )
    
$_SESSION['success'] = true;
  else
    
$_SESSION['success'] = false;
  
header'Location: '.$_SERVER['PHP_SELF'] );
  die();
}

// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($admin$body$email$filepath$filename)
{
  
$subject '=?windows-1251?B?'.base64_encode('Заполнена форма на сайте').'?=';
  
$boundary "--".md5(uniqid(time())); // генерируем разделитель
  
$headers "From: ".strtoupper($_SERVER['SERVER_NAME'])." <".$email.">\r\n";   
  
$headers .= "Return-path: <".$email.">\r\n";
  
$headers .= "MIME-Version: 1.0\r\n";
  
$headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
  
$multipart "--".$boundary."\r\n";
  
$multipart .= "Content-type: text/plain; charset=\"windows-1251\"\r\n";
  
$multipart .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";

  
$body quoted_printable_encode$body )."\r\n\r\n";
 
  
$multipart .= $body;
 
  
$file '';
  if ( !empty( 
$filepath ) ) {
    
$fp fopen($filepath"r");
    if ( 
$fp ) {
      
$content fread($fpfilesize($filepath));
      
fclose($fp);
      
$file .= "--".$boundary."\r\n";
      
$file .= "Content-Type: application/octet-stream\r\n";
      
$file .= "Content-Transfer-Encoding: base64\r\n";
      
$file .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
      
$file .= chunk_split(base64_encode($content))."\r\n";
    }
  }
  
$multipart .= $file."--".$boundary."--\r\n";

  if( 
mail($admin$subject$multipart$headers) )
    return 
true;
  else
    return 
false;
}

function 
quoted_printable_encode $string ) {
   
// rule #2, #3 (leaves space and tab characters in tact)
   
$string preg_replace_callback (
   
'/[^\x21-\x3C\x3E-\x7E\x09\x20]/',
   
'quoted_printable_encode_character',
   
$string
   
);
   
$newline "=\r\n"// '=' + CRLF (rule #4)
   // make sure the splitting of lines does not interfere with escaped characters
   // (chunk_split fails here)
   
$string preg_replace '/(.{73}[^=]{0,3})/''$1'.$newline$string);
   return 
$string;
}

function 
quoted_printable_encode_character $matches ) {
   
$character $matches[0];
   return 
sprintf '=%02x'ord $character ) );
}
?>

  Ответить  
 
 автор: sl1p   (07.10.2010 в 21:46)   письмо автору
 
   для: TavRoX   (07.10.2010 в 18:40)
 

echo $_SERVER['REMOTE_ADDR'];

  Ответить  
 
 автор: TavRoX   (07.10.2010 в 21:47)   письмо автору
 
   для: sl1p   (07.10.2010 в 21:46)
 

ето можно где угодно использовать? даже при отправки комментариев и создании аккаунта?
вообщем везде где оставляет след юзер там идет запись айпишника?

  Ответить  
 
 автор: sl1p   (08.10.2010 в 03:16)   письмо автору
 
   для: TavRoX   (07.10.2010 в 21:47)
 

додо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования