Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >

ixpack
Napisane: 21.10.2014, 22:36:15





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Stary... Zwracasz $tablica_bydla (jeden obiekt) tak?
I zobacz w swojej petli for tylko nadpisujesz swoj obiekt, ktory pozniej zwracasz...

Przerob tak:
  1. $ile=$wynik->num_rows;
  2. $tablica_bydla = array();
  3. for($i=0; $i<$ile; $i++) {
  4. $tablica_bydla[] = $wynik->fetch_object();
  5. }
  6. return $tablica_bydla;

i w widoku robisz:
  1. foreach($tablica_bydla as $bydle) {
  2. echo '<pre>Bydle[' . $bydle->id . ']: ' . print_r($bydle, 1) . '</pre>'; //oczywiscie ubierz to w html...
  3. }


Olej tabelki. Zobacz co moze css3 -> flex box. szybko, latwo.
  Forum: Przedszkole · Podgląd postu: #1129200 · Odpowiedzi: 6 · Wyświetleń: 864

ixpack
Napisane: 15.08.2013, 07:28:22





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

"A Content-Transfer-Encoding header field, which can be used to specify an auxiliary encoding that was applied to the data in order to allow it to pass through mail transport mechanisms which may have data or character set limitations."

- mail transport

---

base64_encode

To nie koniecznie sluzy do tajnego kodowania czegos tam...
Jezeli chcesz cos zaszyfrowac, to polecam poczytac o np. rijndael i spokojnie uzywac mcrypt

Ale, jezeli ktos wpieprzy ci sie na server to jak niby masz ochronic kod zrodlowy?

http://www.ioncube.com/ | http://www.sourceguardian.com/ | http://www.zend.com/en/products/guard/

Tak czy siak, to imo jest bez sensu. Po co?

Ja base64 wykorzystalem do wyslania obiektu json metoda postmessage (js).
  Forum: Hydepark · Podgląd postu: #1060454 · Odpowiedzi: 3 · Wyświetleń: 587

ixpack
Napisane: 20.07.2012, 10:33:28





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

jsonp - wszystko, czego będziesz potrzebował... I nie natkniesz się na problem z cross domain calls. Ale to jak już troszkę się oznajomisz z całym tym ajax'em.
  Forum: Książki · Podgląd postu: #979241 · Odpowiedzi: 9 · Wyświetleń: 1 499

ixpack
Napisane: 1.12.2011, 13:34:09





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Brat ma, grałem z nim w samochodziki - SUPER zabawa biggrin.gif
Dopóki nie spróbujesz to nie będziesz wiedział co i jak. Jedyny minus to fakt, że jeszcze niektóre gry "zamulają". Nie zawsze Twój szybki ruch jest wychwycony (tak przynajmniej w jednej z gier, gdzie walczysz w "klatce" - walisz szybko, ale postać w grze pomija niektóre ruch, ale w sumie na padzie też).
Ja kupię sobie jak tylko oswoję się z xboxem, który mam od niedawna wink.gif.

Do małych pomieszczeń jest kinnect zoom - to jest mus w mniejszych pokojach. Inaczej kinnect dużo ruchów gubi. Najlepiej jakbyś miał sporo miejsca.
  Forum: Hydepark · Podgląd postu: #918744 · Odpowiedzi: 16 · Wyświetleń: 1 818

ixpack
Napisane: 11.11.2011, 12:27:20





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Tworząc struktury tabel ustaw foreign key dla kluczy i w momencie usunięcia "rodzica" usuniesz i wszystkie powiązane rekordy z 2-giej tabeli.

To mój "dump": - przeanalizuj tworzenie obu tabel (KEY i CONSTRAINT ważne), aha engine musi być InnoDb. Na myisam nie działa

  1. DROP TABLE IF EXISTS `main_data`;
  2. /*!40101 SET @saved_cs_client = @@character_set_client */;
  3. /*!40101 SET character_set_client = utf8 */;
  4. CREATE TABLE `main_data` (
  5. `customer_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  6. `title` enum('mr','ms','miss','mrs') CHARACTER SET latin1 NOT NULL,
  7. `name` varchar(50) NOT NULL,
  8. `surname` varchar(50) NOT NULL,
  9. `mobile_ext` smallint(5) UNSIGNED NOT NULL,
  10. `mobile_number` decimal(15,0) UNSIGNED NOT NULL,
  11. `date` date NOT NULL,
  12. PRIMARY KEY (`customer_id`),
  13. UNIQUE KEY `mobile_number_UNIQUE` (`mobile_number`)
  14. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  15. /*!40101 SET character_set_client = @saved_cs_client */;
  16.  
  17. DROP TABLE IF EXISTS `email`;
  18. /*!40101 SET @saved_cs_client = @@character_set_client */;
  19. /*!40101 SET character_set_client = utf8 */;
  20. CREATE TABLE `email` (
  21. `customer_id` int(10) UNSIGNED NOT NULL,
  22. `e_mail` varchar(50) NOT NULL,
  23. PRIMARY KEY (`customer_id`),
  24. UNIQUE KEY `email_UNIQUE` (`e_mail`),
  25. KEY `fk_e_md` (`customer_id`),
  26. CONSTRAINT `fk_e_md` FOREIGN KEY (`customer_id`) REFERENCES `main_data` (`customer_id`) ON DELETE CASCADE ON UPDATE CASCADE
  27. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  28. /*!40101 SET character_set_client = @saved_cs_client */;
  Forum: Przedszkole · Podgląd postu: #913418 · Odpowiedzi: 1 · Wyświetleń: 753

ixpack
Napisane: 11.11.2011, 09:33:42





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Ja mam doświadczenia tyle, ile tu jestem (php). To co piszesz nie robi na mnie wrażenia - jakieś takie "do zrobienia rzeczy". Nie studiowałem - uczę się sam.
Pewnie masz świadomość o istnieniu czegoś, o czym sam nie słyszałem - ale to nie ważne. Ważna jest wyobraźnia. Tobie jej nie brak - bo napisałeś tu. Do tego też potrzebny był pomysł smile.gif.

Dam jeden pomysł -sam go chcę zrobić, ale oddaję go do użytku publicznego: Framework - baza, pobierająca potrzebne komponenty z chmury, gdzie miałbyś konto i dobierał preferowane zestawy klas, zestawów klas swoich i użytkowników. Klasy powinny być pisane pod otwartą licencją, a głosowanie i opinie pokażą, co jest lepsze, popularniejsze. Taki "wormart" dla programistów. Mi brak czasu, ale z chęcią używałbym takie narzędzie. Tylko doklejam do kodu małą klaskę, ustawiam api klucz, hasło i działam. Spory, ambitny pomysł. IMO FW pobiłby inne - bo byłby i prosty i rozbudowany - zależnie od użytkownika. Niech mi nikt nie pisze, że jest to niemożliwe. Jest możliwe.
  Forum: Hydepark · Podgląd postu: #913378 · Odpowiedzi: 15 · Wyświetleń: 1 657

ixpack
Napisane: 10.11.2011, 16:19:26





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Tak na szybko:

moje tabele to: trasy (id_trasy, start, stop), miasta (id_miasta, miasto), przez(id_trasy, przez) - pozmieniaj nazwy i spróbuj zrozumieć wink.gif

trasa bezp:
  1. SELECT `alias1`.`miasto` AS `start_from`, `alias2`.`miasto` AS `end_at` FROM `trasy` LEFT JOIN `miasta` AS `alias1` ON `trasy`.`start`=`alias1`.`id_miasta` LEFT JOIN `miasta` AS `alias2` ON `trasy`.`stop`=`alias2`.`id_miasta` WHERE `id_trasy` = '1';


1 sposób z miastem przechodnim:
  1. SELECT `alias1`.`miasto` AS `start_from`, `alias2`.`miasto` AS `end_at`, (SELECT `miasto` FROM `przez` LEFT JOIN `miasta` ON `przez`.`przez`=`miasta`.`id_miasta` WHERE `id_trasy` = '1') FROM `trasy` LEFT JOIN `miasta` AS `alias1` ON `trasy`.`start`=`alias1`.`id_miasta` LEFT JOIN `miasta` AS `alias2` ON `trasy`.`stop`=`alias2`.`id_miasta` WHERE `id_trasy` = '1';


2 sposób z miastem przechodnim
  1. SELECT `alias1`.`miasto` AS `start_from`, `alias2`.`miasto` AS `end_at`, `alias3`.`miasto` AS `checkpoint` FROM `przez` LEFT JOIN `miasta` AS `alias3` ON `przez`.`przez`=`alias3`.`id_miasta`, `trasy` LEFT JOIN `miasta` AS `alias1` ON `trasy`.`start`=`alias1`.`id_miasta` LEFT JOIN `miasta` AS `alias2` ON `trasy`.`stop`=`alias2`.`id_miasta` WHERE `trasy`.`id_trasy` = '1' AND `przez`.`id_trasy` = '1';


A teraz takie moje przemyślenie na świeżo... Jeżeli masz wszędzie to miasto pośrednie, czy nie lepiej wstawić to do tabeli tras? wtedy masz 3 kolumny w jednym miejscu. No chyba, że są trasy bezpośrednie...
pozdr.

Ps. jak zerkniesz na 2-gi sposób z miastem przechodnim, nasuwa się myśl, że można zrobić trasy "alternatywne" wink.gif
  Forum: MySQL · Podgląd postu: #913243 · Odpowiedzi: 3 · Wyświetleń: 361

ixpack
Napisane: 11.11.2011, 14:00:07





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

wink.gif

No więc tabela, a kolumna to 2 inne rzeczy. Ty masz 2 tabele z jedną kolumną. Próbujesz odwołać się do nieistniejącej kolumny w tabeli klucze. W klucze jedyną kolumną, która istnieje jest kolumna klucze. Nie ma tam w ogóle indeksów etc. Cała struktura jest zła.

Stwórz tabele od nowa i ustaw poprawne kolumny w tabeli tak, aby w tabeli klucze były kolumny klucz, data_waznosc, data_dzis
Jedna tabela, nie trzy.
  Forum: Przedszkole · Podgląd postu: #913459 · Odpowiedzi: 14 · Wyświetleń: 582

ixpack
Napisane: 11.11.2011, 13:40:47





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

supplied argument is not a valid MySQL result resource in ****** on line 25 - Czego więcej potrzeba? smile.gif
Sprawdż poprawność zapytań i czy w ogóle baza cokolwiek zwraca...

var_dump smile.gif

Edit: Zastosuj się do CuteOne'a

Co do tego !ilosc == '0' - ciekawe rozwiązanie wink.gif działa, choć wygląda dziwnie...
  Forum: Przedszkole · Podgląd postu: #913444 · Odpowiedzi: 14 · Wyświetleń: 582

ixpack
Napisane: 18.10.2011, 15:07:25





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Bardzo minimalistyczne ale profesjonalnie. Teraz pytanie czy klient, który lubi cukierkowe skiny nie odejdzie od razu nie widząc fajerwerków.
IMO przydałaby się tam jakaś karuzela z miniaturami layoutów. Aby było widać, że agencja jest kreatywna i nie stawia jedynie na minimalizm.
  Forum: Oceny · Podgląd postu: #906530 · Odpowiedzi: 9 · Wyświetleń: 913

ixpack
Napisane: 7.10.2011, 08:17:53





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

kujawska - nie jestem hacker, KAŻDY mógłby to zrobić w 5 minut.

1-sza rzecz - ja użyłem wtyczki data tamper - wpisz w wyszukiwaniu wtyczek firefox'a. Jest masa podobnego typu softu. Preparujesz input - dlatego też validacja js nie ma sensu jeżeli chodzi o bezpieczeństwo. Bardzo łatwo zerknąć na to jak nazwałeś input'y. Takie narzędzia służą nie do "hackowania" - ale do ochrony przed tym. Sam tego używam i preparuję input do swoich skryptów.
2-ga prosta pętla na curl:
  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  3.  
  4. $url = 'http://www.validsite.pl/add.php';
  5. $ur = 'url';
  6. $ti = 'title';
  7. $de = 'description';
  8.  
  9. curl_setopt($ch, CURLOPT_URL, $url);
  10. curl_setopt($ch, CURLOPT_POST, 3);
  11.  
  12. for ($indexo = 0; $indexo < 1000; $indexo++) {
  13. for ($index = 0; $index < 1000; $index++) {
  14. $requestString = "ur=$ur+$index&ti=$ti+$index&de=$de+$index";
  15. curl_setopt($ch, CURLOPT_POSTFIELDS, "$requestString");
  16. $serverResponse = curl_exec($ch);
  17. }
  18. }
  19.  
  20. $xurl= "http://www.worstsite.pl/add.php";
  21. curl_setopt($ch, CURLOPT_URL, $xurl);
  22. curl_setopt($ch, CURLOPT_POST, 4);
  23. for ($indexo = 2; $indexo < 1000; $indexo++) {
  24. $requestString = "ur=http%3A%2F%2Fwww.worstsite.pl/?id=".$indexo."&er=9999+&ti=Worst+Site+Ranking&de=Toplista.Ranking+najgorszych+stron+WWW+w+polskim+Internecie+czyli+o+rados
    nej+twórczości+webmasterów"
    ;
  25. curl_setopt($ch, CURLOPT_POSTFIELDS, "$requestString");
  26. $serverResponse = curl_exec($ch);
  27. }


Oczywiście kod jest "na odwal", ale pokazuje gdzie jest problem. KAŻDY może dodać do bazy co zechce... Teoretycznie dodamy skrypt javascript, który coś tam brzydkiego robi... Wystarczy abyś post, który ktoś wprowadza zapisał sobie np. w sesji albo zmiennej, którą dodasz do bazy jeżeli walidator zwróci np. 0 błędóe. Wiele jest rozwiązań - ile ludzi tyle rozwiązań.

Na prawdę nie znam się na hackingu. Kiedyś przejąłem konto na khanwars (gra online), ale tylko dlatego, że koleś z top listy miał hasło login123 =] i na głupiego trafiłem... Nie jestem mistrzem zabezpieczeń, ale TU na tym forum jest MASA materiału o bezpieczeństwie, atakach xss etc.
Musisz być świadom, że nie ważne jak zabezpieczysz stronę to i tak znajdzie się ktoś, kto to może rozwalić - dlatego backup jest koniecznością.
Pozdr. i życzę sukcesu z validsite (worstsite - tam rację bytu tłumaczyłoby jakbyś dodawał strony niebezpieczne dla usera, ale nie po "złości" bo ma kilka błędów html. OK radiomaryja to zło, bo pierze mózgi wink.gif)
  Forum: Oceny · Podgląd postu: #904012 · Odpowiedzi: 26 · Wyświetleń: 2 573

ixpack
Napisane: 23.09.2011, 08:48:34





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Zastanówmy się po co masz to w osobnych tabelach? Tak jest to ważne gdy mamy wiele wiele rekordów, ale Ty masz tam ich "aż" 6 wink.gif nie lepiej jakby rodzaj paczki był enum('rodzaj1','rodzaj2')?

Ok nie ważne.
Jak to zrobić? Wysyłasz za pewne POST'em rodzaj paczki - np. 4
Po przeładowaniu, otrzymaniu tego id POST'em możesz wykonać wyszukiwanie w bazie
  1. SELECT nazwa FROM rodzaj_paczki WHERE rodzaj_id = '4'

W wyniku otrzymasz "PPZ" - to też możesz wyświetlić.

A teraz załóżmy, że chcesz pokazać wszystkie paczki i ich rodzaje etc. Używamy do tego LEFT JOIN...
  1. SELECT rodzaj_paczki, nazwa, masa_paczki, gabaryt, oplata, d FROM paczki LEFT JOIN rodzaj_paczki USING (rodzaj_paczki) WHERE [warunek])

opłata - oplata, staraj nie używać się polskich znaków przy nazwach - na przyszłość wink.gif
rodzaj_paczki - rodzaj_id -> uniformizuj to tak, aby obie kolumny miały taką samą nazwę inaczej LEFT JOIN wygląda lekko inaczej. Jak? Poszukaj w manualu MySql.
  Forum: Przedszkole · Podgląd postu: #901018 · Odpowiedzi: 2 · Wyświetleń: 295

ixpack
Napisane: 16.09.2011, 14:23:18





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

prócz tego, co koledzy wyżej pisali: przydałby się trochę inny paginator - coś na wzór sławnych demotów, aby nie było widać "wszystkich stron".
Ponad to: jest fb, a gdzie jest google+?

Na ubuntu na napis "zapomniałem hasła" najeżdża poniższe menu - ledwo widać link przypomnienia hasła...

Tekst typu: witaj niezarejestrowany.... dołożysz swoje? IMO trochę to kiczowate. Tam jest świetne miejsce na reklamy wink.gif
  Forum: Oceny · Podgląd postu: #899365 · Odpowiedzi: 13 · Wyświetleń: 6 026

ixpack
Napisane: 6.09.2011, 15:57:21





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

select distinct
  Forum: Przedszkole · Podgląd postu: #896838 · Odpowiedzi: 8 · Wyświetleń: 721

ixpack
Napisane: 6.09.2011, 13:09:19





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Np. array_walk lub array_diff
A łatwiej array_intersect

Oczywiście tylko narzędzia - ja bym to zrobił na szybko array_walk - przepierdzielił wszystkie tablice, nadał elemnentom jakieś id i punktował je, następnie elementy z np. punktami od 3 dałbym do wynikowej tablicy i przedstawił ją.
Albo wszystkie tablice połączył i wtedy elementy punktował/zliczył ilość rekordu x, y, z etc. Chyba mnie rozumiesz?
  Forum: Przedszkole · Podgląd postu: #896780 · Odpowiedzi: 2 · Wyświetleń: 405

ixpack
Napisane: 12.08.2011, 15:59:56





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Masz rację - jest to dość łatwe o ile dobrze znasz obie aplikacje... Znaczy ich kod i struktury baz danych.
1) formularzem zbierasz dane usera
2) Teraz zalerzy jak są hashowane hasła w odrębnych aplikacjach... Lub łatwiej zrób swoją tabelę, gdzie te dane będziesz przechowywał.
3) Np. korzystając z PDO dodajesz rekordy do baz bb,wdp ewentualnie do swojej tabeli.
4) Jeżeli nie tworzyłeś swojej tabeli z userem/hasłem i hashowane hasło jest poprawnie dodane (nie wiem jak wordpress etc. hashuje/saltuje hasła...) to wszystko powinno działać.
A jeżeli tworzyłeś swoją tabelę, to robisz swoje logowanie (musisz przerobić skrypty, które odpowiedzialne są za ustawienie usera, osobno dla wrdpress i dla bb).

I to by było na tyle... W teorii proste, ale w praktyce przekonasz się, że nie. Różne aplikacje inaczej zabezpieczają hasła użytkownika - inaczej też traktują nazwy userów ich dane. Tak też jeżeli zdecydowałbyś się na dodawanie danych usera tylko do bazy wordpress, to musisz przerobić część bb, aby pobierał -> ładował dane usera z odpowiedniej bazy danych.

... Aha i co więcej... Pamiętaj, że te aplikacje miewają częste updaty, które mogą zmieniać strukturę bazy, skryptów etc. Więc nie wiem czy nie jest to syzyfowa praca...
  Forum: PHP · Podgląd postu: #889828 · Odpowiedzi: 4 · Wyświetleń: 488

ixpack
Napisane: 4.08.2011, 12:41:46





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Czyli Twoje strony leżą na serwerze, gdzie jest wiele innych stron... To nie jest Twój problem (prawdopodobnie), a admina serwera na którym są Twoje strony. Zgłoś to do supportu.
  Forum: Hydepark · Podgląd postu: #887394 · Odpowiedzi: 11 · Wyświetleń: 1 101

ixpack
Napisane: 4.08.2011, 12:06:21





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Masz konto root? Czy te strony są po prostu na współdzielonym hostingu?
  Forum: Hydepark · Podgląd postu: #887385 · Odpowiedzi: 11 · Wyświetleń: 1 101

ixpack
Napisane: 24.06.2011, 20:54:22





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Może to kretyńskie rozwiązanie, ale czy rozważałeś accordion? W jquery pełno przykładów i mając np. 3 zakładki, każda może mieć kolejne accordion menusy. Ale tu jest problem, że wybierając sub menu nie "nadpisze" Ci wyżej wybranego elementu. Działać to będzie tak:

Opcja 1
Opcja 2
Opcja 3

Rozwijamy Opcja1:

Opcja1:
xxx
yyy
zzz
Opcja2
Opcja3

Rozwijamy xxx:
Opcja1
xxx
111
222
333
yyy
zzz
Opcja2
Opcja3

Dzięki accordion jak wybierzesz np. teraz yyy to da Ci coś takiego:

Opcja1
xxx
yyy
111
222
333
zzz
Opcja2
Opcja3

Nie znam js (przynajmniej na tyle), ale chyba dałoby się zrobić tak, że można "ukryć" Opcja2, Opcja3, ale teraz co z dostępnością? Nie każdy się domyśli, że trzeba znowu kliknąć "Opcja1" aby pokazać Opcja1, 2, 3... Analogicznie co stoi na przeszkodzie, żeby ukryć Opcja1, 2, 3 gdy wybrany jest xxx, yyy lub zzz? Ukrywasz i powiększasz (w teorii - nigdy tego nie robiłem).

Z chęcią sam bym zerknął na takie rozwiązanie.

Edit: coś tam znalazłem, co spełnia jako tako wymagania - można coś na tym zrobić:
http://www.filamentgroup.com/examples/menusHierarchical/
  Forum: Hydepark · Podgląd postu: #875942 · Odpowiedzi: 17 · Wyświetleń: 2 208

ixpack
Napisane: 22.06.2011, 11:49:24





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

W php'ie to proste
  1. <?php
  2. Header( "HTTP/1.1 301 Moved Permanently" );
  3. ?>


W htaccess tak (nie testowane):

Kod
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]  - oczywiście zmienić odpowiednio wyr. reg.
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]


Coś bb code mi popsuł :/
  Forum: Przedszkole · Podgląd postu: #874938 · Odpowiedzi: 4 · Wyświetleń: 368

ixpack
Napisane: 22.06.2011, 11:16:55





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

  1. ALTER TABLE `baza`.`tabela` CHANGE COLUMN `kolumna` `kolumna` TINYINT(4) NOT NULL DEFAULT '2' ;


Taki szablon.
  Forum: Przedszkole · Podgląd postu: #874914 · Odpowiedzi: 1 · Wyświetleń: 4 276

ixpack
Napisane: 16.06.2011, 21:27:21





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Cytat(Pcbecaw @ 16.06.2011, 21:23:25 ) *
Chyba niechcący dałeś mi gotowca, a nie kod z bugiem cap.gif


Masz się uczyć! Na jutro widzę tu jakieś dowody nerdsmiley.png
  Forum: Przedszkole · Podgląd postu: #873248 · Odpowiedzi: 11 · Wyświetleń: 647

ixpack
Napisane: 16.06.2011, 21:02:13





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Powinno działać, nie sprawdzałem. Jeden "bug" - jak jakieś pole będzie puste, to wywali błąd "nie wszystkie pola wypełnione" - ale nie pokaże np. że e-mail jest błędny - łatwo to zmienić - pokmiń.

Właśnie to jest urok wielu if/else - łatwo pomylić "{" lub "}" - i katastrofa gotowa...
Poczytaj o wyjątkach, spróbuj zrobić proste funkcje, które np. sprawdzają poprawność pól etc.

  1. <?php
  2. /**
  3.  
  4.  * A PHP contact form.
  5.  
  6.  * Author: tom@ofzenandcomputing.com
  7.  
  8.  * Last revision: 11/19/2007 01:03
  9.  
  10.  *
  11.  
  12.  * Mail header injection prevention based on comments from:
  13.  
  14.  * <a href="http://www.php.net/mail" target="_blank">http://www.php.net/mail</a>
  15.  
  16.  *
  17.  
  18.  * E-mail validation regex from:
  19.  
  20.  * <a href="http://www.regular-expressions.info/email.html" target="_blank">http://www.regular-expressions.info/email.html</a>
  21.  
  22.  */
  23. // Replace you@example.com with your own e-mail address.
  24.  
  25. define('YOUR_EMAIL', 'db4all@gmail.com');
  26. // If the user does not fill in a subject, this will be used.
  27.  
  28. define('DEFAULT_SUBJ', 'A message from your contact form');
  29. // This is the maximum length of a subject, in characters.
  30.  
  31. if (isset($_COOKIE['formularz'])) {
  32. echo '<u>kolejny wpis za 5min.</u>';
  33. // nie przyjmuj formularza
  34. } elseif (isset($_POST['mail'])) {
  35. $errors = array();
  36.  
  37. if (preg_match('/(%0A|%0D|\n+|\r+)/i', $_POST['subj'])) {
  38. $errors[] = 'Your subject contains illegal characters.';
  39. } else {
  40. if (!strlen($_POST['subj']) || is_null($_POST['subj'])) {
  41. $subj = DEFAULT_SUBJ;
  42. } else {
  43. $subj = substr($_POST['subj'], 0, 1000);
  44. }
  45. }
  46.  
  47. if (!strlen($_POST['imie']) || !strlen($_POST['email']) || !strlen($_POST['adres']) || !strlen($_POST['subj'])) {
  48. $errors[] = '<u>Nie zostały wypełnione wszystkie wymagane pola.</u>';
  49. } else {
  50. if (!preg_match('/^[a-ząćęłńóśźż]+$/ui', $_POST['imie'])) {
  51. $errors[] = '<u>Imię zostało wpisane niepoprawnie.</u>';
  52. }
  53. if (!preg_match('/^([a-z0-9]{1})([^\s\t\.@]*)((\.[^\s\t\.@]+)*)@([a-z0-9]{1})((([a-z0-9-]*[-]{2})|([a-z0-9])*|([a-z0-9-]*[-]{1}[a-z0-9]+))*)((\.[a-z0-9](([a-z0-9-]*[-]{2})|([a-z0-9]*)|([a-z0-9-]*[-]{1}[a-z0-9]+))+)*)\.([a-z0-9]{2,6})([.]?)$/Diu', $_POST['email'])) {
  54. $errors[] = '<u>Adres e-mail został wpisany niepoprawnie.</u>';
  55. }
  56. if (!preg_match('/^(http|ftp)([s]{0,1}):\/\/([a-z0-9]{1})((([a-z0-9-]*[-]{2})|([a-z0-9])*|([a-z0-9-]*[-]{1}[a-z0-9]+))*)((\.[a-z0-9](([a-z0-9-]*[-]{2})|([a-z0-9]*)|([a-z0-9-]*[-]{1}[a-z0-9]+))+)*)(\.([a-z0-9]{2,6})){0,1}((:[0-9]){0}|(:[1-9]{1}[0-9]*))\//iu', $_POST['adres'])) {
  57. $errors[] = '<u>Adres strony został wpisany niepoprawnie.</u>';
  58. }
  59. if (!preg_match('/^(http|ftp)([s]{0,1}):\/\/([a-z0-9]{1})((([a-z0-9-]*[-]{2})|([a-z0-9])*|([a-z0-9-]*[-]{1}[a-z0-9]+))*)((\.[a-z0-9](([a-z0-9-]*[-]{2})|([a-z0-9]*)|([a-z0-9-]*[-]{1}[a-z0-9]+))+)*)(\.([a-z0-9]{2,6})){0,1}((:[0-9]){0}|(:[1-9]{1}[0-9]*))\//iu', $_POST['subj'])) {
  60. $errors[] = '<u>Odsyłacz do statystyk został wpisany niepoprawnie.</u>';
  61. }
  62. if (preg_match('/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i', $_POST['body'])) {
  63. $errors[] = 'Your message body contains invalid characters.';
  64. }
  65. }
  66.  
  67. if (count($errors)) {
  68. for ($i = 0; $i < count($errors); $i++) {
  69. printf('%s<br />', $errors[$i]);
  70. }
  71. } else {
  72. setcookie('formularz', 'dodany wpis', time() + 300);
  73. $headers = sprintf("From: %s", $_POST['imie']);
  74. $imie = $_POST['imie'];
  75. $adres = $_POST['adres'];
  76. $cialo = $_POST['body'];
  77. $email = $_POST['email'];
  78. $subj = $_POST['subj'];
  79. $temat = 'Reklama w serwisie Psychotechnik';
  80.  
  81. $wszystko = "Imię: " . $imie . "\nE-mail: " . $email . "\nAdres strony: " . $adres . "\nOdsyłacz statystyk: " . $subj . "\nTreść wiadomości:\n" . $cialo;
  82.  
  83. if (mail(YOUR_EMAIL, $temat, $wszystko, $headers)) {
  84. print '<p>Your message was sent.</p>';
  85. } else {
  86. print '<p>An error occurred while we were attempting to' . ' send your message. Please try again later.</p>';
  87. }
  88. }
  89. }
  90. ?></p>
  91. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" accept-charset="utf-8">
  92. *Imię:<br />
  93. <input type="text" name="imie" size="25" /><br />
  94. *E-mail:<br />
  95. <input type="text" name="email" size="25" /><br />
  96. *Adres strony:<br />
  97. <input type="text" name="adres" size="25" /><br />
  98. *Odsyłacz do statystyk strony:<br />
  99. <input type="text" name="subj" size="40" maxlength="1000" /><br />
  100. Treść:<br />
  101. <textarea name="body" cols="32" rows="10" ></textarea><br />
  102. <input type="submit" name="mail" value="Wyślij wiadomość" class="button" />
  103. </form>
  Forum: Przedszkole · Podgląd postu: #873240 · Odpowiedzi: 11 · Wyświetleń: 647

ixpack
Napisane: 16.06.2011, 20:32:40





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

Zmień kawałek kodu...
  1. if (isset($_POST['mail']) && isset($_COOKIE['formularz'])) {
  2. echo '<u>kolejny wpis za 5min.</u>';
  3. // nie przyjmuj formularza
  4. } else if (isset($_POST['mail']) && !isset($_COOKIE['formularz'])) { //reszta bez zmian ale wyrzuć ten warunek o cookies


Pcbecaw - poczytaj o exceptions, te if/elseif będzie działać, ale czytelniej i szybciej zrobisz to na wyjątkach. Zrób funkcję do sprawdzania formularza, nie każde pole trzeba sprawdzać ręcznie - powinieneś użyć pętli, za wiele w Twoim kodzie warunków. rozumiem chcesz się uczyć więc daję wskazówki, a nie gotowca.

Czyli: wyjątki i funkcje, pętle - w kilku linijkach możesz cały ten kod zmieścić.
  Forum: Przedszkole · Podgląd postu: #873224 · Odpowiedzi: 11 · Wyświetleń: 647

ixpack
Napisane: 16.06.2011, 14:14:02





Grupa: Zarejestrowani
Postów: 248
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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

  1. if (isset($_COOKIE['formularz']))
  2. {
  3. echo 'Wpisy można dodawać co 5 minut!';
  4. // nie przyjmuj formularza
  5. }
  6. else
  7. {
  8. if (!strlen($_POST['imie']) || !strlen($_POST['email']) || !strlen($_POST['adres']) || !strlen($_POST['subj'])) {
  9. $errors[] = '<u>Nie zostały wypełnione wszystkie wymagane pola.</u>';
  10. }
  11.  
  12. if ( !preg_match('/^[a-ząćęłńóśźż]+$/ui', $_POST['imie'])) {
  13. $errors[] = '<u>Imię zostało wpisane niepoprawnie.</u>';
  14. }
  15.  
  16. if (empty($errors)) setcookie ('formularz', 'dodany wpis', time()+300) ; // długość istnienia ciasteczka w sekundach
  17. }


Chyba tak.
  Forum: Przedszkole · Podgląd postu: #873063 · Odpowiedzi: 11 · Wyświetleń: 647

3 Stron V   1 2 3 >

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: 16.04.2024 - 18:44