Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


WebCM
Napisane: 2.08.2012, 21:15:31





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

  1. funkcja();
  2. $wynik = ob_get_contents();
  Forum: Przedszkole · Podgląd postu: #982714 · Odpowiedzi: 2 · Wyświetleń: 214

WebCM
Napisane: 2.08.2012, 17:29:11





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

  1. $output = iconv('ISO-8859-2', 'UTF-8', $wynik);
  Forum: Przedszkole · Podgląd postu: #982664 · Odpowiedzi: 2 · Wyświetleń: 234

WebCM
Napisane: 2.08.2012, 13:19:24





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Wyłącz short_open_tag w php.ini albo wypisz deklarację za pomocą PHP:
  1. <?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
  Forum: Przedszkole · Podgląd postu: #982609 · Odpowiedzi: 1 · Wyświetleń: 202

WebCM
Napisane: 2.08.2012, 12:34:53





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

  1. <form action="stronadocelowa.php" method="post">
  2. <input type="checkbox" name="faktura[12345]">
  3. <input type="checkbox" name="faktura[67890]"> <!-- zamiast 67890 wklejasz numer faktury -->
  4. <input type="submit" value="Drukuj zaznaczone">
  5. </form>
  1. if(isset($_POST['faktura']))
  2. {
  3. foreach($_POST['faktura'] as $numer=>$x)
  4. {
  5. drukuj($numer);
  6. }
  7. }
  Forum: Przedszkole · Podgląd postu: #982597 · Odpowiedzi: 2 · Wyświetleń: 234

WebCM
Napisane: 2.08.2012, 12:26:17





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Możesz pobrać ID użytkownika nawet wewnątrz transakcji. Jeżeli używasz MySQL, wybierz typ tabel InnoDB, bo MyISAM nie obsługuje transakcji. Wygląda to tak:
  1. try
  2. {
  3. $db->beginTransaction();
  4. $zapytanie = $db->prepare('INSERT INTO tabela (pole) VALUES (:pole)');
  5. $zapytanie->execute(array('pole' => 'wartość'));
  6. $id = $db->lastInsertId(); //lub: $db->lastInsertId('nazwa_sekwencji');
  7. $db->query('INNE ZAPYTANIE');
  8. $db->commit();
  9. }
  10. catch(PDOException $e)
  11. {
  12. $db->rollBack();
  13. }
  Forum: Przedszkole · Podgląd postu: #982589 · Odpowiedzi: 2 · Wyświetleń: 263

WebCM
Napisane: 1.08.2012, 15:51:01





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

PHP ma wygodną funkcję json_encode do zamiany tablicy na format JSON. Skorzystaj z niej.
  Forum: Przedszkole · Podgląd postu: #982423 · Odpowiedzi: 3 · Wyświetleń: 217

WebCM
Napisane: 1.08.2012, 15:43:23





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Nigdy nie ufaj danym pochodzącym z zewnątrz. Równie dobrze można wpisać ten adres bezpośrednio do pola adresu. Jest jeszcze możliwy inny atak:
  1. <img src="panel.php?edit=1 OR 1=1">
Albo specjalnie przygotowana strona, która będzie wykonywać różne akcje (dodaj, usuń, edytuj) w twoim serwisie. Poczytaj na forum o sposobach zabezpieczenia przed atakiem CSRF.
  Forum: PHP · Podgląd postu: #982420 · Odpowiedzi: 3 · Wyświetleń: 219

WebCM
Napisane: 1.08.2012, 15:16:18





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Usuń 3 i 4 linijkę. W tym miejscu wyślij nagłówek, który przekieruje na właściwą stronę:
  1. header('Location: index.php');
W linii 2 nie zabezpieczasz zapytania przed atakiem SQL Injection. Zmienna $_GET['edit'] może zawierać wszystko, np. 1 OR 1=1 w wyniku czego zapytanie może przyjąć postać:
  1. DELETE FROM users WHERE id = 1 OR 1=1
Użyj mysql_real_escape_string albo mechanizmu podpinania dostępnego w bibliotekach MySQLi i PDO.
  Forum: PHP · Podgląd postu: #982414 · Odpowiedzi: 3 · Wyświetleń: 219

WebCM
Napisane: 21.05.2011, 19:45:02





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Pole typu checkbox jest zaznaczone (1) albo nie jest (0). Innej możliwości nie ma. Sprawdzasz to tak:
  1. if(isset($_POST['nazwa_pola']))
  2. {
  3. echo 'Pole jest zaznaczone';
  4. }
  5. else
  6. {
  7. echo 'Pole nie jest zaznaczone';
  8. }
  9.  
  10. //Czyli w twoim przypadku
  11. if (isset($_POST['same']))
  12. {
  13. /* dalszy kod */
  14. }

PS. Podręcznik PHP nie wspomina o polach typu checkbox. W ogóle mało o obsłudze formularzy. To powinno być podstawowe źródło wiedzy, dlatego takie luki są niedopuszczalne. Ktoś im przypomni?
  Forum: Przedszkole · Podgląd postu: #865355 · Odpowiedzi: 6 · Wyświetleń: 829

WebCM
Napisane: 26.04.2011, 12:23:33





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

  1. date('d M Y G:i:s', strtotime('1 Jan +20 Mon'));
  2. date('d M Y G:i:s', strtotime('20 Monday, Jan 2011'));
  3. date('d M Y G:i:s', strtotime('2011-W20-1')); //znaleziony w komentarzach
Wyświetli 20 poniedziałek roku, ale to będzie 21 tydzień. Możesz zmniejszyć do +19. Testowane na XP SP3, PHP 5.3
  Forum: PHP · Podgląd postu: #858421 · Odpowiedzi: 8 · Wyświetleń: 807

WebCM
Napisane: 28.05.2010, 16:27:13





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Jeśli umieszczasz $ wewnątrz apostrofów, nie musisz zamieniać $. Ewentualnie składnia alternatywna w PHP 5.3:
  1. $zmienna = <<<'KOD'
  2. Pisz tutaj, co chcesz bez zamienników
  3. KOD;

A tutaj masz przykład, jakie zamienniki stosować dla ciągów tekstowych w PHP.
  Forum: PHP · Podgląd postu: #750836 · Odpowiedzi: 3 · Wyświetleń: 1 009

WebCM
Napisane: 28.05.2010, 15:48:05





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Zobacz: file_put_contents - po co bawić się z C-owym fopen(), fwrite()...?
  1. file_put_contents('nazwapliku', '<?php echo \'tekst tekst\'; ?>', 2);
  Forum: PHP · Podgląd postu: #750827 · Odpowiedzi: 3 · Wyświetleń: 1 009

WebCM
Napisane: 27.02.2010, 11:19:53





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

No niestety, PHP nie obsługuje wielowątkowości.

Z tego, co widzę, nie musisz nigdzie przekierowywać, chyba że nie chcesz mieszać kodu PHP z HTML-em.

  1.  
  2. //tutaj kod przetwarzający linka z wrzuty
  3.  
  4. header('Location: adres_innej_podstrony'); //nie wpisuj tu kodu HTML, tylko pełny adres
  5. echo '<a href="adres_innej_podstrony">tytuł linku</a>'; //na wypadek, gdyby przekierowanie nie zadziałało
  6. flush(); //ewentualnie użyj tej funkcji
  7. copy();

Twoja decyzja, jak to rozwiążesz. Możesz użyć także register_shutdown_function, aby opóźnić operację, jeśli nie chcesz przekierowywać albo nie możesz wyświetlić innej podstrony instrukcją echo() wewnątrz kodu PHP.
  Forum: PHP · Podgląd postu: #718325 · Odpowiedzi: 9 · Wyświetleń: 1 016

WebCM
Napisane: 27.02.2010, 00:00:44





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Po wysłaniu nagłówka wywołaj:
Jeżeli wyświetli się FALSE, trzeba zmusić serwer, aby wysłał nagłówki. Po wywołaniu header() pokombinuj z funkcją flush albo wyślij cokolwiek do przeglądarki za pomocą instrukcji echo, np. pusty ciąg tekstowy. Na pewno są lepsze sposoby oprócz wyżej wymienionych.

Ostatecznie zostaje register_shutdown_function, ale możesz doświadczyć braku możliwości dostępu do plików (ewentualnie wtedy podaj pełną ścieżkę, taką, jaka jest widoczna w systemie).
  Forum: PHP · Podgląd postu: #718282 · Odpowiedzi: 9 · Wyświetleń: 1 016

WebCM
Napisane: 13.02.2010, 15:34:17





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Spróbuj tak:
Kod
otworz_okno('include/detale-klienta.php?id=1', 'detaleklienta', 'width=555,height=122,scrollbars=yes')

Jeżeli zaś zależy Ci na wycentrowaniu okna - u siebie robię to tak:
Kod
function okno(url, width, height)
{
    return open(url, '', 'scrollbars=yes,width='+width+',height='+height+',top='+(screen.height-height)/2+',left='+(screen.width-width)/2)
}

Drugi argument (nazwa - detaleklienta) można pominąć. Wtedy zawsze strona będzie otwierana w innym oknie.
  Forum: JavaScript · Podgląd postu: #712945 · Odpowiedzi: 2 · Wyświetleń: 836

WebCM
Napisane: 22.07.2009, 19:55:47





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

  1. <?php
  2. echo parent::$nazwa;
  3. ?>
  Forum: Przedszkole · Podgląd postu: #638624 · Odpowiedzi: 6 · Wyświetleń: 1 280

WebCM
Napisane: 20.12.2008, 18:00:57





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Znacznik <?php jest prawdopodobnie traktowany jako HTML. Użyj var_dump(), aby zobaczyć zawartość. Jeśli to nie pomoże, to htmlspecialchars().
  Forum: PHP · Podgląd postu: #549658 · Odpowiedzi: 1 · Wyświetleń: 872

WebCM
Napisane: 2.11.2008, 23:13:15





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Po prostu do nazwy zmiennej dodajesz nawiasy. smile.gif Ewentualnie parametry w środku, jeśli trzeba.
  1. <?php
  2. $zmienna();
  3. $this->wlasnosc($a,$b,$c);
  4. ?>
  Forum: PHP · Podgląd postu: #532516 · Odpowiedzi: 9 · Wyświetleń: 2 823

WebCM
Napisane: 2.11.2008, 23:00:53





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Zobacz: create_function" title="Zobacz w manualu PHP" target="_manual
A jak nie, to przekaż tylko:
  1. <?php
  2. $form->onSubmit = 'submit';
  3.  
  4. //A w klasie:
  5. $this->onSubmit()
  6. ?>
  Forum: PHP · Podgląd postu: #532511 · Odpowiedzi: 9 · Wyświetleń: 2 823

WebCM
Napisane: 8.10.2008, 18:09:50





Grupa: Zarejestrowani
Postów: 375
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----

Źle użyłeś instrukcji isset i źle odczytujesz dane z POST. Zakładamy, że $_POST['status'] zawsze istnieje, a więc:
  1. <?php
  2. switch($_POST['status'])
  3. {
  4. case 'firma':
  5.  /* kod dla firmy */
  6.  break;
  7. case 'osoba prywatna':
  8.  /* kod dla osoby prywatnej */
  9.  break;
  10. default: /* słowo default można w ogóle pominąć, jeśli nie wykonujesz innych akcji */
  11. ?>
  Forum: PHP · Podgląd postu: #524279 · Odpowiedzi: 3 · Wyświetleń: 888


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 10:57