[PHP] Новичкам: задаем вопросы

Discussion in 'PHP' started by Kaimi, 7 May 2015.

  1. ultimatum

    ultimatum Elder - Старейшина

    Joined:
    28 Apr 2007
    Messages:
    142
    Likes Received:
    65
    Reputations:
    -13
    Мазохизм.
    Приведите структуру базы данных.
    >> Можно ли это, используя foreach внутри foreach?
    Можно, но это очень плохая практика.
    >> В конечном итоге, информация выведенная из второго foreach() выводилась в photo.tpl, которая потом, с информацией из первого foreach() оформлялась в конечный page.tpl.
    Почитайте про MVC (https://ru.wikipedia.org/wiki/Model-View-Controller)
     
  2. InfectedM

    InfectedM Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    PHP 5.6

    Есть ассоциативный массив, который возвращается из БД через
    while($row = $result->fetch_assoc())
    Нужно добавить уже в готовый массив поле 'class'
    [​IMG]



    Как по правильному адресоваться к текущему элементу т.е. $item
    делаю вот так: $result[$item]['class'] = "data-$i";
    Но выдает ошибку, сейчас рабочий код, но хотелось бы узнать как правильно адресоваться без $J


    PHP:
    $j=0;


            foreach(
    $result as $item) {
              
    $i MysuperRaschet();
                
    $result[$j]['class'] = "data-$i";
                
    $j++;

            }
    подскажите плиз, просто есть вероятность что , что-то потом поменяю и индексы будут не последовательны
     
    #62 InfectedM, 14 Oct 2015
    Last edited: 14 Oct 2015
  3. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72

    PHP:
    foreach($result as &$item) {

       
    $i MysuperRaschet();
       
    $item['class'] = "data-$i";
    }

    unset(
    $item);
     
    InfectedM likes this.
  4. InfectedM

    InfectedM Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    Подскажи плиз...

    если без тильды, то мы берем элемент и кладем в $item (создаем как бы дубликат)
    Если с тильдой, мы не создаем дубликат, а как бы создаем ссылку, которая работает напрямую с массивом

    В том случае если мы что-то поменяем в $item поменяется и в $result

    Все правильно?


    а unset($item) закрывает этот портал как бы (закрывает ссылку). ?

    Просто по логике, мы должны были удалить ансетом элемент, у нас же как бы ссылка на оригинал, значит удалится оригинальная запись!

    или unset не работает для конечного пункта назначения ссылки?

    хотя сейчас протестирую) UPD: работает спс
     
    #64 InfectedM, 14 Oct 2015
    Last edited: 14 Oct 2015
    Fepsis likes this.
  5. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Да, все так.
     
    InfectedM likes this.
  6. Docker07

    Docker07 New Member

    Joined:
    21 Sep 2013
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    привет, народ, подскажите какие нибудь толковые видео-уроки для новичка по PHP
     
  7. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    237
    Likes Received:
    155
    Reputations:
    0
    Будь на Вашем месте,- я начинал бы не с php
     
  8. holderFS

    holderFS New Member

    Joined:
    23 Oct 2015
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Подскажите пожалуйста. Есть задача, реализовать подмену ссылки через код, но на конкретном ресурсе(а именно форум 4PDA)
    Есть рабочий скрипт, его задача подменить отображаемую ссылку, но переход в итоге будет совершен на другую ссылку.
    То есть в посте форума видна ссылка яндекса, при наведении на нее мышкой внизу браузера появляется ссылка яндекса, но при нажатии попадаем на гугл
    На примере яндекса и гугла выглядит так <a href='http://yandex.ru' onClick="this.href='http://google.com'">Яндекс</a>

    Но этот код не работает на форуме 4PDA http://4pda.ru/forum/index.php
    код a href отображается как код, а ссылку на любой сайт он автоматом берет в тэг URL и видоизменяет код. в результате получается бред
    помогите пожалуйста адаптировать корректно код под данный форум?
     
  9. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    237
    Likes Received:
    155
    Reputations:
    0
    Вы парсите сайт?
     
  10. holderFS

    holderFS New Member

    Joined:
    23 Oct 2015
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    нет, цель скрыть партнерскую ссылку, чтобы пользователь видел конечную ссылку(как в тексте поста, так и при наведении мышкой) такой какая она и есть, но в реале он сначала проскакивает через партнерскую короткую ссылку
    я уже видел подобные рабочие примеры на том форуме, но сам не смог сообразить как это реализовать
     
  11. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    Рабочие примеры на том форуме в студию
     
  12. holderFS

    holderFS New Member

    Joined:
    23 Oct 2015
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    легко! http://4pda.ru/forum/index.php?showtopic=691899&view=findpost&p=43914619
    обратите внимание что вы увидите при наведении мышкой на ссылку в его посте, а потом нажимайте на нее и смотрите в адресную строку, в итоге конечно оказывается именно та ссылка что написана в посте, но на самом деле сначала попадаем на партнерскую ссылку
     
  13. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    Там всё довольно просто и прозаично.
    Да, ссылка имеет вид , а редиректит на

    Тут нет изменения статуса при наведении, тут просто внесено изменение в скрипт редиректа форума, чтобы админы через диплинк себе все переходы на алиэкспресс присваивали и имели профит с партнёрки.

    Подсказку ссылки ты не изменишь никак, учитывая то, что это форум на довольно популярном движке
     
    holderFS likes this.
  14. holderFS

    holderFS New Member

    Joined:
    23 Oct 2015
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    ты абсолютно прав. сейчас создал там же пост, ради интереса со ссылкой на али, сразу же по ссылке перешел, переход идет через ту же партнерскую ссылку
    админы гребут бабло лопатой, молодцы
     
  15. Morozina

    Morozina New Member

    Joined:
    15 Nov 2015
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Добрый день, хотел бы узнать, как поменять цвет текста например в таком коде:
    PHP:
    echo 'hello world';
     
  16. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    обернуть текст в HTML-теги и добавить стили
    Например:
    PHP:
    echo '<font style="color: red;">hello world</font>';
    В качестве справочника по HTML и CSS рекомендую ресурс htmlbook.ru
     
  17. MaxFast

    MaxFast Elder - Старейшина

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Как выполнить произвольный PHP код в XSLT шаблоне?
     
  18. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    у меня почему то слетает авторизация после закрытия браузера
    срок куки 365 дней, и они остаются в браузере после открытия, но логиниться приходится по новой
    из-за чего так происходит ?
    этот код проверяет авторизацию на другой странице, куда перемещает после ввода паролей с логином:
    PHP:
    if(!session_id()) session_start();
    if(!
    $_SESSION['enter']){
    session_start();
    session_destroy();
    setcookie ("enter"""1);
    unset(
    $_SESSION["enter"]);
    unset(
    $_COOKIE["enter"]);
    header("Location: login.php");
    die();
    }
    и он срабатывает на уничтожение после закрытия браузера, хотя куки в браузере есть и срок у них действующий

    на странице авторизации вот так создаю:
    PHP:
    $md5name md5(uniqid(rand(),1));
    $value_pass $md5name;
    session_start();
    $_SESSION['enter'] = $md5name;
    setcookie($name_login$value_pass);
    setcookie($name_login$value_pass$set_time);
    setcookie($name_login$value_pass$set_time$_SERVER['PHP_SELF'], ".".$_SERVER['HTTP_HOST'], 1);
    $_SESSION['enter'] = true;
    Header"Location: log_servers.php" );
     
  19. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    Всем привет. Имею такой код
    PHP:
    <?php
    if(!empty($_GET['c'])) {
    $data $_GET['c']. '|';
    $namefile $_SERVER["REMOTE_ADDR"];
    file_put_contents ($namefile$dataFILE_APPEND LOCK_EX);
    }
    ?>
    это для записи введённых данyых в админку vbulletin forum 5
    создаётся отдельный файл с названием ip зверя, но проблема такая, что данные приходят в таком формате
    su|per|p||a|ss|ow|d| и понять где логин, где пароль не сложно, как решить эту проблему, что-бы между логином и паролем был разделитель. Спасибо
     
  20. BabaDook

    BabaDook Well-Known Member

    Joined:
    9 May 2015
    Messages:
    1,063
    Likes Received:
    1,559
    Reputations:
    40
    задача перехватить логин и пароль в открытом виде.
    То есть данные которые в веди а окно авторизации. Грубо говоря кей логер. Но надо что бы данные которые пришли в графу логин были отдельные от пароля