Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

6 Stron V   1 2 3 > » 

aras785
Napisane: Wczoraj, 13:26





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

http://sandbox.onlinephpfunctions.com/code...b20df9354cdcb61

ps. do testów dodałem jeszcze jednego kontrahenta na samym dole smile.gif
edit: poprawiłem jedną rzecz, nowy link
  Forum: PHP · Podgląd postu: #1232580 · Odpowiedzi: 8 · Wyświetleń: 131

aras785
Napisane: 12.04.2018, 15:08:49





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Menu wrzucasz z Bootstrap 3...

https://jsfiddle.net/5Lbfntmw/296/

Menu: https://getbootstrap.com/docs/4.0/components/navbar/

  Forum: Po stronie przeglądarki · Podgląd postu: #1231939 · Odpowiedzi: 5 · Wyświetleń: 127

aras785
Napisane: 9.04.2018, 10:22:44





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Dla pierwszego elementu:

  1. echo $odp->{key($odp)}->family_name;


Pętla:

  1. foreach($odp as $k=>$v) {
  2. echo $k.' => '.$v->family_name.'<br>';
  3. }


http://sandbox.onlinephpfunctions.com/code...35f08199d56f912
  Forum: Przedszkole · Podgląd postu: #1231769 · Odpowiedzi: 8 · Wyświetleń: 135

aras785
Napisane: 6.04.2018, 10:18:50





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć,

może tak:

http://www.sqlfiddle.com/#!9/a9baf9/1
  1. SELECT
  2. test.nr1,
  3. test.DATA,
  4. (SELECT test2.nr1 FROM test AS test2 WHERE test2.data<test.DATA ORDER BY test2.DATA DESC LIMIT 1) AS test2_nr1
  5. FROM test
  6. HAVING test.nr1!=test2_nr1 OR test2_nr1 IS NULL
  7. ORDER BY DATA ASC
;
  Forum: MySQL · Podgląd postu: #1231691 · Odpowiedzi: 2 · Wyświetleń: 114

aras785
Napisane: 12.04.2018, 12:55:12





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Przykład 2:

  1. var data = {
  2. 'a': 5,
  3. 'b': 10,
  4. };
  5. $.ajax({
  6. url: 'cart.php',
  7. method: 'POST',
  8. data: data
  9. })


Przykład 1:

  1. $('#form1').on('submit', function(event) {
  2. event.preventDefault();
  3. var data = $(this).serializeArray();
  4. data.push({name: "a", value: 5});
  5. data.push({name: "b", value: 10});
  6. console.log(data);
  7. $.ajax({
  8. url: 'cart.php',
  9. method: 'POST',
  10. data: data
  11. })
  12.  
  13. });


https://jsfiddle.net/vwqvb983/
  Forum: XML, AJAX · Podgląd postu: #1231922 · Odpowiedzi: 27 · Wyświetleń: 425

aras785
Napisane: 23.03.2018, 10:09:48





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć,

Cytat
czy jest opcja zrobić tak, że dostęp do plików mają tylko zalogowania użytkownicy (PHP, Sesje)?

w samym htaccess nie ma takiej opcji

można zrobić tak:
  1. RewriteRule ^pliki/(.*)$ getFile.php?url=$1 [L]


i wtedy w getFile.php sprawdzasz czy jest dostęp i pokazujesz zawartość wink.gif

  Forum: Serwery WWW · Podgląd postu: #1231046 · Odpowiedzi: 3 · Wyświetleń: 190

aras785
Napisane: 23.03.2018, 11:32:15





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

sprawdź:
http://jsfiddle.net/wpasq2nm/
http://jsfiddle.net/cwilldev/Q86Jc/1/
http://jsfiddle.net/9uZ6P/3/


  Forum: Przedszkole · Podgląd postu: #1231056 · Odpowiedzi: 5 · Wyświetleń: 145

aras785
Napisane: 21.03.2018, 11:06:26





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

u mnie wszystko działa smile.gif

https://imgur.com/a/baeZe
  Forum: PHP · Podgląd postu: #1230925 · Odpowiedzi: 5 · Wyświetleń: 179

aras785
Napisane: 21.03.2018, 10:38:43





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

https://jsfiddle.net/0p7wm7s2/7/

lub

https://jsfiddle.net/0p7wm7s2/9/
  Forum: JavaScript · Podgląd postu: #1230923 · Odpowiedzi: 6 · Wyświetleń: 242

aras785
Napisane: 8.03.2018, 16:27:38





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Ciekawe zadanie smile.gif

O to Ci chodziło? https://jsfiddle.net/v51n079t/88/
  Forum: Przedszkole · Podgląd postu: #1230323 · Odpowiedzi: 2 · Wyświetleń: 151

aras785
Napisane: 7.03.2018, 11:25:26





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć

https://jsfiddle.net/tb179efa/29/


append najczęściej używany jest z wartością html (dlatego też mogło Ci to umknąć), a Ty przenosisz cały obiekt (nie klonujesz). Jeśli użyłbyś: '<tr>'+row.html()+'</tr>' to w pierwszej tabeli wiersz by został.

Poczytaj:

usuwanie atrybutu: https://api.jquery.com/removeAttr/
append: https://api.jquery.com/append/ (tam jest przykład jak element h2 jest przenoszony)
klonowanie (jako ciekawostka): https://api.jquery.com/clone/

Pozdrawiam
  Forum: Po stronie przeglądarki · Podgląd postu: #1230236 · Odpowiedzi: 2 · Wyświetleń: 216

aras785
Napisane: 7.03.2018, 11:40:57





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć. Jeśli nie chcesz grzebać w html to wystarczy w CSS:

W main.css (linia 441) w elemencie:
  1. #loupeContainer div.side-navigation
dodaj: display: none;


Pozdrawiam


  Forum: Przedszkole · Podgląd postu: #1230237 · Odpowiedzi: 2 · Wyświetleń: 170

aras785
Napisane: 7.03.2018, 12:21:17





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć.

Dzieję się tak ponieważ nie blokujesz pół in1, in2, in3.

Szybka przeróbka:
https://jsfiddle.net/pnk8s60s/13/

Lub możesz użyć funkcji:
https://jsfiddle.net/6mwu83Lk/
  Forum: Przedszkole · Podgląd postu: #1230242 · Odpowiedzi: 2 · Wyświetleń: 177

aras785
Napisane: 12.03.2018, 23:01:28





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć,

nie wiem co Ty tam kombinujesz ale zrobiłem na szybko coś takiego:

https://jsfiddle.net/tx4Lc8a9/342/
  Forum: Przedszkole · Podgląd postu: #1230526 · Odpowiedzi: 3 · Wyświetleń: 293

aras785
Napisane: 1.03.2018, 00:20:39





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

https://stackoverflow.com/a/984259/5820451
  Forum: PHP · Podgląd postu: #1229854 · Odpowiedzi: 3 · Wyświetleń: 208

aras785
Napisane: 28.02.2018, 11:18:31





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Podrzucam Ci działający przykład lub https://blog.theodo.fr/2015/07/manage-multi...oad-in-symfony/

  1. <?php
  2. namespace Acme\Bundle\AdminBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\HttpFoundation\File\UploadedFile;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. use Cocur\Slugify\Slugify;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. /**
  9.  * AlbumImages
  10.  *
  11.  * @ORM\Table()
  12.  * @ORM\Entity
  13.  * @ORM\HasLifecycleCallbacks
  14.  */
  15. class AlbumImages
  16. {
  17. /**
  18.   * @var integer
  19.   *
  20.   * @ORM\Column(name="id", type="integer", nullable=false)
  21.   * @ORM\Id
  22.   * @ORM\GeneratedValue(strategy="IDENTITY")
  23.   */
  24. private $id;
  25. /**
  26.   * @var string
  27.   *
  28.   * @ORM\Column(name="image", type="string", length=50, nullable=false)
  29.   */
  30. private $image;
  31. /**
  32.   * @var string
  33.   *
  34.   * @ORM\Column(name="title", type="string", length=50, nullable=false)
  35.   */
  36. private $title;
  37. /**
  38.   * @var \DateTime
  39.   *
  40.   * @ORM\Column(name="date_add", type="datetime", nullable=false)
  41.   */
  42. private $dateAdd;
  43. /**
  44.   * @var \DateTime
  45.   *
  46.   * @ORM\Column(name="date_update", type="datetime", nullable=false)
  47.   */
  48. private $dateUpdate;
  49. /**
  50.   * @var \Studio
  51.   *
  52.   * @ORM\ManyToOne(targetEntity="Albums")
  53.   * @ORM\JoinColumns({
  54.   * @ORM\JoinColumn(name="id_album", referencedColumnName="id", onDelete="CASCADE")
  55.   * })
  56.   */
  57. private $idAlbum;
  58. /**
  59.   * Get id
  60.   *
  61.   * @return integer
  62.   */
  63. public function getId()
  64. {
  65. return $this->id;
  66. }
  67. /**
  68.   * Set title
  69.   *
  70.   * @param string $title
  71.   * @return AlbumImages
  72.   */
  73. public function setTitle($title)
  74. {
  75. $this->title = $title;
  76.  
  77. return $this;
  78. }
  79. /**
  80.   * Get title
  81.   *
  82.   * @return string
  83.   */
  84. public function getTitle()
  85. {
  86. return $this->title;
  87. }
  88. /**
  89.   * Set dateAdd
  90.   *
  91.   * @param \DateTime $dateAdd
  92.   * @return AlbumImages
  93.   */
  94. public function setDateAdd($dateAdd)
  95. {
  96. $this->dateAdd = $dateAdd;
  97.  
  98. return $this;
  99. }
  100. /**
  101.   * Get dateAdd
  102.   *
  103.   * @return \DateTime
  104.   */
  105. public function getDateAdd()
  106. {
  107. return $this->dateAdd;
  108. }
  109. /**
  110.   * Set dateUpdate
  111.   *
  112.   * @param \DateTime $dateUpdate
  113.   * @return AlbumImages
  114.   */
  115. public function setDateUpdate($dateUpdate)
  116. {
  117. $this->dateUpdate = $dateUpdate;
  118.  
  119. return $this;
  120. }
  121. /**
  122.   * Get dateUpdate
  123.   *
  124.   * @return \DateTime
  125.   */
  126. public function getDateUpdate()
  127. {
  128. return $this->dateUpdate;
  129. }
  130. /**
  131.   * Set image
  132.   *
  133.   * @param string $image
  134.   * @return AlbumImages
  135.   */
  136. public function setImage($image)
  137. {
  138. $this->image = $image;
  139.  
  140. return $this;
  141. }
  142. /**
  143.   * Get image
  144.   *
  145.   * @return string
  146.   */
  147. public function getImage()
  148. {
  149. return $this->image;
  150. }
  151. /**
  152.   * @Assert\File(maxSize="6000000",mimeTypes={"image/*"})
  153.   */
  154. public $file_image;
  155. /**
  156.   * @var
  157.   * Old variable: $image
  158.   */
  159. public $old_image;
  160.  
  161. public function getAbsolutePath($name='')
  162. {
  163. if($name!='') return null === $name ? null : $this->getUploadRootDir().'/'.$name;
  164. return null === $this->image ? null : $this->getUploadRootDir().'/'.$this->image;
  165. }
  166. public function getWebPath($name='')
  167. {
  168. if($name!='') return null === $name ? null : $this->getUploadDir().'/'.$name;
  169. return null === $this->image ? null : $this->getUploadDir().'/'.$this->image;
  170. }
  171. protected function getUploadRootDir()
  172. {
  173. // the absolute directory path where uploaded documents should be saved
  174. return __DIR__.'/../../../../../web/'.$this->getUploadDir();
  175. }
  176. protected function getUploadDir()
  177. {
  178. // get rid of the __DIR__ so it doesn't screw when displaying uploaded doc/image in the view.
  179. return 'upload/studio/'.$this->getIdAlbum()->getidStudio()->getId().'/albums/'.$this->getIdAlbum()->getId();
  180. }
  181. /**
  182.   * @ORM\PreUpdate
  183.   */
  184. public function preUpdate()
  185. {
  186. $slug = new Slugify();
  187. $this->setDateUpdate(new \DateTime());
  188. $ext = pathinfo($this->getImage(), PATHINFO_EXTENSION);
  189.  
  190. $image_new_name = $slug->slugify($this->getTitle());
  191.  
  192. $this->old_image = $this->getImage();
  193.  
  194. if($image_new_name.'.'.$ext != $this->old_image) {
  195. if(file_exists($this->getUploadRootDir().'/'.$image_new_name.'.'.$ext)) {
  196. $file_exists_count = 1;
  197. while(file_exists($this->getUploadRootDir().'/'.$image_new_name.'_'.$file_exists_count.'.'.$ext)) {
  198. $file_exists_count++;
  199. }
  200. $image_new_name = $image_new_name.'_'.$file_exists_count;
  201. }
  202. rename($this->getAbsolutePath($this->old_image),$this->getAbsolutePath($image_new_name.'.'.$ext));
  203. $this->setImage($image_new_name.'.'.$ext);
  204. }
  205. }
  206. /**
  207.   * @ORM\PrePersist()
  208.   */
  209. public function preUpload()
  210. {
  211. $this->setDateAdd(new \DateTime());
  212. $this->setDateUpdate(new \DateTime());
  213. $slug = new Slugify();
  214. //photo
  215. if (is_object($this->file_image)) {
  216. $this->removeUpload();
  217. $slug = new Slugify();
  218. $image_new_name = $slug->slugify(pathinfo($this->file_image->getClientOriginalName(), PATHINFO_FILENAME));
  219. if(file_exists($this->getUploadRootDir().'/'.$image_new_name.'.'.$this->file_image->guessExtension())) {
  220. $file_exists_count = 1;
  221. while(file_exists($this->getUploadRootDir().'/'.$image_new_name.'_'.$file_exists_count.'.'.$this->file_image->guessExtension())) {
  222. $file_exists_count++;
  223. }
  224. $image_new_name = $image_new_name.'_'.$file_exists_count;
  225. }
  226. $this->setImage($image_new_name.'.'.$this->file_image->guessExtension());
  227. $this->setTitle($image_new_name);
  228. }
  229. }
  230. /**
  231.   * @ORM\PostPersist()
  232.   */
  233. public function upload()
  234. {
  235. if(is_object($this->file_image)) {
  236. $this->file_image->move($this->getUploadRootDir(), $this->getImage());
  237. }
  238. }
  239. /**
  240.   * @ORM\PostRemove()
  241.   */
  242. public function removeUpload()
  243. {
  244. if ($file = $this->getAbsolutePath() AND $this->getImage()!='') {
  245. if(file_exists($file)) {
  246. unlink($file);
  247. }
  248. }
  249. }
  250. /**
  251.   * Set idAlbum
  252.   *
  253.   * @param \Acme\Bundle\AdminBundle\Entity\Albums $idAlbum
  254.   * @return AlbumImages
  255.   */
  256. public function setIdAlbum(\Acme\Bundle\AdminBundle\Entity\Albums $idAlbum = null)
  257. {
  258. $this->idAlbum = $idAlbum;
  259.  
  260. return $this;
  261. }
  262. /**
  263.   * Get idAlbum
  264.   *
  265.   * @return \Acme\Bundle\AdminBundle\Entity\Albums
  266.   */
  267. public function getIdAlbum()
  268. {
  269. return $this->idAlbum;
  270. }
  271. }


  1. <?php
  2. public function album_images(Request $request, $id)
  3. {
  4. $em = $this->getDoctrine()->getManager();
  5. $album = $em->getRepository('AcmeAdminBundle:Albums')->find($id);
  6. if (!$album) return $this->redirectToRoute('admin_studio');
  7. $form = $this->createFormBuilder()
  8. ->add('file_image','file',array('label'=>'Zdjęcia','multiple'=>true))
  9. ->add('save', 'submit', array('label' => 'Dodaj zdjęcia do albumu'))
  10. ->getForm();
  11. $image_errors = array();
  12. if($request->isMethod('POST')) {
  13. $form->handleRequest($request);
  14. $file_count = count($form["file_image"]->getData());
  15. if($file_count>0) {
  16. foreach($form["file_image"]->getData() as $file_key=>$file) {
  17. $albumImage = new AlbumImages();
  18. $albumImage->setIdAlbum($album);
  19. $albumImage->file_image = $file;
  20. $validator = $this->get('validator');
  21. $errors = $validator->validate($albumImage);
  22. if(count($errors)==0) {
  23. $em->persist($albumImage);
  24. $em->flush();
  25. }else {
  26. foreach($errors as $error) {
  27. $image_errors[$file_key]['file_name'] = $file->getClientOriginalName();
  28. $image_errors[$file_key]['errors'][] = $error->getMessage();
  29. }
  30. }
  31. }
  32. $this->addFlash('success','Zdjęcia zostały dodane');
  33. if(count($image_errors)>0) {
  34. $error_message = '<b>Wystąpiły błędy:</b>';
  35. foreach($image_errors as $image_errors_k=>$image_errors_v) {
  36. $error_message .= '<br/>Plik: <u>'.$image_errors_v['file_name'].'</u>';
  37. $error_message .= '<ul><li>'.implode('</li><li>',$image_errors_v['errors']).'</li></ul>';
  38. }
  39. $this->addFlash('error',$error_message);
  40. }
  41. return $this->redirectToRoute('admin_studio_album_images', array('id' => $id));
  42. }
  43. }
  44. $albumImages = $em->getRepository('AcmeAdminBundle:AlbumImages')->findBy(array('idAlbum'=>$id));
  45. $this->view_data['title']['subheader'] = 'Zdjęcia do albumu: '.$album->getName();
  46. $this->view_data['form'] = $form->createView();
  47. $this->view_data['albumImages'] = $albumImages;
  48. $this->view_data['album'] = $album;
  49. $this->view_data['studio'] = $album->getIdStudio();
  50. return $this->render('@AcmeAdmin/Studio/albums/album_images.html.twig',$this->view_data);
  51. }
  Forum: Frameworki · Podgląd postu: #1229815 · Odpowiedzi: 6 · Wyświetleń: 344

aras785
Napisane: 21.02.2018, 15:51:28





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Oczywiście...

wywal accept z pola typu file:

  1. <input type='file' accept='text/plain' onchange='openFile(event)'>


na

  1. <input type='file' onchange='openFile(event)'>


Jeśli chodzi o reset to wystarczy:
  1. input.value = "";


https://jsfiddle.net/60py489j/293/
  Forum: Po stronie przeglądarki · Podgląd postu: #1229532 · Odpowiedzi: 5 · Wyświetleń: 396

aras785
Napisane: 21.02.2018, 11:32:52





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Pokaże pierwszy wiersz: https://jsfiddle.net/60py489j/267/
  Forum: Po stronie przeglądarki · Podgląd postu: #1229500 · Odpowiedzi: 5 · Wyświetleń: 396

aras785
Napisane: 21.02.2018, 11:12:11





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć, specjalnie dla Ciebie zainstalowałem sobie SF3 aby rozwiązać Twój problem tongue.gif
Nie powiem Ci gdzie masz błąd bo nie dałeś wszystkich plików (gdzie akcja z logowaniem?) ale pokaże Ci sposób w jaki sposób stworzyć prosty system autoryzacji

Jedziemy:

1. Zainstalowałem sobie symfony 3 (my_project)
2. Stworzyłem bazę w phpmyadmin (symfony3) i dodałem dane dostępowe do konfiguracji (app/config/parameters.yml)
3. Dodałem entity (src/AppBundle/Entity/User.php):

  1. <?php
  2.  
  3. namespace AppBundle\Entity;
  4.  
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Symfony\Component\Security\Core\User\AdvancedUserInterface;
  7.  
  8. /**
  9.  * @ORM\Table(name="app_users")
  10.  * @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
  11.  */
  12. class User implements AdvancedUserInterface, \Serializable
  13. {
  14. /**
  15.   * @ORM\Column(type="integer")
  16.   * @ORM\Id
  17.   * @ORM\GeneratedValue(strategy="AUTO")
  18.   */
  19. private $id;
  20.  
  21. /**
  22.   * @ORM\Column(type="string", length=25, unique=true)
  23.   */
  24. private $username;
  25.  
  26. /**
  27.   * @ORM\Column(type="string", length=64)
  28.   */
  29. private $password;
  30.  
  31. /**
  32.   * @ORM\Column(type="string", length=60, unique=true)
  33.   */
  34. private $email;
  35.  
  36. /**
  37.   * @ORM\Column(name="is_active", type="boolean")
  38.   */
  39. private $isActive;
  40.  
  41. public function __construct()
  42. {
  43. $this->isActive = true;
  44. // may not be needed, see section on salt below
  45. // $this->salt = md5(uniqid('', true));
  46. }
  47.  
  48. public function getUsername()
  49. {
  50. return $this->username;
  51. }
  52.  
  53. public function getSalt()
  54. {
  55. // you *may* need a real salt depending on your encoder
  56. // see section on salt below
  57. return null;
  58. }
  59.  
  60. public function getPassword()
  61. {
  62. return $this->password;
  63. }
  64.  
  65. public function getRoles()
  66. {
  67. return array('ROLE_USER');
  68. }
  69.  
  70. public function eraseCredentials()
  71. {
  72. }
  73.  
  74. public function isAccountNonExpired()
  75. {
  76. return true;
  77. }
  78.  
  79. public function isAccountNonLocked()
  80. {
  81. return true;
  82. }
  83.  
  84. public function isCredentialsNonExpired()
  85. {
  86. return true;
  87. }
  88.  
  89. public function isEnabled()
  90. {
  91. return $this->isActive;
  92. }
  93.  
  94. /** @see \Serializable::serialize() */
  95. public function serialize()
  96. {
  97. return serialize(array(
  98. $this->id,
  99. $this->username,
  100. $this->password,
  101. $this->isActive,
  102. // see section on salt below
  103. // $this->salt,
  104. ));
  105. }
  106.  
  107. /** @see \Serializable::unserialize() */
  108. public function unserialize($serialized)
  109. {
  110. list (
  111. $this->id,
  112. $this->username,
  113. $this->password,
  114. $this->isActive,
  115. // see section on salt below
  116. // $this->salt
  117. ) = unserialize($serialized);
  118. }
  119.  
  120. /**
  121.   * Get id
  122.   *
  123.   * @return integer
  124.   */
  125. public function getId()
  126. {
  127. return $this->id;
  128. }
  129.  
  130. /**
  131.   * Set username
  132.   *
  133.   * @param string $username
  134.   *
  135.   * @return User
  136.   */
  137. public function setUsername($username)
  138. {
  139. $this->username = $username;
  140.  
  141. return $this;
  142. }
  143.  
  144. /**
  145.   * Set password
  146.   *
  147.   * @param string $password
  148.   *
  149.   * @return User
  150.   */
  151. public function setPassword($password)
  152. {
  153. $this->password = $password;
  154.  
  155. return $this;
  156. }
  157.  
  158. /**
  159.   * Set email
  160.   *
  161.   * @param string $email
  162.   *
  163.   * @return User
  164.   */
  165. public function setEmail($email)
  166. {
  167. $this->email = $email;
  168.  
  169. return $this;
  170. }
  171.  
  172. /**
  173.   * Get email
  174.   *
  175.   * @return string
  176.   */
  177. public function getEmail()
  178. {
  179. return $this->email;
  180. }
  181.  
  182. /**
  183.   * Set isActive
  184.   *
  185.   * @param boolean $isActive
  186.   *
  187.   * @return User
  188.   */
  189. public function setIsActive($isActive)
  190. {
  191. $this->isActive = $isActive;
  192.  
  193. return $this;
  194. }
  195.  
  196. /**
  197.   * Get isActive
  198.   *
  199.   * @return boolean
  200.   */
  201. public function getIsActive()
  202. {
  203. return $this->isActive;
  204. }
  205. }


4. Następnie użyłem: php bin/console doctrine:schema:update --force i dodatkowo wygenerowalem gettery i settery: php bin/console doctrine:generate:entities AppBundle
5. Następnie stworzyłem kontroller do logowania,rejestracji (dane ręcznie zadeklarowane do testów), sprawdzenia czy jest zalogowany (src/AppBundle/Controller/SecurityController.php):
  1. <?php
  2. namespace AppBundle\Controller;
  3.  
  4. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Security\Core\User\UserInterface;
  10. use AppBundle\Entity\User;
  11.  
  12. class SecurityController extends Controller
  13. {
  14. /**
  15.   * @Route("/login", name="login")
  16.   */
  17. public function loginAction(Request $request)
  18. {
  19. return $this->render('security/login.html.twig');
  20. }
  21. /**
  22.   * @Route("/admin")
  23.   */
  24. public function adminAction()
  25. {
  26. $auth_checker = $this->get('security.authorization_checker');
  27. $token = $this->get('security.token_storage')->getToken();
  28. var_dump($token->getUser());
  29. return new Response('<html><body>Admin page!</body></html>');
  30. }
  31. /**
  32.   * @Route("/register")
  33.   */
  34. public function registerAction(Request $request, UserPasswordEncoderInterface $passwordEncoder)
  35. {
  36. $user = new User;
  37. $password = $passwordEncoder->encodePassword($user, 'admin');
  38. $user->setPassword($password);
  39. $user->setEmail('admin@admin.lc');
  40. $user->setUsername('admin');
  41. $em = $this->getDoctrine()->getManager();
  42. $em->persist($user);
  43. $em->flush();
  44.  
  45. }
  46. }

6. Dodałem widok dla logowania (app/Resources/views/security/login.html.twig):
  1. <form action="{{ path('login') }}" method="post">
  2. <label for="username">Username:</label>
  3. <input type="text" id="username" name="_username" value="" />
  4.  
  5. <label for="password">Password:</label>
  6. <input type="password" id="password" name="_password" />
  7.  
  8. {#
  9. If you want to control the URL the user
  10. is redirected to on success (more details below)
  11. <input type="hidden" name="_target_path" value="/account" />
  12. #}
  13.  
  14. <button type="submit">login</button>
  15. </form>


7. Dodałem kilka linijek do security (gdzie logowanie, gdzie ma dostep): app/config/security.yml :
  1. security:
  2. encoders:
  3. AppBundle\Entity\User:
  4. algorithm: bcrypt
  5. providers:
  6. our_db_provider:
  7. entity:
  8. class: AppBundle:User
  9. property: username
  10. firewalls:
  11. main:
  12. anonymous: ~
  13. form_login:
  14. login_path: login
  15. check_path: login
  16. access_control:
  17. - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
  18. - { path: ^/admin, roles: ROLE_USER }



Po wejściu na /admin przenosi Cię do logowania.
Jeśli jesteś zalogowany to po wejściu na /admin pokazuje Ci obiekt użytkownika zalogowanego

Daj znać czy działa smile.gif
  Forum: Frameworki · Podgląd postu: #1229496 · Odpowiedzi: 2 · Wyświetleń: 362

aras785
Napisane: 20.02.2018, 00:39:31





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć,

dzieje się tak ponieważ pobierasz zawsze ten sam element (var idnoti = $("#idnoti").val();). Używaj $(this) po kliknięciu. Na upartego wystarczy zmienić u Ciebie jedną linijkę:

var idnoti = $("#idnoti").val();
na: var idnoti = $(this).parent().find("#idnoti").val();

ale ja bym napisał to mniej więcej tak:

  1. if(mysql_num_rows($wynik) > 0) {
  2. while($r = mysql_fetch_assoc($wynik)) {
  3. echo '
  4. <table class="table noti">
  5. <tr>
  6. <td><span style="background:'.$r['color'].'; padding-top: 5px;" class="noft-icon fa '.$r['icon'].'"></span></td>
  7. <td class="textnoti">'.$r['tresc'].'</td>
  8. <td class="closenoti"><a href="#" data-action="change" data-id="'.$r['id'].'"><i class="fa fa-times-circle" aria-hidden="true"></i></a></td>
  9. </tr>
  10. </table>
  11. ';
  12. }
  13. }

  1. <script type="text/javascript">
  2. //Rejestracja
  3. $(document).ready(function() {
  4. $('table.noti').on('click','[data-action="change"]', function(e) {
  5. e.preventDefault();
  6. var id = $(this).attr('data-id');
  7. $.ajax({
  8. url:"noti/change.php",
  9. method:"POST",
  10. data:{idnoti:id},
  11. dataType:"JSON",
  12. success:function(data) {
  13. console.log(data);
  14. }
  15. })
  16. });
  17. });
  Forum: XML, AJAX · Podgląd postu: #1229436 · Odpowiedzi: 2 · Wyświetleń: 348

aras785
Napisane: 19.02.2018, 14:23:29





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Może coś takiego zadziała:

  1. $('#field').on('keyup keypress blur change input', function(e) {
  2. console.log('zmiana');
  3. });
  Forum: Po stronie przeglądarki · Podgląd postu: #1229406 · Odpowiedzi: 5 · Wyświetleń: 311

aras785
Napisane: 19.02.2018, 14:01:27





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć,

dodaj dodatkowe nasłuchiwanie na: change lub zablokuj autouzupełnianie smile.gif


  1. $('#field').on('keyup change', function(e) {
  2. console.log('zmiana');
  3. });
  Forum: Po stronie przeglądarki · Podgląd postu: #1229403 · Odpowiedzi: 5 · Wyświetleń: 311

aras785
Napisane: 19.02.2018, 14:51:32





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

O to chodzi?

  1. <?php
  2. // wielkość pola między 1 a 12
  3. $box_size = 0.05;
  4.  
  5. // liczby 84 i 180 są maksymalną wielkością (od ujemnej do dodatniej) mapy google
  6. $lat_limit = 50;
  7. $lat_limit_min = 49;
  8. $lng_limit = 17;
  9. $lng_limit_min = 16;
  10.  
  11. $result = '';
  12. $land_insert_statement = "coord_slug , lat , lng";
  13. $result .= $land_insert_statement;
  14. $result .= '<br>';
  15.  
  16. $i = 0.05;
  17. for ($lng = $lng_limit_min; $lng <= $lng_limit; $lng = $lng + $box_size) {
  18.  
  19. for ($lat = $lat_limit_min; $lat <= $lat_limit; $lat = $lat + $box_size) {
  20. // Zapobiega błędowi, w którym -180 i 180 nakładają się, tworząc ląd, do którego interfejs użytkownika nie może uzyskać dostępu
  21. if ($lng != '-180') {
  22. $coord_slug = $lat . ',' . $lng;
  23. $e_lat = explode('.',$lat);
  24. $e_lng = explode('.',$lng);
  25. if(((array_key_exists(1, $e_lat) && strlen($e_lat[1])==2) && !(array_key_exists(1, $e_lng) && strlen($e_lng[1])==2)) || ((array_key_exists(1, $e_lng) && strlen($e_lng[1])==2) && !(array_key_exists(1, $e_lat) && strlen($e_lat[1])==2))) continue; // ew. uzyj w celu zaznaczenia: $result .= '<font color="red">blad: </font>';
  26.  
  27. $result .= " . $coord_slug . ', ' . $lat . ', ' . $lng . '";
  28. if ($i % 1000 == 0)
  29. {
  30. $result .= ';';
  31. $result .= '<br>';
  32. $result .= $land_insert_statement;
  33. $result .= '<br>';
  34. } else {
  35. $result .= ',';
  36. }
  37. $result .= '<br>';
  38. $i++;
  39. }
  40. }
  41. }
  42.  
  43.  
  44. $search = ',';
  45. $replace = ';';
  46. $result = strrev(implode(strrev($replace), explode($search, strrev($result), 2)));
  47.  
  48. echo $result;
  Forum: Przedszkole · Podgląd postu: #1229409 · Odpowiedzi: 20 · Wyświetleń: 494

aras785
Napisane: 17.02.2018, 19:08:47





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Cześć.

Masz problem, że ścieżkami. W zmiennej $_GET['name'] trzymałeś aktualny folder, zamiast całej ścieżki.

Lekko poprawiony kod:
  1. <?php
  2. if($_GET['dir']=="show")
  3. {
  4. $current_file = isset($_GET['name'])?$_GET['name']:'.';
  5.  
  6. echo '<table border="1">';
  7. if ($dir = opendir("./$current_file"))
  8. {
  9. echo'<center><h2><a href="cos.php"><== Powrót do panelu</a></h2></center>';
  10. while( $file = readdir($dir))
  11. {
  12. if ($file<>"." && $file<>".." && $file<>"edit_files.php" )
  13. {
  14. if(is_dir($current_file.'/'.$file))
  15. {
  16. echo "<tr><td><a href='edit_files.php?dir=show&name=$current_file/$file'><img width='25px' height='25px' src='home_zdj/coss.png'>$file\n</a></td></tr>";
  17.  
  18. }
  19. else
  20. {
  21. echo "<tr><td><a href='edit_files.php?dir=edit&name=$current_file/$file'><img width='25px' height='25px' src='home_zdj/coss2.png'>$file\n</a></td></tr>";
  22. }
  23. }
  24. }
  25. closedir($dir);
  26. }
  27. echo '</table>';
  28. }
  29.  
  30.  
  31.  
  32. else if($_GET['dir']=="edit")
  33. {
  34. $file = $_GET['name'];
  35.  
  36.  
  37.  
  38. if(is_file($file))
  39. {
  40. if ($file<>"" && file_exists($file))
  41. {
  42. echo "<h3><center><p> </p>Edycja pliku: <b>$file</b></h3></center>";
  43. echo '<form action="edit_files.php?dir=save" method="post"><input type="hidden" name="sciezka" value="'.$file.'" /><textarea name="tekst" rows="50" cols="200">';
  44. $f = fopen($file,"r");
  45. while(!feof($f)) echo fread($f,1024);
  46. fclose($f);
  47. echo '</textarea><input type="submit" value="Zapisz" /></form>';
  48. }
  49. }
  50.  
  51. }
  52. else if($_GET['dir']=="save")
  53. {
  54. $edycja = $_POST["sciezka"];
  55. $nowedane = $_POST["tekst"];
  56. $fp = fopen($edycja, "w+");
  57. fwrite($fp, $nowedane);
  58. fclose($fp);
  59. echo "<center><h2>pomyślnie zapisano plik<br /><a href='cos.php'>powrót do panelu</a><br/><a href='edit_files.php?dir=show'>powrót do plików</a></h2></center>";
  60. }
  61.  
  62.  
  Forum: PHP · Podgląd postu: #1229321 · Odpowiedzi: 2 · Wyświetleń: 245

aras785
Napisane: 16.02.2018, 13:57:19





Grupa: Zarejestrowani
Postów: 733
Dołączył: 29.10.2009

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

Za dużo pętli...

  1. <div class="flexible-items">
  2. <?php foreach($arrayBlock as $k=>$block): ?>
  3. <div class="flexible-box text-center">
  4. <img src="<?php echo $block['img'];?>" alt="" class="img-fluid" style="height: 100px; width: 100px;">
  5. <p style="font-size: 20px;"><?php echo $block['title'];?></p>
  6. <p style="text-align: justify; font-size: 1.4em;"><?php echo $block['opis'];?></p>
  7. </div>
  8. <?php endforeach; ?>
  9. </div>
  Forum: Przedszkole · Podgląd postu: #1229278 · Odpowiedzi: 2 · Wyświetleń: 148

6 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: 27.04.2018 - 09:17