За последние 24 часа нас посетили 18073 программиста и 1700 роботов. Сейчас ищут 1522 программиста ...

Помогите поменять местами блоки.

Тема в разделе "PHP для новичков", создана пользователем Terminator004, 25 янв 2017.

  1. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    HTML:
    1.    <strong>Логин</strong>:
    2.     <input type="text" name="login" value="<?php echo @$data['login']; ?>">
    3.     </form>
    это должно быть html и там по краям php теги не нужны

    вообще там логику менять нужно, но проще сделать так. Это пожно вынести в template и работать будет. Просто чтобы не дублировать логику на основе установленной сесионной переменной лучше присваивать какой -то класс форме и уже менять поля в js. Можно даже две формы сделать и без js просто display:none на основе того -же условия. Тут изначально проблема в архитектурном решении.
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Мы давно уже просим админа отключить эту байду, но он не хочет. Просто меняйте в ссылке http на https, и стирайте ".php" в конце. И будет все отлично. https://php.net/manual/ru/function.htmlspecialchars
     
    applicab нравится это.
  3. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    меня просто удивила фоновая подмена ссылки на официальные доки, я понимаю был бы попап какой с предложением заменить ссылку, это же не сложно, раз уже реализованно. В таком же виде выглядит как откровенный фишинг и это совершенно не этично :)
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Да вот же. Если бы еще "локальная" дока всегда актуальной была. Но имеем что имеем. Средство борьбы я вам подсказал.
     
    SamyRed и applicab нравится это.
  5. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    У меня проблема.Смотри на картинку :
    [​IMG]
    Там, в самом верху, есть имя пользователя. И почему-то, имя перенеслось в другую строчку, а должна быть возле " Здравствуйте ".
    Что я не правильно сделал ?
    Код:
    PHP:
    1. <?PHP
    2.  
    3. if (!empty($_SESSION['logged_user'])) {?>
    4.     Подключён!<br>
    5.     Здравствуйте, <?php
    6.     echo '<div style="font-weight:bold">'.$_SESSION['logged_user']->login.'</div>';?>
    7.     <hr>
    8.     <?php
    9. } else {
    10.     echo '
    11.       <form method="post">
    12.           <input type="text" name="login" />
    13.           <input type="password" name="pass" />
    14.           <input type="submit" value="Авторизация"/>
    15.       </form>
    16.   ';
    17. }
    18. ?>
     
  6. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    откройте инспектор в браузере и посмотрите на разметку. Ну и никто не зпрещает просто с помощью css это решить.
     
  7. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    И как ты напишешь в css, чтоб ник был возле " Здравствуйте, ".
     
  8. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    перед 'здравствуйте' открывающий div c каким то классом, а после имени его нужно закрыть (т.е. строка будет '<div class="something">Здравствуйте' и заканчивать не .'</div>';, а.'</div></div>';'). Этому диву указать
    white-space: nowrap; должно сработать. Способов может быть много. Главное это добавить div и уже стилями с ним работать.
     
  9. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    ничего не изменилось.
     
  10. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    вы используете google chrome, ctrl+shift+c и клик левой кнопкой мыши на элементе откроет исходники и можно посмотреть что там с разметкой и стилями для данного элемента. Там же можно эксперементировать добавляя стили и смотреть на результат.

    [​IMG]
     
  11. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    Не, этот вариант не подходит, по-всякому попробовал, не переносит.
     
  12. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    ууууууу.... ды тебе еще дальше чем я думал...
     
    SamyRed нравится это.
  13. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    Всё ровно не помогло
     
  14. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    этот варриант подходит для того, чтобы выполнить это действие и показать тут не результат парсинга браузером html, а собственно саму разметку и стили, которые к ней применены. Без этого ответ дать не возможно, а с этим вы тоже сможете посмотреть что же в результате там размеченно и какие стили использованны.
     
  15. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Я уже давно перестал отвечать на его сообщения. По моему, он нас тупо тролит. Я не верю что в 16 лет можно быть таким тупым...
     
  16. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    в смысле это не бот? а я был восхищен его интелектуальным уровнем )))) Раз так, то думаю справится. Уже ответ нашел по сути, поспит и все сделает.
     
    SamyRed нравится это.
  17. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Ну это физика блочного элемента такая. Замени дим на спан, например, или добавь этому диву display: inline-block, лиюл inline
     
  18. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    Всё, я понял в чём проблема, Из-за дива строка переносилась, сделал таким образом:
    PHP:
    1. <?PHP
    2. if (!empty($_SESSION['logged_user'])) {?>
    3.     Подключён!<br>
    4.    <div> Здравствуйте, <?php
    5.     echo '<strong>'.$_SESSION['logged_user']->login;?>
    6.     <hr>
    7.     <?php
    8. } else {
    9.     echo '
    10.       <form method="post">
    11.           <input type="text" name="login" />
    12.           <input type="password" name="pass" />
    13.           <input type="submit" value="Авторизация"/>
    14.       </form>
    15.   ';
    16. }
    17. ?>
    --- Добавлено ---
    бляха, забыл закрыть </strong>
    --- Добавлено ---
    Вот, теперь всё ок.
    PHP:
    1. <?PHP
    2. if (!empty($_SESSION['logged_user'])) {?>
    3.     Подключён!<br>
    4.    <div> Здравствуйте, <?php
    5.     echo '<strong>'.$_SESSION['logged_user']->login;?></strong>
    6.     <hr>
    7.     <?php
     
  19. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    не ну нафига так просто, он еще даже не дошел до момента когда придется выяснять добавит ли вывод echo перевод строки.
    ну вот все просто. В этом и суть. Там и инлайн стили использовать совсем не надо было. Но важно было это понять. А теперь когда вы это все поняли, стоит еще запомнить простую истину... не делайте так. Вам нужно немного почитать о ООП и всякой модной хрени.
     
  20. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Я уже говорил, ещё раз повторю: он нихера не поймёт. И точка.
     
  21. applicab

    applicab Активный пользователь

    С нами с:
    14 июл 2014
    Сообщения:
    73
    Симпатии:
    18
    так он же решил задачу ))) при чем сам.
     
  22. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Ну да, сам. Я ему готовое решение написал. Нужно было только свои формы вставит. И то он не сразу понял
     
    applicab нравится это.
  23. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    Урааа, сумел сделать !! Теперь когда авторизуюсь, так преподает форма авторизации и вместо неё информация про пользователя. Если нажму " отключиться ", так форма возвращается

    Спасибо, SamyRed
     
  24. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Если бы он еще толком понимал, как он решил и что сделал...Метод тыка, копипаст-кодинг, отсутствие попыток анализа происходящего и логики написанного. И нежелание это исправлять. Грустно. С таким упорством мог бы многому научиться, если бы учился, а не тыкался.
     
    SamyRed нравится это.
  25. Terminator004

    Terminator004 Новичок

    С нами с:
    1 дек 2016
    Сообщения:
    195
    Симпатии:
    1
    Я даже ничего не копировал! Только немного. А в тот код, который он мне дал, я вставлял другие php скрипты и формы авторизации. Даже можно сказать, что он не совсем и дал мне этот код. Потому что, я такой похожий код, написал в этой теме, а он его просто поправил. Так что, я тоже старался искать коды и потом всё заполнил.
    --- Добавлено ---
    Думаешь я не понимаю, что я пишу? Если хочешь, могу тебе объяснить, что обозначают команды этого кода!
    PHP:
    1. <div id="useri"
    2. <?PHP
    3. if (!empty($_SESSION['logged_user'])) {?>
    4.     Подключён!<br>
    5.    <div> Здравствуйте, <?php
    6.     echo '<strong>'.$_SESSION['logged_user']->login;?></strong>
    7.     <hr>
    8.     <?php if( isset($_SESSION['logged_user'])) : ?>
    9.     <a href="logout.php">Отключиться</a>
    10.     <?php else : ?>
    11. <a href="index.php"></a><br>
    12. <?php endif; ?>
    13. <div>
    14.     <?php
    15. } else {
    16. echo '
    17.        <div id="forma">
    18.       <form method="post">
    19.       <div id="log_in">Логин:</div>
    20.           <input type="text" name="login" /><br>
    21.            <div id="parol">Пароль:</div>
    22.           <input type="password" name="password" /><br>
    23.           <button type="submit" name="do_login" class="but">Войти</button><br><br>
    24.            <a href="password.php">Забыли пароль?</a><br><br><a href="signup.php">Регистрация</a>
    25.       </form>
    26.       </div>
    27.   ';
    28. }
    29. ?>
    Ну так, команда
    PHP:
    1. if (!empty($_SESSION['logged_user'])) {?>
    Значит что: Если пользователь успешно авторизовался, так ему выдаёт Здравствуйте, тогда
    PHP:
    1.   echo '<strong>'.$_SESSION['logged_user']->login;?></strong>
    Это команда выводит его логин, то-есть уже : Здравствуйте, ЛОГИН. Ну там тогда идёт команда про выход из аккаунта. Потом, от сюда :
    PHP:
    1. <?php
    2. } else {
    3. echo '
    4.        <div id="forma">
    5.       <form method="post">
    6.       <div id="log_in">Логин:</div>
    7.           <input type="text" name="login" /><br>
    8.            <div id="parol">Пароль:</div>
    9.           <input type="password" name="password" /><br>
    10.           <button type="submit" name="do_login" class="but">Войти</button><br><br>
    11.            <a href="password.php">Забыли пароль?</a><br><br><a href="signup.php">Регистрация</a>
    12.       </form>
    13.       </div>
    Тут написано что, если не верно, то-есть он не авторизирован, так выводиться форма авторизации.