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 юзать? За скули да, в курсе, код не мой, поэтому сначала все разберу, потом все пофиксю ) В итоге, поставил переписанную тобой функцию, но ошибка опять же вылазит.
Ссори тупанул про LIKE видать под вечер было. LIKE вообще старайтесь использовать как можно реже, а если используете то перед вводом данных в запрос проходите приходящие данные через регулярки которые не дадут вас поломать. Так же не понятно зачем вам $link? У вас же небось одна база... Проблем с моим кодом не должно быть, если есть проблемы значит ищите их до входа в функцию, либо у вас имя поля не верно или пароль равен NULL или пустой. Чтобы проверить что проблем с запросом нет сделайте просто в функции чуть ниже PHP: $query = "SELECT `login`, `password` FROM `users` WHERE `login`= '" . mysql_real_escape_string($login) . "'"; Добавьте PHP: echo $query; Получите запрос который шлется в mysql и вбейте его к примеру в phpmyadmin если получите ошибку то значит проблема в запросе, если пустоту то значит проблема с заполнении полей либо в вводимых данных) P.S. не забывайте в запросе добавлять кавычки одинарные иначе если будут вводить два слова или больше вы получите ошибку.
как реализовать проверку, открыт ли сайт по https или по http?, как на ачате, если войти http://forum.antichat.ru выведет: