Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


wdev
Napisane: 13.08.2011, 21:58:32





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Spróbuj zmienić sposób hydracji, np. zrobić ->execute(null, Doctrine_Core::HYDRATE_ARRAY). Problem Doctrine polega na tym, że stara się ona uzyskać id, żeby stworzyć poprawny obiekt. Jeśli nie, to zostaje jeszcze RawSql() wink.gif

  1.  
  2. $qu = new Doctrine_RawSql();
  3.  
  4. $qu->select('{c.type_id}, {t.name}')
  5. ->from('car c')
  6. ->leftJoin('c.CarType t ON t.id = c.type_id')
  7. ->orderBy('t.name ASC')
  8. ->distinct();
  9.  
  10. $this->productTypes = $qu->fetchOne();


Powinno zadziałać smile.gif
  Forum: Frameworki · Podgląd postu: #890128 · Odpowiedzi: 2 · Wyświetleń: 487

wdev
Napisane: 17.05.2011, 13:59:45





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Cytat(RecoNet @ 17.05.2011, 14:39:07 ) *
<div id="content">
<?php include("includes/content.php"); ?>
<?php $site= ob_get_clean();
$site = str_replace($title_default, $title, $site);
$site = str_replace($meta_desc_default, $meta_desc, $site);
$site = str_replace($meta_keywords_default, $meta_keywords, $site);
$site = str_replace($page_default, $page, $site);
echo $site ;?>
<?php ob_flush();?>
(...)
- (lub plus) bufor (szczerze mówiąc czytając trochę nie wiem czy to jest jeszcze najszybsze i najoszczędniejsze rozwiązanie)


Okropne, okropne rozwiazanie. Tworzysz gigantyczna zmienna, ktora niepotrzebnie zalega Ci w pamieci, a pozniej jeszcze ja przeczesujesz 4 razy str_replace... Zdecydowanie powinienes zrezygnowac z tego sposobu.
  Forum: PHP · Podgląd postu: #864119 · Odpowiedzi: 6 · Wyświetleń: 1 258

wdev
Napisane: 8.04.2011, 13:17:57





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Zainstalowac NetBeans albo inne IDE z debuggerem, uruchomic rzeczony debugger, przeanalizowac kod linijka za linijka wink.gif A, i przesiasc sie na porzadny system operacyjny wink.gif

Tu masz linka do debuggera:
http://www.xdebug.com/download.php

A tak serio: jaki masz validator do tego pola? Sprawdz czy jest to na pewno sfValidatorDateTime snitch.gif Troche malo kodu dales, wiec niezbyt sie da polapac o co chodzi...
  Forum: Frameworki · Podgląd postu: #853252 · Odpowiedzi: 2 · Wyświetleń: 523

wdev
Napisane: 10.04.2011, 21:04:09





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Na stronie, nad którą teraz pracuję używam do tego AJAX-a, z zapytaniem do standardowego sfGuarda. Jak formularz otrzyma odpowiedź modułu sfGuard, że użytkownik jest zalogowany, to JS przeładowuje stronę.
  Forum: Frameworki · Podgląd postu: #853987 · Odpowiedzi: 7 · Wyświetleń: 1 039

wdev
Napisane: 4.04.2011, 21:50:44





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Gdzieś w reszcie skryptu Ci wyrzuca puste linie, problemem jest to, że <?xml ?> pojawia się dopiero w 3 linii, a powinno być w pierwszej... Spróbuj usunąć spację po header, może to ona Ci bruździ. Jak nie, to może jakieś include robisz? Jeśli include zamykasz znacznikiem ?> (co nie jest konieczne) i masz po nim enter, to Ci go wyrzuci do kodu. Ewentualnie profilaktycznie usuń wszystkie białe znaki aaevil.gif
  Forum: PHP · Podgląd postu: #852066 · Odpowiedzi: 3 · Wyświetleń: 561

wdev
Napisane: 12.12.2010, 01:43:58





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

A nie może być textarea?
  Forum: Przedszkole · Podgląd postu: #815996 · Odpowiedzi: 3 · Wyświetleń: 1 133

wdev
Napisane: 20.12.2010, 08:28:58





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Musisz zmienić #all na #middle, bo to tego elementu wysokość chcesz ustalić. I tak poza tym zainstalowałeś stare jQuery winksmiley.jpg
  Forum: Przedszkole · Podgląd postu: #818507 · Odpowiedzi: 6 · Wyświetleń: 1 250

wdev
Napisane: 13.12.2010, 23:10:51





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

1. Tag script powinien być wewnątrz tagu <html>, ten skrypt który Ci przesłałem będzie działał nawet w <head> i tam powinien być.
2. Żeby uruchomić jQuery należy skorzystać z zewnętrznej biblioteki (pomoc na stronach Google, jQuery, a zupełne podstawy też np. tu).
3. W skrócie - selectory to to, co jest pomiędzy $(' i ') np. $('#content') to element od id content. Składnia selectorów taka jak css.

PS. Polecam nauczenie się jQuery. Czysty JavaScript to mordęga w porównaniu z tym smile.gif
  Forum: Przedszkole · Podgląd postu: #816535 · Odpowiedzi: 6 · Wyświetleń: 1 250

wdev
Napisane: 12.12.2010, 00:39:55





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Jak może być jQuery, to poniższy kod powinien cię zadowolić (dostosuj sobie tylko odpowiednie selektory).
[JAVASCRIPT] pobierz, plaintext
  1. (function($){
  2. $(document).ready(function(){
  3. $('#content').height($(window).height() - $('#footer').height() - $('#header').height());
  4. });
  5.  
  6. $(window).resize(function(){
  7. $('#content').height($(window).height() - $('#footer').height() - $('#header').height());
  8. });
  9. })(jQuery);
[JAVASCRIPT] pobierz, plaintext
  Forum: Przedszkole · Podgląd postu: #815990 · Odpowiedzi: 6 · Wyświetleń: 1 250

wdev
Napisane: 1.12.2010, 17:00:05





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Jeżeli chcesz to zrobić w tym samym pliku, to dajesz na początku:
  1. if(isset($_GET['m'] && $_GET['m'] == 'accessadd'){
  2. system('sudo /etc/autowarning');
  3. }
  4. /* tu reszta kodu */

Gdzie jest problem?

Jeśli chcesz to zrobić na tej samej stronie czyli bez odświeżania, to pozostaje Ci AJAX, jak wyżej napisał zordon...
  Forum: Przedszkole · Podgląd postu: #812736 · Odpowiedzi: 6 · Wyświetleń: 1 854

wdev
Napisane: 25.11.2010, 21:11:55





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Cytat(CuteOne @ 25.11.2010, 05:05:14 ) *
  1.  
  2. for($i = 0; $i < mysql_num_rows($query); $i++){
  3. echo "<img..."; /* tu wyświetlasz swój obrazek */
  4. if ($i%4 == 1){
  5. echo '<br />';
  6. }
  7. }

winksmiley.jpg

Nie do końca, CuteOne. Nie wykonuj funkcji (jeśli koniecznie nie musisz) jako środkowy argument pętli for, bo wtedy ona jest wykonywana za każdą iteracją funkcji, co daje Ci spory spadek wydajości. Lepiej wykonać ją na początku, a później pracować już tylko na zwróconym wyniku.
  Forum: Przedszkole · Podgląd postu: #810872 · Odpowiedzi: 9 · Wyświetleń: 1 208

wdev
Napisane: 25.11.2010, 02:02:09





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Najlepiej skorzystaj z pętli for i dodaj dzielenie obrazków wykorzystując modulo.
  1. for($i = 0, $ii = mysql_num_rows($query); $i < $ii; $i++){
  2. echo "<img..."; /* tu wyświetlasz swój obrazek */
  3. if ($id%4 == 0){
  4. echo '<br />';
  5. }
  6. }
  Forum: Przedszkole · Podgląd postu: #810630 · Odpowiedzi: 9 · Wyświetleń: 1 208

wdev
Napisane: 13.11.2010, 17:50:03





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Linki ładują nową stronę, więc standardowo będą ładować ją od góry.

Tak jak napisał daiquiri możesz wykorzsytać etykietę, ewentualnie javascript (onclick) zamiast php (żeby nie przeładowywać strony). Ja bym jednak przebudował projekt strony, skoro główna treść jest tak trudno dostępna, że musisz do niej kotwice robić...
  Forum: Przedszkole · Podgląd postu: #807099 · Odpowiedzi: 3 · Wyświetleń: 1 097

wdev
Napisane: 10.11.2010, 17:55:50





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Masz błędy w zagnieżdżaniu if. Po pierwsze - usuń ; po }, bo tylko przeszkadzają w czytaniu. A po drugie zwróć uwagę na to if(!empty($news)){} else if (mysql_num_rows($all_news) > 0){} - jeżeli news jest empty to przechodzi do drugiej części. To co zrobiłeś na początku pliku sprawia, że dopóki masz newsy w bazie, dopóty będą Ci się wyświetlały na górze strony.

I poczytaj też trochę o standardach kodowania, zwłaszcza o komentowaniu, bo masz straszny bajzel w kodzie winksmiley.jpg
  Forum: PHP · Podgląd postu: #806069 · Odpowiedzi: 1 · Wyświetleń: 525

wdev
Napisane: 3.11.2010, 17:58:30





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Można jeszcze dodać:
2. Niektóre programy robią sobie automatycznie kopie plików, np. o nazwie .mojskrypt.php~. Wrzucasz cały folder i z rozpędu zapominasz usunąć te pliki (które w dodatku są ukryte) i cały Twój kod może sobie ktoś ściągnąć. Trzymanie pliku połączenia z BD choć trochę zmniejszy skutki takiego błędu.
3. Nie musisz w każdym pliku od nowa pisać połączenia z bazą. Zrobisz to raz, a resztę załatwia króciutka linijka kodu.
  Forum: Przedszkole · Podgląd postu: #803531 · Odpowiedzi: 13 · Wyświetleń: 1 245

wdev
Napisane: 3.11.2010, 13:18:35





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Co nie zmienia faktu, że dobrym zwyczajem jest trzymanie wszystkich wrażliwych danych poza katalogiem dostępnym przez www, a później użycie require.
  Forum: Przedszkole · Podgląd postu: #803451 · Odpowiedzi: 13 · Wyświetleń: 1 245

wdev
Napisane: 2.11.2010, 17:16:59





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

  1. echo '<table border="1">';
  2. $liczba_kolumn = count($zielone[1]);
  3. for($i = 0; $i < $liczba_kolumn; $i++)
  4. {
  5. echo "<tr>\n<td>".strip_tags($zielone[1][$i])."</td>\n".
  6. "<td>".strip_tags($zielone[0][$i])."</td>\n</tr>\n";
  7. }
  8. echo '</table>';


PS. Nazywaj zmienne tak, żeby coś mówiły. Czyli nie $zielone[1] as $dane, tylko np. $nazwa_tabeli[1] as $numer_kolmuny, czy coś.
PSS. Nie mówiąc o tym, że jeżeli jest to tabla w stylu numer_tematu+temat, to najlepiej by było zrobić z tego jedną tablicę...
  Forum: Przedszkole · Podgląd postu: #803237 · Odpowiedzi: 4 · Wyświetleń: 568

wdev
Napisane: 28.10.2010, 17:05:33





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

1. Wywołując w sposób $obiekt->własność odwołujesz się do konkretnego obiektu. Musisz więc wywołać własność OBIEKTU (produkt), a nie klasy(produkty).
  1. $produkt = new produkty; // obiekt = new klasa;
  2. $produkt->artykul()
  3. echo $produkt->ala; // tu miałeś żle produktY!!!

2. Nie możesz wywołać nieistniejącej własności (przynajmniej nie będziemy się zagłębiać w to jak to się robi), więc zmienna $ala musi być zadeklarowana wewnątrz klasy.
3. Jakie masz ustawienia raportowania błędów? Bo Twój skrypt od razu zwrócił dwa błędy typu E_NOTICE, ustaw sobie w php.ini, żeby Ci je wyświetlało winksmiley.jpg
  Forum: Przedszkole · Podgląd postu: #801782 · Odpowiedzi: 5 · Wyświetleń: 563

wdev
Napisane: 27.10.2010, 21:13:23





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

To może od razu coś praktyczniejszego niż same tylko obiekty? Polecam zapoznanie się z prostym przykładem modelu MVC:
Simple MVC framework, chociaż jak go kiedyś czytałem, to nie pasowało mi trochę rzeczy, no ale lepsze to niż nic.

Może też warto zrobić np. tutorial z Symfony? Z tego co pamiętam, to w miarę bezboleśnie wprowadza w obiekty, nie musisz w końcu przeglądać całego frameworka, a tylko jak niektóre klasy ze sobą współpracują.

Powodzenia
  Forum: Przedszkole · Podgląd postu: #801594 · Odpowiedzi: 4 · Wyświetleń: 829

wdev
Napisane: 27.10.2010, 18:37:28





Grupa: Zarejestrowani
Postów: 86
Dołączył: 20.01.2010

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

Witam,

Funkcja o którą pytasz, to właściwie nie jest preg_match, a substr_compare (musisz sprawdzić, czy początkowe znaki to http://), ale i tak wypadałoby sprawdzić, czy użytkownik podał poprawny adres URL.
Gdybyś dobrze poszukał na php.net (opis funkcji preg_match) znalazłbyś takie wyrażenie regularne dla URL-a (no dobra, usunąłem ftp:// i https:// winksmiley.jpg):
  1. $regex = "/^(http\:\/\/)?"; // SCHEME
  2. $regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"; // User and Pass
  3. $regex .= "([a-z0-9-.]*)\.([a-z]{2,3})"; // Host or IP
  4. $regex .= "(\:[0-9]{2,5})?"; // Port
  5. $regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path
  6. $regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; // GET Query
  7. $regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?/"; // Anchor

Pytanie, czy jest Ci ono potrzebne w tak rozbudowanej formie, ale na to sam sobie musisz odpowiedzieć winksmiley.jpg Jeśli jednak potrzebujesz, to możesz je też rozbudować o inne protokoły, np. zmieniając w 1. linijce http na (http|ftp|ssl) itp.
Po sprawdzeniu, czy URL jest poprawny, wystarczy mała funkcja:
  1. dodaj_http($string){
  2. if(isset($string) and substr_compare($string, 'http://', 0, 7) !== 0){
  3. return 'http://' . $string;
  4. }
  5. else{
  6. return $string;
  7. }
  8. }


A tak w ogóle to ja bym się zastanowił, czy nie warto zrobić tego w drugą stronę - obcinając wszędzie "http://" z przodu, żeby się później nie bawić z tymi ukośnikami np. przy zapisie do bazy danych, czy coś winksmiley.jpg No i oczywiście zachęcam do nauczenia się wyrażeń regularnych, bo to baaaaardzo przydatna rzecz smile.gif
  Forum: Przedszkole · Podgląd postu: #801538 · Odpowiedzi: 3 · Wyświetleń: 440


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: 25.04.2024 - 08:25