Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 151

Добыча из URL

24.07.2012, 17:39. Показов 1481. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня url такого вида http://saitotot.com/page.php/id1.

Как мне добыть цифру 1 или которая там .

Вот такое не выходит
PHP
1
2
3
if (isset($_GET['id'])) {$id =$_GET['id']; } 
else
{ exit("Вы зашил на страницу без параметра!");}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.07.2012, 17:39
Ответы с готовыми решениями:

Открыть URL (там ссылка, которая совершает переход на другой URL) и вытянуть новый URL
Стоит задача по одному URL получить другой Пробовал открывать URL через webbrowser, но это не совсем то, что нужно, в идеале вообще не...

Добыча золота в варкрафт
Заданное количество юнитов добывают золото равными порциями из одной шахты, задерживаясь в пути на случайное время, до ее истощения. ...

Динамическое создание текстблока и добыча его содержимого
Всем привет. Я программно создаю TextBlock, мне надо узнать его "id" при клике, тк в будущем надо будет работать с этим. Я добавил...

14
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.07.2012, 17:41
http://saitotot.com/page.php/id=1.
0
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 151
24.07.2012, 18:15  [ТС]
А мне нужно что бы брало из id1
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.07.2012, 18:26
fastconnekt, почитайте по mod_rewrite. Может вам это нужно...
0
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 151
24.07.2012, 18:29  [ТС]
нет мне нужно что бы из id1 брало цифру.


(обработчик был в php)
0
4 / 4 / 0
Регистрация: 23.07.2012
Сообщений: 27
24.07.2012, 19:39
PHP
1
2
3
4
5
if(isset($_GET['id']))
{
   for($i=2; $<count($_GET['id']); $i++)
      $string .= $_GET['id'][i];
}
как то так.. не проверено

ну и потом (int)$string соответсвенно
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.07.2012, 20:16
fastconnekt, можно с помощью регулярки:
PHP
1
2
3
4
5
6
7
8
// Строка запроса
$URI = $_SERVER['REQUEST_URI'];
 
// Ищем вхождения. "$match[1]" будет содержать нужный нам ID
preg_match("/\/id([0-9]+)$/i", $URI, $match);
 
// Выводим для примера
echo $match[1];
0
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 151
24.07.2012, 20:58  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
session_start()
$URI = $_SERVER['REQUEST_URI'];
 
if (!preg_match("/\/id([0-9]+)$/i", $URI, $match)) {
 exit("Вы зашли без параметра");
}
 
$match[1] = $id;
include ("bd.php");
 
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}


Добавлено через 1 минуту
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?php
 
session_start()
$URI = $_SERVER['REQUEST_URI'];
 
if (!preg_match("/\/id([0-9]+)$/i", $URI, $match)) {
 exit("Вы зашли без параметра");
}
 
$match[1] = $id;
include ("bd.php");
 
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>");//если id не число, то выдаем ошибку
}
 
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
 
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db); 
$myrow2 = mysql_fetch_array($result2); 
if (empty($myrow2['id']))
   {
   //Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)
    exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
   }
}
else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db); 
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
 
if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует
 
?>
<html>
<head>
<title><?php echo $myrow['login']; ?></title>
</head>
<body>
<h2>Пользователь "<?php echo $myrow['login']; ?>"</h2>
 
 
<?php
print <<<HERE
|<a href='page.php?id=$myrow2[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>
HERE;
//выше вывели меню
 
if ($myrow['login'] == $login) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные и выводим личные сообщения
 
print <<<HERE
 
<form action='update_user.php' method='post'>
Ваш логин <strong>$myrow[login]</strong>. Изменить логин:<br>
<input name='login' type='text'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>
 
<form action='update_user.php' method='post'>
Изменить пароль:<br>
<input name='password' type='password'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>
 
<form action='update_user.php' method='post' enctype='multipart/form-data'>
Ваш аватар:<br>
<img alt='аватар' src='$myrow[avatar]'><br>
Изображение должно быть формата jpg, gif или png. Изменить аватар:<br>
<input type="FILE" name="fupload">
<input type='submit' name='submit' value='изменить'>
</form>
<br>
 
<h2>Личные сообщения:</h2>
 
HERE;
 
$tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$login' ORDER BY id DESC",$db); 
$messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху
 
if (!empty($messages['id'])) {
do //выводим все сообщения в цикле
  {
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
$myrow4 = mysql_fetch_array($result4);
 
if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
$avatar = $myrow4['avatar'];
}
else {$avatar = "avatars/net-avatara.jpg";}
 
  printf("
  <table>
  <tr>
  <td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>
  
  <td>Автор: <a href='page.php?id=%s'>%s</a><br>
      Дата: %s<br>
      Сообщение:<br>
     %s<br>
     <a href='drop_post.php?id=%s'>Удалить</a>
  
  </td>  
  </tr>
  </table><br>
  ",$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
  //выводим само сообщение
  }
  while($messages = mysql_fetch_array($tmp));
 
                    }
                    else {
                    //если сообщений не найдено
                    echo "Сообщений нет";
                    }
                    
}
 
else
{
//если страничка чужая, то выводим только некторые данные и форму для отправки личных сообщений
 
print <<<HERE
<img alt='аватар' src='$myrow[avatar]'><br>
<form action='post.php' method='post'>
<br>
<h2>Отправить Ваше сообщение:</h2>
<textarea cols='43' rows='4' name='text'></textarea><br>
<input type='hidden' name='poluchatel' value='$myrow[login]'>
<input type='hidden' name='id' value='$myrow[id]'>
<input type='submit' name='submit' value='Отправить'>
</form>
HERE;
}
 
?>
</body>
</html>
Ошибка вот такая Parse error: syntax error, unexpected T_VARIABLE in /home/u645784546/public_html/page.php on line 4
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.07.2012, 21:16
Цитата Сообщение от fastconnekt Посмотреть сообщение
session_start()
точку с запятой поставь в конце строки, это не js

Добавлено через 1 минуту
и скрипт, мягко говоря, хромает.
Цитата Сообщение от fastconnekt Посмотреть сообщение
PHP
1
2
3
4
5
if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
из уроков попова штоле это взяли?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.07.2012, 21:19
fastconnekt, после session_start поставьте точку с запятой.
P.S. Внимательней нужно быть
0
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 151
24.07.2012, 21:23  [ТС]
Спасибо Да Попов
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.07.2012, 21:33
не доверяйте никогда данным, которые могут подделать - ни кукам, ни переданным данным, не сессиям - перед запросом всегда проверяйте их
вот вам простой пример - вы делаете простенькую авторизацию по урокам попова и ему подобных
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
session_start();
if(isset($_POST['btn'])) {
$login = $_POST['login'];
$pass = $_POST['pass'];
// не проверив данные, выполняем запрос
$res = mysql_query("SELECT `id`,`login` FROM `users` Where `login`='$login' and `pass`='$pass'"); /*так же ведь, да? */
if(mysql_num_rows($res)) {
$_SESSION['login']=$login; // все ок да?
echo "Вы успешно зашли, поздравляю";
}
}
?>
HTML5
1
2
3
4
5
<form method="post">
Login<input type=text name=login /><br>
Pass<input type=password name=pass /><br>
<input type=submit name=btn value="Войти" />
</form>
если вы не проверяя данные (как в вашем коде) будете делать запрос к БД - то при наличии небольших знаний - я не зная ни пароля ни логина спокойно зайду к вам на сайт
0
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 151
24.07.2012, 21:54  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
session_start();
$URI = $_SERVER['REQUEST_URI'];
 
if (!preg_match("/\/id([0-9]+)$/i", $URI, $match)) {
 exit("Вы зашли без параметра");
}
 
$match[1] = $id;
include ("bd.php");
 
 
 
if (!empty($_SESSION['email']) and !empty($_SESSION['password']))
{
 
$email = $_SESSION['email'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT * FROM akks WHERE email='$email' AND password='$password' AND activation='1'",$db); 
$myrow2 = mysql_fetch_array($result2); 
if (empty($myrow2['id']))
   {
   //Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)
    exit("Вход на эту страницу разрешен только зарегистрированным пользователям!");
   }
}
else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"); }
$result = mysql_query("SELECT * FROM akks WHERE id='$id'",$db); 
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
 
if (empty($myrow['email'])) { exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует
 
?>
Пишет Пользователя не существует! Возможно он был удален.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.07.2012, 22:00
значит в таблице под этим номером id не указано мыло

Добавлено через 2 минуты
вместо вот этого
Цитата Сообщение от fastconnekt Посмотреть сообщение
PHP
1
2
$result = mysql_query("SELECT * FROM akks WHERE id='$id'",$db); 
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
пропишите
PHP
1
2
$result = "SELECT * FROM akks WHERE id='$id'",$db; 
var_dump($result);
и посмотрите какой запрос уходит в базу

Добавлено через 36 секунд
или просто id выведите перед запросом..
0
0 / 0 / 0
Регистрация: 21.07.2012
Сообщений: 151
24.07.2012, 22:02  [ТС]
Мыло вообщето есть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.07.2012, 22:02
Помогаю со студенческими работами здесь

База данных с++ "Добыча угля" (Отчет по практике)
Доброго времени суток! Люди помогите создать базу данных по добыче угля,производственная практика уже заканчивается а программы нет(незнаю...

"Добыча" пароля через ассемблер. Как?
Приветствую всех. Недавно наткнулся на одну игру. Решил рипнуть текстуры - ан нет. Файлы .pak(которые на самом деле переименованные .zip),...

Как из asp получить полный URL и часть URL от вопросительного знака?
Господа подскажите как из asp получить полный URL и часть URL от вопросительного знака. На Javascript это сделать очень просто - ...

Сколько можно добавить URL адресов в свою созданную Группу URl?
Добрый день. Подскажите пожалуйста, сколько можно добавить URL адресов в свою созданную Группу URl? На купленной лицензии VS...

Как исправить: Изменил URL, но в адресных строках отображаются станые URL
Раньше были такого вида http://selftrips.ru/2013/01/07/27269 переделал на ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru