Никогда не понимал такой особенности PHP =( Точнее не могу понять почему ее так трудно пофиксить. Вечные проблемы с ней.
PHP: if ($_SESSION['username']) { if($_GET['action']== 'logout') { session_destroy(); header('Location: http://ya.ru'); die(); } echo "Welcome, ".$_SESSION['username']."!<br><a href='member.php?action=logout'> Logout </a>"; }
Не знаю, я всегда кукисы использую даже при организации серьезных движков, а о последствиях думать стоит конечно, но пароль же как он есть в куку никто не сует а использует конструкцию типа: if($_COOKIES['pass']==md5('пароль из базы данных')) А лучше строку с паролем+IP полный или подсеть сунуть в md5 и пусть пиздят куки сколько хотят. на сколько я знаю md5 можно только сбрутить. А через чур быть параноиком тоже не хорошо, в конце концов если у юзера акк увели это его халатность и его проблемы, а так можно не только куки спиздить, можно еще троя заслать к примеру клавиатурного, давайте тоже будем думать о таком варианте и попытаемся это предусмотреть?
OnlyOn никакой проблемы нет, разработчики пхп верно считают, что данные нужно начинать посылать, как только они становятся готовы. Если же этого не хочется и пользоваться MVC религия не позволяет - придумана буферизация http://php.net/ob_start lex(SL) не один десяток "серьезных движков" уже обжегся на том, что получал много информации от пользователя через куки. Причина? Куки можно подделать, а данные в сессию - попробуй еще запиши Если опенсорс движки пишете - в личку примеры, если не сложно
Подскажите, что значит первая цифра в записи chmod для файлов или папок. Нагуглил таблицу соответствий: Может у кого-то найдутся примеры в каких случаях их стоит использовать?
777 - это полные права, что дают файлам полную "свободу" 755 - чаще всего используется для папок и скриптов 666 - обрезанные права. Кароче ставь 755 и будет тебе счастье.
7 - комбинация битов rwx (чтение+запись+выполнение, 4+2+1=7) 6 - комбинация битов rw (чтение+запись, 4+2=6) 5 - комбинация битов rx (чтение+выполнение, 4+1=5) 4 - бит чтения (4) и т.д. Для пхп-скриптов достаточно прав 0644
Самый простой вариант - file_get_contents: PHP: file_get_contents('http://forum.site.ru/') Если страницу получить удалось - домен существует, если нет - домена нет. Текущий домен храниться в переменной: PHP: $_SERVER["SERVER_NAME"] Реализовать можно так: PHP: <?php $dp = 'forum';//Домен который нужно узнать //-------------- $darray = explode(".", $_SERVER["SERVER_NAME"]); if (file_get_contents('http://'.$dp.'.'.$darray[count($darray)-2].'.'.$darray[count($darray)-1].'/') == true) echo 'Домен существует'; else echo 'Домена нет'; ?> Преимущество данного кода - не надо вносить нужный домен, код сам его определяет. Так же возможно реализовать этот же вариант через cURL: PHP: <?php $dp = 'forum';//Домен который нужно узнать //-------------- $darray = explode(".", $_SERVER["SERVER_NAME"]); $curl = curl_init('http://'.$dp.'.'.$darray[count($darray)-2].'.'.$darray[count($darray)-1].'/'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); if ($result==true) echo 'Домен существует'; else echo 'Домена нет'; ?> Или же можно обратиться напрямую к DNS, что правдо сложно. Так же привиду скрипт сокращения доменов до третего уровня: PHP: <?php $strings = array( 'http://www.test.domain.com.ua', 'www.test.domain.com.ua', 'test.domain.com.ua', 'super.domain.ru.com', 'domain.ru', ); $pattern = '#^(?:http://)?(?:www\.)?[^.]+\.(.+)#'; foreach ($strings as $s) { assert(preg_match($pattern, $s, $matches) == 1); echo "$s => $matches[1]\n"; } ?> Что б проверить, существует ли адрес пригодиться такая функция: PHP: FUNCTION url_exists($strURL) { $resURL = curl_init(); curl_setopt($resURL, CURLOPT_URL, $strURL); curl_setopt($resURL, CURLOPT_BINARYTRANSFER, 1); curl_setopt($resURL, CURLOPT_HEADERFUNCTION, 'curlHeaderCallback'); curl_setopt($resURL, CURLOPT_FAILONERROR, 1); curl_exec ($resURL); $intReturnCode = curl_getinfo($resURL, CURLINFO_HTTP_CODE); curl_close ($resURL); //Добавить коды ошибок, которые вам нужны. IF ($intReturnCode != 200 && $intReturnCode != 302 && $intReturnCode != 304) { RETURN FALSE; } ELSE { RETURN TRUE; } } А проверить существование E-Mail гораздо проще(Если когда ни будь понадобиться): PHP: function VerifyEmailAddress($email) { list($user, $domain) = explode("@", $email); $result = checkdnsrr($domain, 'MX'); return($result); } Что то я отклонился от темы, ещё узнать существует ли домен можно даже неотправляя никаких пакетов: PHP: $dp = 'forum';//Домен который нужно узнать //-------------- $darray = explode(".", $_SERVER["SERVER_NAME"]); $handle = @fopen('http://'.$dp.'.'.$darray[count($darray)-2].'.'.$darray[count($darray)-1].'/', "r"); if(strpos($handle, "Resource id") !== false) echo "Домен существует"; else echo "Домен не существует"; Так же советую почитать о функции gethostbyname, которая узнаёт IP по домену, что может помочь. Надеюсь достаточно хорошо ответил на ваш вопрос.
Вариант наверно жидкий, но вот так PHP: <?php $site = 'mazhor.com'; $a = file_get_contents("http://forum.".$site); echo ($a == true) ? 'Есть поддомен' : 'Нет поддомена' ; ?> Если поддомен есть, то выведет "Поддомен есть", иначе если поддомена нету, скрипт работает столько времени, сколько ему отведено и выводит ошибку. Это свидетельствует о том, что нету поддомена, пот только не пойду почему когда PHP: ($a == true) Возвращает false, "поддомена нет" не выводится. 2 Вариант, curl PHP: $site = 'http://forum.mazhor.com'; $curl = curl_init($site); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); echo $result ? 'Поддомен есть' : 'Поддомена нет' ; У меня работает корректно
krypt3r, OnlyOn, нет, мне все таки не кажется. В этом топике в последнее время вошло в привычку отвечать на все что угодно, кроме заданного вопроса. Человек спрашивает про биты установки SUID SGID, вы же ему рассказываете про доступ на чтение/запись/выполнение. AnGeI на википедии прекрасно все описано: http://ru.wikipedia.org/wiki/Chmod mff что для вас означает наличие? Если вы хотите проверить доступен ли по этому адресу веб-сервер - то соединитесь с ним и отправьте HTTP запрос. Если же хотите проверить, соответствует ли такому поддомену какой-то IP адрес, то можно так: PHP: $subdomain = 'trtatatat.qip.ru'; if ($subdomain===gethostbyname($subdomain)) {echo 'No such subdomain';} else {echo 'Subdomain exists';} echo "<br/>\r\n"; $subdomain = 'forum.qip.ru'; if ($subdomain===gethostbyname($subdomain)) {echo 'No such subdomain';} else {echo 'Subdomain exists';}
Еще добавить 404. Но тут уже смотря что хочет он. Мне кажется проверить стоит ли у пачки доменов по этому адресу форум. +5 пример выше : А проверить существование E-Mail гораздо прощще: не помню чтобы он спрашивал про емаил =) Если уд блистать знаниями стандартных функций, то конкретно отвечая на вопросы =)
Gifts спасибо. Я буду загружать список URL адресов и мне нужно будет узнать, есть ли на сайтах форум на поддомене или нету. Пробовать буду поддомены: forum. talk. затем, если нет форума на этих поддоменах, проверяю есть ли папки /forum/ /talk/ если и папок нету, то проверяю файлы в корне: /forum.php /forum.html /forum.htm /forum.asp /talk.php /talk.html /talk.htm /talk.asp Вот в идеале какой хочу скрипт написать
Народ подскажыте... Народ поделитесь пожалусто скриптом на заливку на фтп сервер с помошю курл. Или обясните как файл с компа сделать в такую переименную $_FILES['upload']['name'] без пост запроса...
Есть время С 12:00 по 13:30 И время 13:00 по 15:10 Нужно как-то определить не получается ли накладка времени.. В данном случае получается. т.к 13:00 попадает во временной промежуток 12:00 13:30 Нужно просерить не попадает ли второй промежуток в первый. единственное что приходит в голову это поделить время на часы и минуты и кучей ифов сравнивать,но конструкция получится громоздкая и не все предусматривающая(