Помощник
|
Хранение текста без БД |
scva
|
Сообщение
#1
|
||
|
|
||
|
|||
Webmaster_hb |
17.11.2008, 18:40;
Ответить: Webmaster_hb
Сообщение
#2
|
|
каждый рецепт в отдельном файле, нажимаете на ссылку и переходите в этот файл
|
|
|
scva
|
Сообщение
#3
|
|
|
|
|
Webmaster_hb |
17.11.2008, 18:55;
Ответить: Webmaster_hb
Сообщение
#4
|
|
тогда необходимо использование PHP в связке с базами или файлами, содержимое же должно где-то храниться
|
|
|
pomp |
17.11.2008, 18:56;
Ответить: pomp
Сообщение
#5
|
|
|
|
|
Nightfly_hb |
17.11.2008, 18:57;
Ответить: Nightfly_hb
Сообщение
#6
|
|
Когда то делал. Может немного мудрёно.. Работает на файлах. Вставку картинок можно вырезать или просто не трогать.
[PHP]<? $endl=' '; // +----------------------------------------------------+ // | Настройки. | // +----------------------------------------------------+ // Название страницы. $PAGE_TITLE='Название'; // Ширина таблиц, в которых содержится информация. // Например: `600px` или `50%` $PAGE_WIDTH_1='95%'; // Ширина таблицы при обычном просмотре $PAGE_WIDTH_2='95%'; // Ширина таблицы при подробном просмотре товара // Размер картинки при обычном просмотре. $IMAGE_WIDTH='0px'; // ширина $IMAGE_HEIGHT='0px'; // высота // Размеры картинок при подробном просмотре. $IMAGES_WIDTH='0px'; // ширина $IMAGES_HEIGHT='0px'; // высота // Количество товаров на странице $COUNT_FOR_PAGE=5; // Количество страниц показывающихся в лево и вправо(там где страницы). $PAGES_INDENTATION=1; // Файл в котором храниться информация о товарах. $DATA_FILE='script.txt'; // Каталог, куда сохраняются картинки. // Наример 'images' или 'store/images/kaka' // Он должен существовать !!! $IMG_DIR='images'; // +----------------------------------------------------+ @include_once $DATA_FILE; print '<html>'.$endl; print '<head>'.$endl; print '<title>'.$PAGE_TITLE.'</title>'.$endl; print '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'; print '<link href="style.css" rel="stylesheet" type="text/css"> '; print '</head>'.$endl; print '<body><center>'.$endl; if(!IsSet($_GET['info'])) { print '<table width="'.$PAGE_WIDTH_1.'" >'.$endl; // Рисуем заданое число товаров $_GET['page']=floor($_GET['page']); for($i=0; $i<$COUNT_FOR_PAGE; $i++) { $currnum=$COUNT_OF_CONTENT-$i-$_GET['page']*$COUNT_FOR_PAGE; if($currnum>=1) { print '<tr><td>'.$endl; print '<img src="'.$IMG_DIR.'/'.$CONTENT[$currnum]['img']['def'].'" width="'.$IMAGE_WIDTH.'" height="'.$IMAGE_HEIGHT.'" align=left >'.$endl; print '<a href="'.$_SERVER['SCRIPT_NAME'].'?info='.$currnum.'" >'.$endl; print $CONTENT[$currnum]['text_small'].$endl; print '</a></td></tr>'.$endl; print '<tr><td><hr></td></tr>'; } } // Рисуем внизу переходы по страницам print '<tr><td align=center >'; $i_max=ceil($COUNT_OF_CONTENT/$COUNT_FOR_PAGE); if($_GET['page']>0) { print '<a href="'.$_SERVER['SCRIPT_NAME'].'?page='.($_GET['page']-1).'" ><<назад<</a>'.$endl; } else { print '<<назад<'.$endl; } $i_start=max($_GET['page']-$PAGES_INDENTATION, 0); if($i_start > 0) { print ' | <a href="'.$_SERVER['SCRIPT_NAME'].'?page=0" >1</a>'.$endl; if($i_start>1) print ' | ...'; } for($i=$i_start; ($i<$i_max)&&($i<=($PAGES_INDENTATION+$_GET['page'])); $i++) { print ' | '.$endl; print '<a href="'.$_SERVER['SCRIPT_NAME'].'?page='.$i.'" >'; if($i!=$_GET['page']) print ($i+1); else print '<b>'.($i+1).'</b>'; print '</a>'.$endl; } $i_start=$PAGES_INDENTATION+$_GET['page']; if($i_start < ($i_max-$PAGES_INDENTATION)) { if($i_start< ($i_max-$PAGES_INDENTATION-1)) print ' | ...'; print ' | <a href="'.$_SERVER['SCRIPT_NAME'].'?page='.($i_max-1).'" >'.$i_max.'</a>'.$endl; } print ' | '.$endl; if($_GET['page']<($i_max-1)) { print '<a href="'.$_SERVER['SCRIPT_NAME'].'?page='.($_GET['page']+1).'" >>вперёд>></a>'.$endl; } else { print '>вперёд>>'.$endl; } print '</td></tr>'; print '</table>'; } else { print '<table width="'.$PAGE_WIDTH_2.'" >'; print '<tr>'; print '<td align=center >'; for($i=1; IsSet($CONTENT[$_GET['info']]['img'][$i]); $i++) { if($CONTENT[$_GET['info']]['img'][$i]) { print '<a href="'.$IMG_DIR.'/'.$CONTENT[$_GET['info']]['img'][$i].'" target=_black >'; print '<img src="'.$IMG_DIR.'/'.$CONTENT[$_GET['info']]['img'][$i].'" width="'.$IMAGES_WIDTH.'" height="'.$IMAGES_HEIGHT.'" border=0 >'; print '</a>'.$endl; } } print '</td>'; print '</tr>'; print '<tr><td>'; print $CONTENT[$_GET['info']]['text'].$endl; print '</td></tr>'; print '</table>'; } print '</body>'.$endl; print '</html>'.$endl; ?> [/PHP] script_admin.php [PHP] <? $endl=' '; // +----------------------------------------------------+ // | Настройки. | // +----------------------------------------------------+ // Название страницы. $PAGE_TITLE='Админка'; // Код для входа. $PAGE_PASSWORD='123456'; // Файл в котором храниться информация о товарах. $DATA_FILE='script.txt'; // Каталог, куда сохраняются картинки. // Наример 'images' или 'store/images/kaka' // Он должен существовать !!! $IMG_DIR='images'; // +----------------------------------------------------+ // Функции для коректной записи в файл function remakeText($what) { return str_replace("'","\\'",str_replace("\\","\\\\",$what)); } function makeText($what) { return remakeText(stripslashes($what)); } // Получение по типу файла его расширения function get_type($what) { if(($what=='image/jpg')||($what=='image/jpeg')) return '.jpg'; if($what=='image/gif') return '.gif'; if($what=='image/png') return '.png'; return '.x'; } // Запись в файл. function writeToFile($what) { $f=fopen($GLOBALS['DATA_FILE'], 'a+'); flock($f, LOCK_EX); ftruncate($f, 0); fwrite($f, $what); fflush($f); flock($f, LOCK_UN); fclose($f); } if((IsSet($_POST['pass']))&&($_POST['pass']===$PAGE_PASSWORD)) { setcookie('pass', $PAGE_PASSWORD); $_REQUEST['pass']=$PAGE_PASSWORD; } if($_SERVER['QUERY_STRING']=='exit') { setcookie('pass'); UnSet($_REQUEST['pass']); } print '<html>'.$endl; print '<head>'.$endl; print '<title>'.$PAGE_TITLE.'</title>'.$endl; print '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'; print '</head>'.$endl; print '<body><center>'.$endl; if($_REQUEST['pass']!==$PAGE_PASSWORD) { print '<form action="'.$_SERVER['SCRIPT_NAME'].'" method="post" >'.$endl; print 'Код: '.$endl; print '<input name="pass" type="password" > '.$endl; print '<input type="submit" value="ок" > '.$endl; print '</form>'.$endl; if(IsSet($_REQUEST['pass'])) print '<br><b>Неверный код!!!</b>'.$endl; } else { @include_once $DATA_FILE; print $PAGE_TITLE; print ' | '; print '<a href="'.$_SERVER['SCRIPT_NAME'].'?exit" >выход</a>'; print '<hr>'.$endl; print '<a href="'.$_SERVER['SCRIPT_NAME'].'?edit=yes" >'; if($_GET['edit']=='yes') print '<b>'; print 'Редактирование записей</b></a>'.$endl; print ' | '.$endl; print '<a href="'.$_SERVER['SCRIPT_NAME'].'?create=yes" >'; if($_GET['create']=='yes') print '<b>'; print 'Создание новой записи</b></a>'.$endl; print '<hr>'.$endl; if($_GET['create']=='yes') { if($_POST['sub']==='Добавить') { $COUNT_OF_CONTENT++; $ID++; if(file_exists($_FILES['img_def']['tmp_name'])) { $_POST['img_def']=$ID.'_def'.get_type($_FILES['img_def']['type']); copy($_FILES['img_def']['tmp_name'], $IMG_DIR.'/'.$_POST['img_def']); } if(file_exists($_FILES['img_1']['tmp_name'])) { $_POST['img_1']=$ID.'_1'.get_type($_FILES['img_1']['type']); copy($_FILES['img_1']['tmp_name'], $IMG_DIR.'/'.$_POST['img_1']); } if(file_exists($_FILES['img_2']['tmp_name'])) { $_POST['img_2']=$ID.'_2'.get_type($_FILES['img_2']['type']); copy($_FILES['img_2']['tmp_name'], $IMG_DIR.'/'.$_POST['img_2']); } if(file_exists($_FILES['img_3']['tmp_name'])) { $_POST['img_3']=$ID.'_3'.get_type($_FILES['img_3']['type']); copy($_FILES['img_3']['tmp_name'], $IMG_DIR.'/'.$_POST['img_3']); } if(file_exists($_FILES['img_4']['tmp_name'])) { $_POST['img_4']=$ID.'_4'.get_type($_FILES['img_4']['type']); copy($_FILES['img_4']['tmp_name'], $IMG_DIR.'/'.$_POST['img_4']); } $text=''; $text.='<?'.$endl; $text.='$ID='.$ID.';'.$endl; $text.='$COUNT_OF_CONTENT='.$COUNT_OF_CONTENT.';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][name]=\''.makeText($_POST['name']).'\';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][text_small]=\''.makeText($_POST['text_small']).'\';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][text]=\''.makeText($_POST['text']).'\';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][img][def]=\''.makeText($_POST['img_def']).'\';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][img][1]=\''.makeText($_POST['img_1']).'\';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][img][2]=\''.makeText($_POST['img_2']).'\';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][img][3]=\''.makeText($_POST['img_3']).'\';'.$endl; $text.='$CONTENT['.$COUNT_OF_CONTENT.'][img][4]=\''.makeText($_POST['img_4']).'\';'.$endl; for($i=1;$i<$COUNT_OF_CONTENT; $i++) { $text.='$CONTENT['.$i.'][name]=\''.remakeText($CONTENT[$i]['name']).'\';'.$endl; $text.='$CONTENT['.$i.'][text_small]=\''.remakeText($CONTENT[$i]['text_small']).'\';'.$endl; $text.='$CONTENT['.$i.'][text]=\''.remakeText($CONTENT[$i]['text']).'\';'.$endl; $text.='$CONTENT['.$i.'][img][def]=\''.remakeText($CONTENT[$i]['img']['def']).'\';'.$endl; for($k=1; IsSet($CONTENT[$i]['img'][$k]); $k++) { $text.='$CONTENT['.$i.'][img]['.$k.']=\''.remakeText($CONTENT[$i]['img'][$k]).'\';'.$endl; } } $text.='?>'; writeToFile($text); print 'Запись добавлена. <br> НЕ ОБНОВЛЯЙТЕ ЭТУ СТРАНИЦУ,<br> будут создаваться одинаковые записи !!!'; } else { print '<form action="'.$_SERVER['SCRIPT_NAME'].'?create=yes" method="post" enctype="multipart/form-data" >'.$endl; print '<table width="600px" >'.$endl; print '<tr>'.$endl; print '<td align=right><b>№</b></td>'.$endl; print '<td>'.($COUNT_OF_CONTENT+1).'</td>'.$endl; print '</tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Имя:</b></td>'.$endl; print '<td><input type="text" name="name" ></td>'.$endl; print '</tr>'.$endl; print '<tr><td align=right><b>Краткое описание:</b></td><td></td></tr>'.$endl; print '<tr><td colspan=2 >'.$endl; print '<textarea name="text_small" rows=4 style="width:100%;" ></textarea>'; print '</td></tr>'.$endl; print '<tr><td align=right><b>Полное описание:</b></td><td></td></tr>'.$endl; print '<tr><td colspan=2 >'.$endl; print '<textarea name="text" rows=8 style="width:100%;" ></textarea>'; print '</td></tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Маленькая картинка:</b></td>'.$endl; print '<td><input type="file" name="img_def" ></td>'.$endl; print '</tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Большая картинка №1:</b></td>'.$endl; print '<td><input type="file" name="img_1" ></td>'.$endl; print '</tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Большая картинка №2:</b></td>'.$endl; print '<td><input type="file" name="img_2" ></td>'.$endl; print '</tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Большая картинка №3:</b></td>'.$endl; print '<td><input type="file" name="img_3" ></td>'.$endl; print '</tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Большая картинка №4:</b></td>'.$endl; print '<td><input type="file" name="img_4" ></td>'.$endl; print '</tr>'.$endl; print '<tr><td colspan=2 align=right ><input type="submit" name="sub" value="Добавить" ></td></tr>'; print '</table>'; print '</form>'.$endl; } } elseif($_GET['edit']=='yes') { if(IsSet($_GET['editnum'])) { if(IsSet($_POST['sub'])) { if($_POST['sub']=='Изменить') { $CONTENT[$_GET['editnum']]['name']=stripslashes($_POST['name']); $CONTENT[$_GET['editnum']]['text_small']=stripslashes($_POST['text_small']); $CONTENT[$_GET['editnum']]['text']=stripslashes($_POST['text']); $ID++; if(file_exists($_FILES['img_def']['tmp_name'])) { if($CONTENT[$_GET['editnum']]['img']['def']) unlink($IMG_DIR.'/'.$CONTENT[$_GET['editnum']]['img']['def']); $_POST['img_def']=$ID.'_def'.get_type($_FILES['img_def']['type']); copy($_FILES['img_def']['tmp_name'], $IMG_DIR.'/'.$_POST['img_def']); $CONTENT[$_GET['editnum']]['img']['def']=$_POST['img_def']; } for($k=1; IsSet($CONTENT[$_GET['editnum']]['img'][$k]); $k++) { if(file_exists($_FILES['img_'.$k]['tmp_name'])) { if($CONTENT[$_GET['editnum']]['img'][$k]) unlink($IMG_DIR.'/'.$CONTENT[$_GET['editnum']]['img'][$k]); $_POST['img_'.$k]=$ID.'_'.$k.get_type($_FILES['img_'.$k]['type']); copy($_FILES['img_'.$k]['tmp_name'], $IMG_DIR.'/'.$_POST['img_'.$k]); $CONTENT[$_GET['editnum']]['img'][$k]=$_POST['img_'.$k]; } } if((IsSet($_POST['num_card']))&&($_POST['num_card'])) for($i=1;($i<=$_POST['num_card'])||(IsSet($CONTENT[$_GET['editnum']]['img'][$i])); $i++) { if($i<=$_POST['num_card']) { if(!IsSet($CONTENT[$_GET['editnum']]['img'][$i])) $CONTENT[$_GET['editnum']]['img'][$i]=''; } else { if($CONTENT[$_GET['editnum']]['img'][$i]) unlink($IMG_DIR.'/'.$CONTENT[$_GET['editnum']]['img'][$i]); UnSet($CONTENT[$_GET['editnum']]['img'][$i]); } } $text=''; $text.='<?'.$endl; $text.='$ID='.$ID.';'.$endl; $text.='$COUNT_OF_CONTENT='.$COUNT_OF_CONTENT.';'.$endl; for($i=1;$i<=$COUNT_OF_CONTENT; $i++) { $text.='$CONTENT['.$i.'][name]=\''.remakeText($CONTENT[$i]['name']).'\';'.$endl; $text.='$CONTENT['.$i.'][text_small]=\''.remakeText($CONTENT[$i]['text_small']).'\';'.$endl; $text.='$CONTENT['.$i.'][text]=\''.remakeText($CONTENT[$i]['text']).'\';'.$endl; $text.='$CONTENT['.$i.'][img][def]=\''.remakeText($CONTENT[$i]['img']['def']).'\';'.$endl; for($k=1; IsSet($CONTENT[$i]['img'][$k]); $k++) { $text.='$CONTENT['.$i.'][img]['.$k.']=\''.remakeText($CONTENT[$i]['img'][$k]).'\';'.$endl; } } $text.='?>'; writeToFile($text); print 'Изменено. <a href="'.$_SERVER['SCRIPT_NAME'].'?edit=yes&editnum='.$_GET['editnum'].'" >Вернуться</a>'; } elseif(($_POST['sub']=='Удалить')&&($_GET['editnum']<=$COUNT_OF_CONTENT)&&($_GET['editnum']>=1)) { if($CONTENT[$_GET['editnum']]['img']['def']) unlink($IMG_DIR.'/'.$CONTENT[$_GET['editnum']]['img']['def']); for($k=1; IsSet($CONTENT[$_GET['editnum']]['img'][$k]); $k++) { if($CONTENT[$_GET['editnum']]['img'][$k]) unlink($IMG_DIR.'/'.$CONTENT[$_GET['editnum']]['img'][$k]); } for($i=$_GET['editnum'];$i<$COUNT_OF_CONTENT; $i++) { $CONTENT[$i]['name']=$CONTENT[$i+1]['name']; $CONTENT[$i]['text_small']=$CONTENT[$i+1]['text_small']; $CONTENT[$i]['text']=$CONTENT[$i+1]['text']; $CONTENT[$i]['img']['def']=$CONTENT[$i+1]['img']['def']; for($k=1; (IsSet($CONTENT[$i]['img'][$k]) || IsSet($CONTENT[$i+1]['img'][$k])); $k++) { $CONTENT[$i]['img'][$k]=$CONTENT[$i+1]['img'][$k]; } } $COUNT_OF_CONTENT--; $text=''; $text.='<?'.$endl; $text.='$ID='.$ID.';'.$endl; $text.='$COUNT_OF_CONTENT='.$COUNT_OF_CONTENT.';'.$endl; for($i=1;$i<=$COUNT_OF_CONTENT; $i++) { $text.='$CONTENT['.$i.'][name]=\''.remakeText($CONTENT[$i]['name']).'\';'.$endl; $text.='$CONTENT['.$i.'][text_small]=\''.remakeText($CONTENT[$i]['text_small']).'\';'.$endl; $text.='$CONTENT['.$i.'][text]=\''.remakeText($CONTENT[$i]['text']).'\';'.$endl; $text.='$CONTENT['.$i.'][img][def]=\''.remakeText($CONTENT[$i]['img']['def']).'\';'.$endl; for($k=1; IsSet($CONTENT[$i]['img'][$k]); $k++) { $text.='$CONTENT['.$i.'][img]['.$k.']=\''.remakeText($CONTENT[$i]['img'][$k]).'\';'.$endl; } } $text.='?>'; writeToFile($text); print 'Запись удалена.'; } } else { print '<form action="'.$_SERVER['SCRIPT_NAME'].'?edit=yes&editnum='.$_GET['editnum'].'" method="post" enctype="multipart/form-data" >'.$endl; print '<table width="600px" >'.$endl; print '<tr>'.$endl; print '<td align=right><b>№</b></td>'.$endl; print '<td>'.$_GET['editnum'].'</td>'.$endl; print '</tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Имя:</b></td>'.$endl; print '<td><input type="text" name="name" value="'.$CONTENT[$_GET['editnum']]['name'].'" ></td>'.$endl; print '</tr>'.$endl; print '<tr><td align=right><b>Краткое описание:</b></td><td></td></tr>'.$endl; print '<tr><td colspan=2 >'.$endl; print '<textarea name="text_small" rows=4 style="width:100%;" >'; print $CONTENT[$_GET['editnum']]['text_small']; print '</textarea>'; print '</td></tr>'.$endl; print '<tr><td align=right><b>Полное описание:</b></td><td></td></tr>'.$endl; print '<tr><td colspan=2 >'.$endl; print '<textarea name="text" rows=8 style="width:100%;" >'; print $CONTENT[$_GET['editnum']]['text']; print '</textarea>'; print '</td></tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Количество картинок:</b></td>'.$endl; print '<td><input type="text" name="num_card" value="" ></td>'.$endl; print '</tr>'.$endl; print '<tr>'.$endl; print '<td align=right><b>Маленькая картинка:</b> '.$CONTENT[$_GET['editnum']]['img']['def'].' </td>'.$endl; print '<td><input type="file" name="img_def" ></td>'.$endl; print '</tr>'.$endl; for($k=1; IsSet($CONTENT[$_GET['editnum']]['img'][$k]); $k++) { print '<tr>'.$endl; print '<td align=right><b>Большая картинка №'.$k.':</b> '.$CONTENT[$_GET['editnum']]['img'][$k].' </td>'.$endl; print '<td><input type="file" name="img_'.$k.'" ></td>'.$endl; print '</tr>'.$endl; } print '<tr>'.$endl; print '<td align=left ><input type="submit" name="sub" value="Удалить" ></td>'.$endl; print '<td align=right ><input type="submit" name="sub" value="Изменить" ></td>'.$endl; print '</tr>'.$endl; print '</table>'; print '</form>'.$endl; } } else { for($i=0; $i<25; $i++) { $currnum=$COUNT_OF_CONTENT-$i-$_GET[viewnum]*25; if($currnum>=1) { print '<a href="'.$_SERVER['SCRIPT_NAME'].'?edit=yes&editnum='.$currnum.'" >'; print '#'.$currnum.' '; print $CONTENT[$currnum]['name']; print '</a><br>'.$endl; } } $imax=ceil($COUNT_OF_CONTENT/25); for($i=0;$i<$imax;$i++) print '<a href="'.$_SERVER['SCRIPT_NAME'].'?edit=yes&viewnum='.$i.'" >'.($i+1).'</a> '; } } } print '</body>'.$endl; print '</html>'.$endl; ?> [/PHP] так же понадобится создать script.txt и кат. images |
|
|
scva
|
Сообщение
#7
|
|
спасибо
|
|
|
Nightfly_hb |
17.11.2008, 19:11;
Ответить: Nightfly_hb
Сообщение
#8
|
|
Не забудь права выставить на script.txt и images на запись
|
|
|
Exterior |
1.12.2008, 15:28;
Ответить: Exterior
Сообщение
#9
|
|
|
Все тоже самое можно сделать и на JavaScript, тут где-то один энтузиаст делал нечто подобное к тому же с автоматическим разделением на страницы.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
📌 Рандомизация видео/аудио/фото/текста с минимальным участием - 𝓓𝓮𝓵𝓽𝓪𝓣𝓸𝓸𝓵𝓼 Мы предлагаем комплексное решение для рандомизации всех видов офера |
3 | leviathan | 1508 | Вчера, 19:39 автор: leviathan |
|
Настройка яндекс директ рекламы БЕЗ РАСХОДОВ БЮДЖЕТА Количество продаж будет ОГРАНИЧЕННО! |
22 | ITstaf | 4418 | 23.4.2024, 21:00 автор: 100ftd |
|
PROXY-STORE.COM — ipV4 прокси от 42р В МЕСЯЦ с ротацией и без! Лучшая цена на рынке. 200+ стран | 21 | proxystore | 5347 | 19.4.2024, 12:02 автор: proxystore |
|
Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC | 22 | Krok | 6765 | 12.4.2024, 5:17 автор: Krok |
|
Скрипты и программы на заказ любой сложности. Без предоплаты. Быстро, качественно и недорого! | 5 | c4p1t4l15t | 2531 | 6.4.2024, 12:51 автор: c4p1t4l15t |
Текстовая версия | Сейчас: 25.4.2024, 3:56 |