PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (32): В начало « ... 24 25 26 27 28 [29] 30 31 32 »

> Найдено сообщений: 468
tato Отправлено: 31 Марта, 2012 - 09:28:23 • Тема: try{}catch{} • Форум: Объектно-ориентированное программирование

Ответов: 26
Просмотров: 12632
копипаст от сюда -> http://www.phpfaq[dot]ru/debug3


Вообще, механизм исключений предоставляет просто неограниченные возможности по управлению ошибками.
Взять, например, вот такой код:
PHP:
скопировать код в буфер обмена
  1. function exceptions_error_handler($severity, $message, $filename, $lineno) {
  2.     throw new ErrorException($message, 0, $severity, $filename, $lineno);
  3. }
  4. set_error_handler('exceptions_error_handler');


при его использовании наш тестовый пример становится совсем удивительным:
PHP:
скопировать код в буфер обмена
  1. try {
  2.   $handle = fopen($file,'w');
  3.   fwrite($handle, $text);
  4.   fclose($handle);
  5. }
  6. catch (Exception $e) {
  7.   show_error_page();
  8. }

Видишь обработку ошибок? И я нет. А она есть!
fwrite($handle, $text); не выполнится, если fopen отработала с ошибкой.

Правда, применять такой способ следует очень аккуратно, поскольку исключение будет вызвано не там, где мы точно его хотим, а вообще любой ошибкой, даже нотисом на несуществующую переменную.
(Добавление)
и еще про обработку ошибок исключениями http://habrahabr[dot]ru/post/30399/
tato Отправлено: 31 Марта, 2012 - 09:13:25 • Тема: что лучше использовать для хранения логин-пароль?? • Форум: Вопросы новичков

Ответов: 11
Просмотров: 449
Лучше хранить хеш.

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $login = "login";
  4. $password = "123123123";
  5.  
  6. $hash = md5( $login . $password . "justdania" );
  7.  


на выходе в $hash получишь 32 символьный ключ. Соответственно сравниваешь тоже хеш, т.е.
PHP:
скопировать код в буфер обмена
  1.  
  2. $login = $_POST['login'];
  3. $password = $_POST['password'];
  4.  
  5. $match = md5( $login . $password . "justdania" );
  6.  
  7. if( $match === $hash )
  8. {
  9.     echo "Все окай!";
  10. }
  11. else
  12. {
  13.     echo "Введены не верный логин или пароль!";
  14. }
  15.  
tato Отправлено: 31 Марта, 2012 - 09:00:45 • Тема: Как быть с Notice • Форум: Вопросы новичков

Ответов: 21
Просмотров: 671
PHP:
скопировать код в буфер обмена
  1.  
  2.  // TEST 1
  3.  // URI ?login=SomeLogin
  4. $test  = ( isset($_GET['login']) ) ?: "none";
  5. print_r( $test  );
  6.  
  7. echo "<br>";
  8.  
  9.  // TEST 2
  10. $arr = array( "123", "qwe", "test" );
  11. $test2 = ( array_search( "test", $arr ) ) ?: "none";
  12. print_r( $test2 );
  13.  


TEST 1 вернет true, но не SomeLogin т.к. isset возвращает булевое значение
TEST 2 вернет позицию "2" из массива $arr т.к. array_search() возвращает позицию или false если ни чего не найдено.

Вывод.

Фактически мы просто упращаем запись:
PHP:
скопировать код в буфер обмена
  1.  
  2. из
  3. переменная = ( условие ) ? условие : доп. значение;
  4.  
  5. в
  6. переменная = ( условие ) ?: доп. значение;
  7.  


Где может приодиться?
Например с тем же array_search():
PHP:
скопировать код в буфер обмена
  1.  
  2. $pos = ( array_search( "test", $arr ) ) ? array_search( "test", $arr ) : "none";
  3. $pos = ( array_search( "test", $arr ) ) ?: "none";
  4.  

(Добавление)
Цитата:
$input = !empty($_REQUEST['input']) ?: 'default string';


$input будет равно true или default string, но не $_REQUEST['input']
tato Отправлено: 31 Марта, 2012 - 08:15:54 • Тема: удаление папки с вложением, сделал сам • Форум: Вопросы новичков

Ответов: 35
Просмотров: 1105
просто даня пишет:
я буду просить проверить, исправить, дополнить, помочь в целом


Да свершится предначертанное!

просто даня, поверь тебе зла здесь ни кто не желает и большинство с радостью помогут, но и отдача должна быть. За прошедшии три дня Ты создал три темы с вопросом который Тебе разжевали в первый день. Из этого и делается вывод, что Ты не учишся, а копипастой занимаешься.

Цитата:
"программист должен быть ленивый или нечего у него не выйдет"


Очень Важно понимать о чем это. Ленивый программист пишет код так, что бы с каждой строчкой работы становилось меньше. Кстати яркий пример тому ООП - полиморфизм, наследования, все это избавляет от тонн одинакового кода.
Ленивый программист - это тот кто сразу делает с заделом на будущее, а тоскание кусков кода с инетов это ... не буду говорить плохое слово на языке вертится.

И к стати не знаю обратил Ты внимание или нет, но обязательно прочитай про SVN. Это система управления версиями, бэкап если хочешь, а обязательно т.к. Ты только что на этом обжегся.

Я искренне желаю тебе успехов!
tato Отправлено: 30 Марта, 2012 - 18:05:22 • Тема: удаление папки с вложением, сделал сам • Форум: Вопросы новичков

Ответов: 35
Просмотров: 1105

Bio man Я считаю, что крах произашел именно из-за лени, т.к. любой кто хоть треть мана прочитал, да покурил форум ( да ладно еще и у гугля спросил ), как минимум сам напишет удаление директории с файлами. И не надо будет на форумах "халявы" просить.
tato Отправлено: 30 Марта, 2012 - 17:49:12 • Тема: удаление папки с вложением, сделал сам • Форум: Вопросы новичков

Ответов: 35
Просмотров: 1105


Вы понимаете, что он и есть смысл существования govnokod, там ж в каждой строчке - просто даня.
А Мы потом читаем на форумах о том, что php говно и php'шники все просто дани...
tato Отправлено: 30 Марта, 2012 - 17:42:35 • Тема: mysql quary • Форум: Вопросы новичков

Ответов: 4
Просмотров: 175
Используйте PDO.
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $video = "http://www.youtube.com/watch?v=uWjk-ppiaPM";
  4.  
  5. $db = new PDO( "mysql:host=localhost;dbname=dbname", $dbuser, $dbpassword );
  6.  
  7. $stmt = $db->prepare( "INSERT INTO $tb ( ..., video, ... ) VALUES ( ..., :video, ... )" );
  8. $stmt->bindValue( ":video", $video );
  9. if( !$stmt->execute() )
  10. {
  11.     print_r( $stmt->errorInfo );
  12. }
  13.  
tato Отправлено: 30 Марта, 2012 - 17:34:15 • Тема: удаление папки с вложением, сделал сам • Форум: Вопросы новичков

Ответов: 35
Просмотров: 1105
Дарю в честь краха сайта:

PHP:
скопировать код в буфер обмена
  1.  
  2.     function dirRemove( $dir )
  3.     {
  4.         if ( ($objs = glob( "$dir/*" ) ) !== false )
  5.         {
  6.             foreach( $objs as $obj )
  7.             {
  8.                 is_dir( $obj ) ? dirRemove( $obj ) : unlink( $obj );
  9.             }
  10.         }
  11.         rmdir( $dir );
  12.     } // end dirRemove
  13.  
  14. dirRemove( "Имя директории с которой начнется удаление" );
  15.  




просто даня, Я тебе говорил учи? И код говорил по строчкам описать?
Накуя как думаешь?!
А по поводу востановления почитай, что такое SVN и так страшно уже не будет
tato Отправлено: 27 Марта, 2012 - 23:05:28 • Тема: Прокомментировать часть кода • Форум: Вопросы новичков

Ответов: 13
Просмотров: 1753

Bio man, 7 утра вот косяки и порю... спасибо, что поправил.
короче, пойду спать.
tato Отправлено: 27 Марта, 2012 - 22:59:55 • Тема: Добавить, редактировать, удалить запись в MySQL • Форум: Напишите за меня, пожалуйста

Ответов: 1
Просмотров: 72
PHP:
скопировать код в буфер обмена
  1.  
  2. <a href="?delete=id">удалить</a>
  3. <a href="?rewrite=id">редактировать</a>
  4. <a href="?add">Добавить</a>
  5.  


далее обрабатываем $_GET

PHP:
скопировать код в буфер обмена
  1.  
  2. if( isset( $_GET['delete'] ) )
  3. {
  4.     // Удаляем
  5. }
  6.  
  7. if( isset( $_GET['rewrite'] ) )
  8. {
  9.     // редактируем
  10. }
  11.  
  12. if( isset( $_GET['add'] ) )
  13. {
  14.     // добавляем
  15. }
  16.  


пример удаления из БД
PHP:
скопировать код в буфер обмена
  1.  
  2.  // id для примера
  3. $id = "1";
  4.  // Подключение к БД
  5. $db = new PDO("mysql:hostname=localhost;dbname=dbname", 'username', 'password');
  6.  
  7. $stmt = $db->prepare( "DELETE FROM table_name WHERE id=:id" );
  8.  
  9. $stmt->bindValue(":id", $id");
  10.  
  11. if( !$stmt->execute() )
  12. {
  13.     // ошибка хранится в $stmt->errorInfo();
  14.    echo "ошибка базы данных!";
  15. }
  16.  
  17. echo "Успешно удаленно";
  18.  
tato Отправлено: 27 Марта, 2012 - 22:43:22 • Тема: Прокомментировать часть кода • Форум: Вопросы новичков

Ответов: 13
Просмотров: 1753
Да автоматически, после нажатя на сабмит.
Вот он Ваш массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. <input type="hidden"     name="known[PHP]" value="0">
  3. <input type="checkbox" name="known[PHP]" value="0">PHP<br>
  4. <input type="hidden"     name="known[PHP]" value="0">
  5. <input type="checkbox" name="known[Perl]" value="0">Perl<br>
  6. /*
  7. name="known[PHP]" value="0"
  8. name="known[PHP]" value="0"
  9. name="known[PHP]" value="0"
  10. name="known[Perl]" value="0"
  11. */
  12.  

(Добавление)
PHP, PHP, PHP, Perl становятся ключами в массиве known.
0, 0, 0, 0 становятся соответствующими значениями.
Все это отправляется в $_REQUEST/$_POST
tato Отправлено: 27 Марта, 2012 - 22:29:11 • Тема: прикрипление файла к коментарию...... • Форум: Вопросы новичков

Ответов: 9
Просмотров: 331
Цитата:
elseif( isset( $_FILES['attach'] ) )
{
// есть файл, делаем линк
}

дык ссылка у нас совсем в другом файлике......


attach это myfile у вас

Цитата:
if( !isset( $_FILES['attach'] ) && trim( $_POST['comment'] ) == "" )
{
// Ошибка ничего нет
}
ошибки ж не должно быть, в любом случае должно чтото записать
(Добавление)
код ваше немного не понял...


ошибка для примера, можете в этом месте добавить в базу только дату как хотели.
tato Отправлено: 27 Марта, 2012 - 22:09:15 • Тема: прикрипление файла к коментарию...... • Форум: Вопросы новичков

Ответов: 9
Просмотров: 331
1) проверяем isset($_POST['com_submit']) - это введены ли данные, но все же необходимо валидировать каждое поле формы отдельно.
проверяем isset($_FILES) это файл, об этом Я писал выше.
2) это вариант если у нас провалилась проверка $_FILES
3) ВАЖНО! isset($_POST) не правалился, но поле коментария пустое.
4) ну тут все ясно (=

Я бы сделал так:

PHP:
скопировать код в буфер обмена
  1. if( isset( $_POST['comment'] ) )
  2. {
  3.     if( !isset( $_FILES['attach'] ) && trim( $_POST['comment'] ) == "" )
  4.     {
  5.         // Ошибка ничего нет        
  6.     }
  7.     elseif( isset( $_FILES['attach'] ) )
  8.     {
  9.         // есть файл, делаем линк
  10.     }
  11.    
  12.     // пишем в базу
  13.    
  14. }
  15. else
  16. {
  17.     // Вывод формы
  18. }
tato Отправлено: 27 Марта, 2012 - 21:51:54 • Тема: Прокомментировать часть кода • Форум: Вопросы новичков

Ответов: 13
Просмотров: 1753
В $_POST

Выглядет так:

PHP:
скопировать код в буфер обмена
  1. $_POST = array(
  2.     "known" => array(
  3.         "PHP" => "0"
  4.     )
  5. );


Вообще очень полезно делать print_r() и var_dump() все сразу становится ясно (=
tato Отправлено: 27 Марта, 2012 - 21:47:22 • Тема: search in site • Форум: Хранение данных, их вывод и обработка

Ответов: 54
Просмотров: 6938
просто даня, до завтра, Я надеюсб Ты переборешь себя и залезешь в мануал по PHP.

Страниц (32): В начало « ... 24 25 26 27 28 [29] 30 31 32 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB