За последние 24 часа нас посетили 19405 программистов и 1665 роботов. Сейчас ищут 1117 программистов ...

Мусор из FAQ

Тема в разделе "PHP для новичков", создана пользователем Anonymous, 27 дек 2007.

  1. reproduce case сделай.
     
  2. Рубик

    Рубик Активный пользователь

    С нами с:
    30 дек 2008
    Сообщения:
    9
    Симпатии:
    0
    Извини, не понял
     
  3. «reproduce case» - минимальные условия для воспроизведения проблемы. Минимальный код в 20-25 строк, который можно скопировать, запустить, и он наглядно продемонстрирует проблему. Тогда тебе помогут. А сидеть и гадать, что и где у тебя могло бы быть написано — никто не будет. Вопрос надо задавать так, что бы хотелось помочь. Я обычно хочу помогать лишь тем, кто проделал достаточно действий, для того, что бы решить проблему самому. И не только я. Дополнительным бонусом будет то, что довольно часто при попытке создания reproduce case «внезапно» находится ошибка.
     
  4. wwwww

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

    С нами с:
    18 фев 2009
    Сообщения:
    1
    Симпатии:
    0
    Вот линк понастройке денвера http://wes50.blog.tut.by/kak-sozdat-svoj-sajt/ - делаю вроде всё как надо, но в уроке 7 вместо нормального изображения страницы появляется такое:
    [​IMG]
    Что делать?
     
  5. wwwww, обратиться к автору статьи.
     
  6. LONGMAN

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

    С нами с:
    9 фев 2009
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Tbilisi, Georgia
    У меня такой вопрос, в классе mysql хочу добавить время выполнении этих запросов и вывести на странице в месте с времени генерации страницы. Вопрос таков, подсчитать время только mysql_query или добавить и mysql_fetch_array, mysql_fetch_rows, mysql_fetch_object, mysql_num_rows и mysql_affected_rows?
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    не занимайся херней. оно никому не надо. если не оптимизируешь, но там другие методы.
    я потешить свои амбиции и гениальность - так это на cosmo.ru
     
  8. GudGuy

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

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    странный вопрос... либо ты понмаешь что ты меришь (скорость ЭСКУЭЛЬ запрос, время его обработки в хпх etc), либо не стоит выставлять на показ получившиеся астрономические числа...
     
  9. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Вопрос по мускулу.

    ORDER BY num DESC

    там в столбиках значения от 1 до 100.

    Не понимаю почему он неправильно отображает данные - 9 и 99 стоят рядом, тогда как 1 и 10 также...

    надо так:

    .
    .
    .
    20
    19
    .
    .
    .
    11
    10
    .
    .
    .
    3
    2
    1

    вобщем по порядку в обратную.
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а какой тип поля? пойди varchar?
    =)
     
  11. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    нет. text
     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а с какого ты хочешь чтобы у тебя TEXT сортировался как INT?
    иди подумай...
     
  13. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    действительно...
    пойду подумаю
     
  14. ShuteRR

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

    С нами с:
    26 мар 2009
    Сообщения:
    1
    Симпатии:
    0
    Подскажите как сдлеать коментарии чтобы люди оставляли коменты к файлу?
     
  15. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Берешь БД, создаешь таблицы с комментами, где будет id файла, увязываешь с таблицей файлов по id файла, и делаешь.
     
  16. anubis

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

    С нами с:
    28 мар 2009
    Сообщения:
    41
    Симпатии:
    0
    Люди подскажите или ссылку киньте где почитать как сделать определенное количество постов на странице.Ограничить количество постов я смогу а вот проблема состоит с созданием новой страницы. :))
     
  17. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Когда-то делал гостевую книгу, так что могу предложить такой свой алгоритм разбивки по страницам.
    PHP:
    1. <?php
    2. $msgQuantity =    // общее количество постов
    3. $msgMaxOnPage =    // количество постов на странице
    4. $pagesQuantity = intval(($msgQuantity - 1) / $msgMaxOnPage) + 1;   // Количество страниц
    5. if(!is_numeric($_GET['page'])) $_GET['page'] = 1;   // На всякий случай
    6. $pageNumber = intval($_GET['page']);  // номер страницы, получаем из массива $_GET
    7. // Выводим строку со списком страниц
    8. $textOut = "Страницы: ";
    9. for ($loopIndex = 1; $loopIndex <= $pagesQuantity; $loopIndex++) {
    10.   $textOut .= "<a href='" . $_SERVER["PHP_SELF"] . "?page=" . $loopIndex . "'> [" . $loopIndex . "] </a> ";
    11. }
    12. // Выводим сообщения
    13. $msgStart = $pageNumber * $msgMaxOnPage - $msgMaxOnPage + 1;
    14. $msgEnd = $pageNumber * $msgMaxOnPage;
    15. if($msgEnd > $msgQuantity) $msgEnd = $msgQuantity;
    16. $textOut .= "<br><br>";
    17. for ($loopIndex = $msgStart; $loopIndex <= $msgEnd; $loopIndex++) {
    18.   $textOut .= "<b>Сообщение " . $loopIndex . ":</b> ";
    19.   $textOut .= "";   // Загружаем из массива с постами нужный пост (с номером $loopIndex)
    20.   $textOut .= "<br><br>";
    21. }
    22. echo $textOut;
    23. ?>
     
  18. anubis

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

    С нами с:
    28 мар 2009
    Сообщения:
    41
    Симпатии:
    0
    sobachnik
    Спасибо большое.За помошь.
     
  19. cavid

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

    С нами с:
    11 апр 2009
    Сообщения:
    8
    Симпатии:
    0
    Zdrastvuyte, ya novicok na php i mnoqoe eshe ne znayu. Ya napisal takoy kod

    ----------------------------------------------------------------------------------------<?php
    <?php
    $pass[]="123456";
    $pass[]="12356";
    $pass[]="1234567";
    $pass[]="23456";
    $pass[]="12z3456";
    function showForm()
    {
    echo "<form method=\"post\" action=\"\"><input type=\"text\" name=\"password\"><input type=\"submit\" name=\"doLogin\" value=\"Vxod\"></form>";
    }

    if (isset($_POST['doLogin']) && isset($_POST['password']))
    {
    $_POST['password']=trim($_POST['password']);
    if ($_POST['password']!="")
    {
    if(in_array($_POST['password'],$pass))
    {
    echo "Privet";
    exit();
    }
    else
    {
    echo "Oshibka";
    showForm();
    }

    }
    else
    {
    echo "Parol ne mojet bit s probelom!";
    showForm();
    }
    }
    else
    {
    showForm();
    }
    ?>
    ------------------------------------------------------------------------------------------

    Eto dlya toqo chtobi koqda polzovatel otkroet index, ot neqo trebuyutsa parol kotorie lejitsa na array. Esli on napishit verniy parol, to on mojet vxodit v sayt, esli net, to ne mojet. Sejchas mne nujen sdelat tak chtobi dlya kajiy parol bil 2 popitka. Esli polzovotel napishit odinakoviy parol 3 raz, to stranicha vidal oshibka. To est posle vtorova popitka parol na array bil udalen.

    POMOQİTE POJALUSTA,MNE ETOT KOD OCHEN NUJEN
     
  20. Jensi

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

    С нами с:
    9 апр 2009
    Сообщения:
    299
    Симпатии:
    0
    Я давно ещё так писал(когда начал только изучать PHP), поэтому там нет exit(); и обрезания пробелов - trim ну и ещё некоторого,а сейчас лень переделывать скрипт:)
    PHP:
    1. <form action="index.php" method="POST">
    2. <input type="text" name="us" value=""><BR>
    3. <input type="password" name="ps" value=""><BR>
    4. <input type="submit" value="OK">
    5.  
    6. <?php
    7.  
    8. $us=$_POST['us']; //это вам не требуется знать
    9. $ps=$_POST['ps'];//это вам не требуется знать
    10.  
    11. $user[0]="BOY"; //Можно изменить на свой логин
    12. $pass[0]="1111"; //Ваш пароль от логина
    13.  
    14. $user[1]="Kanaris";//Можно изменить на свой логин
    15. $pass[1]="2222";//Ваш пароль от логина
    16.  
    17. $user[2]="DUX";//Можно изменить на свой логин
    18. $pass[2]="3333";//Ваш пароль от логина
    19.  
    20. $user[3]="w00[w00]";//Можно изменить на свой логин
    21. $pass[3]="4444";//Ваш пароль от логина
    22.  
    23. $user[4]="morty10";//Можно изменить на свой логин
    24. $pass[4]="5555";//Ваш пароль от логина
    25. //Далее проверка пассов и логинов
    26. if( $user[0]!=$us or $pass[0]!=$ps ) {
    27. if( $user[1]!=$us or $pass[1]!=$ps ) {
    28. if( $user[2]!=$us or $pass[2]!=$ps ) {
    29. if( $user[3]!=$us or $pass[3]!=$ps ) {
    30. if( $user[4]!=$us or $pass[4]!=$ps ) {
    31.        
    32.         echo"Иди нахер отсюда ,{$us} <BR>"; //ха-ха-ха
    33.         $agent = $_SERVER['HTTP_USER_AGENT'];//Выводим браузер юзера
    34.         $dat = date('D:H:i:s');//дата
    35.         $ref = $_SERVER['HTTP_REFERER'];//ссылка,откуда юзер "пришёл" на сайт
    36.         $ip = $_SERVER['REMOTE_ADDR'];//IP адрес      
    37.         @$fil= fopen("log.txt","a");//открытие файла
    38.         $uri = $_SERVER['REQUEST_URI'];
    39.         $size = filesize("log.txt");//Определяем размер(вес) файла
    40.         $line= "Вес файла - $size| Дата - $dat | Айпи - $ip | Реферрер - $ref | Браузер -  $agent |Логин - $us +++ Пасс - $ps  | $uri | \n";
    41.         @fwrite ($fil,$line);//запись
    42.         @fclose($fil);//закрываем
    43.         echo"Пасс/логин не верны!"; //ну,не угадал он пасс и/или логин.
    44.     } } } } } else {
    45.         echo"Добро пожаловать,{$us}!";    //При успешном входе
    46.         }  
    47.    
    48. ?>
    Так и без этого будет выведена ошибка.Может нужно банить юзера на время,если он 3 раза не правильно введёт пассворд?(так просто лучше будет)
     
  21. cavid

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

    С нами с:
    11 апр 2009
    Сообщения:
    8
    Симпатии:
    0
    Vidno ne ponyali menya xorosho

    Sposibo chto popitalis pomoc. No k sojelaniyu eshe ne moqli. ((((
    Moy kod dlya testirovanie studenti. Esli oni xotyat proverit sebya, to doljni vxodit v sayt. A bez paroli ne mojet ne kto vxodit. Chtobi polucit parol, oni kupit kartocka, tam napisanno цыфры i etom poluchatel polzuyutsa tolko 2 raza. Esli oni voshli v sayt vpervie, u nix ostaetsa 1 popitok eshe, a esli popitki koncilis, to polucatel doljen kupit novuyu kartu chtobi popast v sayt.
    Pojalusta, pomoqite mne reshit etoqo problema. Ochen ochen bloqadaren zaranee :(
     
  22. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    cavid
    если хранить список паролей и количиство входов по этому паролю в базе данных или, хотя бы, в файле, то при каждом входе уменьшать количетво возможных входов, а если == 0, то просто удалять
     
  23. cavid

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

    С нами с:
    11 апр 2009
    Сообщения:
    8
    Симпатии:
    0
    A ya ne razbirayus v MYSQLe. Poetomu ne moqu tak napisat.
    A vot pishu tak
    ------------------------
    if(in_array($_POST['password'],$pass))
    {
    echo "Privet";
    exit();
    unset(in_array($_POST['password']));
    }
    ------------------------
    No eto ne deystvuet
     
  24. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    как-то так. С файлом.

    данные хранятся в виде
    123|2
    321|2
    213|2

    и т.д. Пароль|сколько раз можно ещё использовать. Каждая запись с новой строки. Файл, естественно, должен быть открыт для записи

    страница авторизации
    PHP:
    1. <?php
    2. // путь к файлу с паролями
    3. $path = 'passwords.txt';
    4. // адрес страницы, на которую пересылать после авторизации
    5. $page = 'http://sandbox/page.php';
    6.  
    7. if(strtoupper($_SERVER['REQUEST_METHOD'])=='POST'){
    8.    // если ввели пароль
    9.     if(isset($_POST['password']) && ! empty($_POST['password'])){
    10.         $passwords = array();
    11.         $tmp_pass = array();
    12.         $doLogin = false;
    13.     // читаем пароли и кол-во заходов в массив
    14.         $passwords = file($path);
    15.  
    16.         foreach($passwords as $k=>$v){
    17.             //  $tmp_pass = array(0 => пароль, 1 => заходы)
    18.             $tmp_pass = explode('|',$v);
    19.             $tmp_pass[1] = trim($tmp_pass[1]);
    20.  
    21.             // проверяем пароль и сколько раз его использовали
    22.             if($tmp_pass[0] == $_POST['password'] && $tmp_pass[1]>0){
    23.  
    24.                 // если всё в порядке, то уменьшаем количество разрешённых заходов на 1
    25.                 $passwords[$k] = $tmp_pass[0].'|'.(--$tmp_pass[1]);
    26.                 $doLogin = true;
    27.                 break;
    28.             }
    29.         }
    30.         if($doLogin){
    31.             $_SESSION['auth']=true;
    32.             // обновляем данные в файле
    33.             file_put_contents($path,implode("\r\n",$passwords));
    34.             // редиректим на страницу для авторизованных
    35.             header('Location: '.$page);die;
    36.         }
    37.         $error = 'Ваш пароль не подходит';
    38.     }
    39.     else{
    40.         $error = 'Введите пароль';
    41.     }
    42. }
    43. ?>
    44. <form method="post">
    45.    <?=isset($error)?$error.'<br />':null?>
    46.     Пароль: <input name="password" type="password" /> <input type="submit" name="go" value="Войти" />
    47. </form>
    48.  
    страница для авторизованных
    PHP:
    1. <?php
    2. if(isset($_SESSION['auth'])){
    3.     // показываем что надо
    4. }
    5. else{
    6.     die('Страница только для авторизованных пользователей');
    7. }
    8. ?>
     
  25. cavid

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

    С нами с:
    11 апр 2009
    Сообщения:
    8
    Симпатии:
    0
    Prejde vsego sposibo chto teryali vremya. Vrode rabotaet. No owibki mnoqie. Eshe na tekstovom dokumenta bivaet ochen mnoqie pustie stroki, esli ya zasunu tuda 100 000 parol, to Boq znaet chto budit.
    Znayu chto bespokoyu, no mne etot kod ochen nujna, mojete bez oshibki napisat snova (((
    [/img]