Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


Athlan
Napisane: 26.12.2010, 17:57:51





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Jeżeli jest to zmienna publiczna i statyczna, możesz się do niej odwoływać w sposób następujący:

  1. class core
  2. {
  3. public static $a = '';
  4. }
  5.  
  6. core::$a = 'aa';
  7. var_dump(core::$a);
  Forum: Object-oriented programming · Podgląd postu: #820597 · Odpowiedzi: 3 · Wyświetleń: 861

Athlan
Napisane: 27.12.2010, 21:37:46





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Skutków ubocznych nie ma. Poziom notice m.in. to informacja, że próbujesz dodać coś do niezadeklarowanej wcześniej zmiennej. Język PHP ma tę zaletę (lub w wielu przypadkach wadę), że można nie deklarować zmiennych i się do nich odwoływać. Nie jest to dobra praktyka, ale pehap taki już jest, tak samo nie ma czegoś takiego jak typy danych przy zmiennych - każda zmienna = każdy typ.

Wystarczy, że gdzieś na początku kodu dodasz:
  1. error_reporting(E_ALL & ~E_NOTICE); // kopia z manuala, trochę ambicji...


Skutki uboczne natomiast wygenerujesz sobie, gdy będziesz miał wyłączone error_display. Wtedy do błędów nie dotrzesz, pozostaną tylko logi serwera.

Pamiętaj na przyszłość (może nie w tym przypadku):
Cytat
Note:

Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.
  Forum: PHP · Podgląd postu: #821040 · Odpowiedzi: 14 · Wyświetleń: 1 066

Athlan
Napisane: 27.12.2010, 19:30:59





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Cześć,

ukryj error_reporting, aby nie pokazywało noticów, lub zadeklaruj z początku lastRSS::$rsscp = null; (jeżeli niepotrzebne).
  Forum: PHP · Podgląd postu: #820981 · Odpowiedzi: 14 · Wyświetleń: 1 066

Athlan
Napisane: 26.12.2010, 18:11:10





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Wydaje mi się, że Twoje wszystkie problemy rozwiąże parse_url sprawdzając odpowiednie elementy, które zostają zwrócone w tablicy (patrząc na Twoje flagi).

Pomimo zaleceń:
Cytat
This function is not meant to validate the given URL, it only breaks it up into the above listed parts. Partial URLs are also accepted, parse_url() tries its best to parse them correctly


Działa bardzo dobrze.
  Forum: PHP · Podgląd postu: #820602 · Odpowiedzi: 1 · Wyświetleń: 489

Athlan
Napisane: 6.02.2010, 16:09:48





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Na 100% masz rozbieżność między kodowaniem połączenia, kodowaniem tabel lub kodowaniem wysyłanych (odbieranych) danych. Sprawdź wysyłane dane.
  Forum: Bazy danych · Podgląd postu: #710227 · Odpowiedzi: 4 · Wyświetleń: 948

Athlan
Napisane: 28.01.2009, 17:35:44





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Aby mieć każdy mail w osobnym rekordzie (nie komórce) musisz użyć funkcji imap_sort(), która pobiera wszystkie wiadomości ze skrzynki. Otrzymasz tablicę z ID'ami poszczególnych wiadomości.

Teraz wykonujesz na tej tablicy foreach lub dowolną pętlę (wskazana, którą wymieniłem) i pobierasz nagłówki oraz body wiadomości, każdy z maili zapisujesz INSERT INTO do bazy jako osobny rekord. Kluczem rekordu powinien być też klucz ID wiadomości ze skrzynki - zapobiegnie to ewentualnemu dublowi. Do wyciągnięcia body używasz imap_fetchbody(), a do headerów imap_header().

Najlepiej po sprawdzeniu, czy zapis do bazy powiódł się, wywalić wiadomość ze skrzynki, żebyś nie musiał potem sprawdzać, czy istnieje i pobierać ją (wydłużać tego arraja). W tym celu oznaczasz wiadomość do usunięcia w foreach funkcją imap_delete() podając aktualny ID. Po zakończeniu pętli musisz wykonać funkcje, aby te wiadomości zniknęły: imap_expunge().

Kończysz imap_close() i gotowe. Ja do tego mam klasę, którą sobie napisałem, możesz wyciągnąć z niej jakieś kawałki:

  1. <?php
  2.  
  3. class Vframe_Mail_Inbox_Engine_Imap extends Vframe_Mail_Inbox_Engine
  4. {
  5.  protected
  6.    $_rConnection = null;
  7.  
  8.  public function connect($sServer, $sUser, $sPass, $iPort = 110, $sProtcol = 'pop3')
  9.  {
  10.    if(!($this->_rConnection = imap_open('{'.$sServer.':'.$iPort.'/'.$sProtcol.'/notls}INBOX', $sUser, $sPass)))
  11.      throw new Exception('Connection failed: '.imap_last_error());
  12.  }
  13.  
  14.  public function disconnect()
  15.  {
  16.    imap_expunge($this->_rConnection);
  17.    imap_close($this->_rConnection);
  18.  }
  19.  
  20.  public function inbox()
  21.  {
  22.    return imap_sort($this->_rConnection, SORTARRIVAL, false);
  23.  }
  24.  
  25.  public function delete($iId)
  26.  {
  27.    return imap_delete($this->_rConnection, $iId);
  28.  }
  29.  
  30.  public function body($iId)
  31.  {
  32.    return imap_fetchbody($this->_rConnection, $iId, 1);
  33.  }
  34.  
  35.  public function header($iId, $sParam = '')
  36.  {
  37.    $oHeader = imap_header($this->_rConnection, $iId);
  38.    
  39.    if($sParam)
  40.      return $oHeader->$sParam;
  41.    
  42.    return $oHeader;
  43.  }
  44.  
  45.  public function to($iId)
  46.  {
  47.    return $this->header($iId, 'toaddress');
  48.  }
  49.  
  50.  public function from($iId)
  51.  {
  52.    return $this->header($iId, 'senderaddress');
  53.  }
  54.  
  55.  public function subject($iId)
  56.  {
  57.    return $this->header($iId, 'subject');
  58.  }
  59. }
  60.  
  61. ?>
  Forum: PHP · Podgląd postu: #563951 · Odpowiedzi: 4 · Wyświetleń: 1 274

Athlan
Napisane: 7.01.2009, 00:10:06





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Cytat
"Hasło nie poprawne"
niepoprawne pisze się razem, nie oddzielnie tongue.gif
  Forum: Oceny · Podgląd postu: #555553 · Odpowiedzi: 48 · Wyświetleń: 7 205

Athlan
Napisane: 2.11.2008, 07:59:21





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

  1. <?php
  2. $_SESSION['lang'] = $_POST['lang'];
  3. ?>

Radzę zamienić na:
  1. <?php
  2. $aAvalible = array('pl','en');
  3.  
  4. if(in_array($_POST['lang'], $aAvalible))
  5.  $_SESSION['lang'] = $_POST['lang'];
  6. ?>


To jest to, o czym mówił empathon.
  Forum: Oceny · Podgląd postu: #532282 · Odpowiedzi: 14 · Wyświetleń: 2 088

Athlan
Napisane: 14.06.2008, 16:10:56





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Pewnie błędy w matematyce lub podanie niewłaściwych parametrów do funkcji.

Po krótce Ci wyjaśnie jak to zrobić, zrób to sam, nie ściągaj kodów:

Center:
X oraz Y analogicznie: [width(obrazu na który nakładasz)/2]-[width(nakładanego)-2]

Top-left:
X: 0; Y: 0;
Top-right:
X: width oryginału - width nakładanego obrazka;
Y: 0;
Top-center
X: z rozwiązania center;
Y: 0;
Center-left:
X: 0;
Y: z rozwiązania center;
Center-right:
X: z rozwiązania top-right
Y: z rozwiązania ceter

I tak analogicznie... wyobraź sobie to smile.gif

Kawałek mojego kodu:
  1. <?php
  2. final protected function _mathInsert($mPosition, $iSourceX, $iSourceY, $iInsertX, $iInsertY)
  3. {
  4. if(is_array($mPosition))
  5. {
  6. $iX = (isset($mPosition[0]) ? $mPosition[0] : 0);
  7. $iY = (isset($mPosition[1]) ? $mPosition[1] : 0);
  8. }
  9. // top left 
  10. elseif($mPosition == 1) 
  11. { 
  12. $iX = 0; 
  13. $iY = 0; 
  14. }
  15. // top right 
  16. elseif($mPosition == 2) 
  17. { 
  18. $iX = $iSourceX - $iInsertX; 
  19. $iY = 0; 
  20. }
  21. // bottom right 
  22. elseif($mPosition == 3) 
  23. { 
  24. $iX = $iSourceX - $iInsertX; 
  25. $iY = $iSourceY - $iInsertY;
  26. }
  27. // bottom left
  28. elseif($mPosition == 4) 
  29. { 
  30. $iX = 0; 
  31. $iY = $iSourceY - $iInsertY; 
  32. }
  33. // top middle 
  34. elseif($mPosition == 5) 
  35. { 
  36. $iX = (($iSourceX - $iInsertX) / 2); 
  37. $iY = 0; 
  38. }
  39. // middle right 
  40. elseif($mPosition == 6) 
  41. { 
  42. $iX = $iSourceX - $iInsertX; 
  43. $iY = ($iSourceY / 2) - ($iInsertY / 2); 
  44. }
  45.  
  46. // bottom middle
  47. elseif($mPosition == 7) 
  48. { 
  49. $iX = (($iSourceX - $iInsertX) / 2); 
  50. $iY = $iSourceY - $iInsertY; 
  51. }
  52. // middle left 
  53. elseif($mPosition == 8) 
  54. { 
  55. $iX = 0; 
  56. $iY = ($iSourceY / 2) - ($iInsertY / 2); 
  57. }
  58. // middle
  59. else
  60. {
  61. $iX = ($iSourceX / 2) - ($iInsertX / 2); 
  62. $iY = ($iSourceY / 2) - ($iInsertY / 2); 
  63. }
  64.  
  65. return array($iX, $iY);
  66. }
  67. ?>


Zwracam pozycję X i Y, tam, gdzie ma być nałożony obrazek.
  Forum: PHP · Podgląd postu: #482185 · Odpowiedzi: 3 · Wyświetleń: 3 119

Athlan
Napisane: 13.06.2008, 18:02:34





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

is_int dla stringa nigdy nie zwróci Wam true, int to typ danych. do takiego czegoś wykorzystujemy is_numeric(). Do is_numeric() wsadzamy stringa a nie wartość z strlen().
  Forum: Przedszkole · Podgląd postu: #481990 · Odpowiedzi: 24 · Wyświetleń: 10 042

Athlan
Napisane: 24.05.2008, 18:03:23





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

  1. <?php
  2.  
  3. function ArrayDeleteElements(array $aArray, array $aElements)
  4. {
  5. foreach($aElements as $sElement)
  6. if(isset($aArray[$sElement]))
  7. unset($aArray[$sElement]);
  8.  
  9. $aResult = array();
  10.  
  11. foreach($aArray as $iKey => $mValue)
  12. $aResult[] = $mValue;
  13.  
  14. return $aResult;
  15. }
  16.  
  17. $aTest = array
  18. (
  19. 1 => 'a',
  20. 2 => 'b',
  21. 3 => 'c',
  22. 4 => 'd',
  23. );
  24.  
  25. $aTest = ArrayDeleteElements($aTest, array(2,3));
  26. var_dump($aTest);
  27.  
  28. ?>


Kodzone z palca, może fiksować.

Uwagi: tablica z elementami do usunięcia (kluczami) musi być stringami lub liczbami - tak jak klucze. Dlatego odpowiednia walidacje sobie dopisz.
  Forum: Przedszkole · Podgląd postu: #474885 · Odpowiedzi: 4 · Wyświetleń: 1 717

Athlan
Napisane: 21.04.2008, 10:51:20





Grupa: Developerzy
Postów: 823
Dołączył: 18.12.2005

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

Polecam pobrać odtwarzacz plików flv:

http://www.jeroenwijering.com/?item=JW_FLV_Player

Podajemy URL do pliku flv. Jeżeli robisz filmik jednorazowo, możesz do tego wykorzystać jakiś program. Natomiast jeżeli to jest jakiś uploader plików video, zalecam przekonwertowanie ich do flv za pomocą rozszerzenia FFMPEG.

Link do komend:
http://forumphp.nq.pl/index.php?showtopic=...7&hl=ffmpeg (link tymczasowy)
http://forum.php.pl/index.php?showtopic=77597&hl=ffmpeg
  Forum: PHP · Podgląd postu: #464792 · Odpowiedzi: 2 · Wyświetleń: 797


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: 22.11.2019 - 06:10