Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


Thorang Hoog
Napisane: 12.05.2013, 21:58:20





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Nie. Sesje kończysz w momencie kiedy na przykład użytkownik się wyloguje.
  Forum: Przedszkole · Podgląd postu: #1044701 · Odpowiedzi: 7 · Wyświetleń: 309

Thorang Hoog
Napisane: 8.05.2013, 09:21:53





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Cytując książkę php5: programowanie
Cytat
Wartości zmiennoprzecinkowe są tylko przybliżonymi przedstawieniami liczb. Na przykład 3,5 jest w wielu systemach przedstawione jako 3,4999999999. Oznacza to, że należy próbować uniknąć pisania kodu, który przyjmuje, że liczby zmiennoprzecinkowe są przedstawiane dokładnie, jak również unikać porównywania dwóch wartości zmiennoprzecinkowych przy użyciu znaku ==. Zazwyczaj stosuje się porównanie do kilkudziesięciu miejsc po przecinku:
  1. if ( int($a * 1000) == int ($b * 1000 )){
  2. #liczby równe do trzech miejsc po przecinku
  3. }


Różne języki programowania różnie interpretują liczby zmiennoprzecinkowe. Dużo zależy od procesora twojej maszyny.
Możesz użyć rozszeżeń BCMath lub GMP
  Forum: PHP · Podgląd postu: #1043568 · Odpowiedzi: 2 · Wyświetleń: 372

Thorang Hoog
Napisane: 27.04.2013, 17:53:23





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Pokwapiłem się usunąć wszystkie dwukropki z nazw pól.
  1. <form action="x.php" method="post">
  2. <!--Nick-->
  3. <input type="text" name="nick" maxlength="10" size="10">
  4.  
  5. <br/>
  6.  
  7. <!--haslo-->
  8. <b>Haslo:</b>
  9. <input type="password" name="haslo" maxlength="10" size="10">
  10.  
  11. <br/>
  12.  
  13. <!--2cyfry-->
  14. <b>2cyfry:</b>
  15. <input type="text" name="2cyfry" maxlength="2" size="2">
  16.  
  17. <br/>
  18.  
  19. <!--4cyfry-->
  20. <b>4cyfry:</b>
  21. <input type="text" name="4cyfry" maxlength="4" size="4">
  22.  
  23. <br/>
  24. <br/>
  25.  
  26. <!--potwierdzenie-->
  27. <input type="submit" value="okej"/>
  28. </div>
  29. </form>


A tu skrypcik PHP który odwala czarną robotę.

X.php
Na początku pliku znajdują się dane które powinieneś dopasować do swoich wymagań

  1. <?PHP
  2.  
  3. /*
  4. Nick może składać się z liter liczb oraz zanków "-" oraz "_"
  5. Hasło natomiast z liter, liczb i wszystkich znaków które wymagają tuszu do druku
  6. Zarówno nick jak i hasło mogą zawierać polskie znaki kodowane w UTF-8
  7.  
  8. 2 liczby to 2 liczby jak mniemam
  9. 4 adekwatnie ;)
  10. */
  11. // Adres strony z błędem po źle wypełnionych danyh
  12. $error = "error.html";
  13.  
  14. // Adres strony wyświetlonej kiedy nie uda się zapisać dobrze wysłanych danych
  15. $save_error = "save_error.html";
  16.  
  17. // Adres strony z dobrze wypełnionymi danymi
  18. $good = "good.html";
  19.  
  20. // plik z danymi. Dobrze by było go umieścić poza głównym folderem aplikacjii aby nikt nie miał do niego dostępu. Inaczej ktoś wykradnie wszystkie dane wpisując jego adres w
  21. // przeglądarce
  22. $plik = "dane.txt";
  23.  
  24. // Maksymalna liczba znaków w Nicku
  25. $nick_max = 15;
  26.  
  27. // Maksymalna liczba znaków w Haśle
  28. $haslo_max = 15;
  29.  
  30. // Sprawdzenie danych wejściowych
  31.  
  32. // Czy zostały wysłane wszystkie wymagane pola
  33. $nick = $haslo = $cyfry2 = $cyfry4 = "";
  34. if ( isset ($_POST['nick']) )
  35. {
  36. $nick = $_POST['nick'];
  37. }
  38. if ( isset ($_POST['haslo']) )
  39. {
  40. $haslo = $_POST['haslo'];
  41. }
  42. if ( isset ($_POST['2cyfry']) )
  43. {
  44. $cyfry2 = $_POST['2cyfry'];
  45. }
  46. if ( isset ($_POST['4cyfry']) )
  47. {
  48. $cyfry4 = $_POST['4cyfry'];
  49. }
  50.  
  51. // sprawdzenie przesłanych danych
  52. if
  53. (
  54. ! preg_match ("/^[a-zA-Z0-9-_ĄĘĆŚÓŁŻŹĆŃąęćśółżźćń]{1,".$nick_max."}$/u", $nick ) ||
  55. ! preg_match ("/^[a-zA-Z0-9:graph:ĄĘĆŚÓŁŻŹĆŃąęćśółżźćń]{1,".$haslo_max."}$/u", $haslo ) ||
  56. ! preg_match ("/^[0-9]{2}$/" , $cyfry2) ||
  57. ! preg_match ("/^[0-9]{4}$/" , $cyfry4)
  58. ){
  59. header ( "Location: ".$error ); // Dane zostały wypełnione w nieprawidłowy sposób przekierowanie do strony z błędem
  60. }
  61. else
  62. {
  63. // otwarcie pliku do zapisu
  64. if ( ! $handler = fopen ( $plik , 'at' ) )
  65. {
  66. header ( "Location: ". $save_error );
  67. }
  68. if ( ! fputs ( $handler , "NICK:".$nick.PHP_EOL."HASLO:".$haslo.PHP_EOL."2cyfry:".$cyfry2.PHP_EOL."4cyfry:".$cyfry4.PHP_EOL."##########".PHP_EOL ) )
  69. {
  70. header ( "Location: ". $save_error );
  71. }
  72. fclose ( $handler );
  73. header ( "Location: ". $good );
  74. }
  75. header ( "Location:".$error );
  76. ?>


Hasła są widoczne praktycznie dla każdego w takiej konfiguracji. Można by je zaszyfrować
albo plik gdzieś schować. Tak by nie był dostępny po wpisaniu
http://adres.twojej.strony/dane.txt
  Forum: Przedszkole · Podgląd postu: #1041690 · Odpowiedzi: 10 · Wyświetleń: 789

Thorang Hoog
Napisane: 28.04.2013, 18:40:17





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Znaczy że nie jest dla nich ustalony styl początkowy.

Jeśli wciąż nie zda testu to nie zapisuj jako counter tylko w tablicy
var counter[el]=1 lub 0
  Forum: Przedszkole · Podgląd postu: #1041894 · Odpowiedzi: 8 · Wyświetleń: 887

Thorang Hoog
Napisane: 11.04.2013, 15:47:50





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Zabrakło informacji o tym, że suma jest aliasem. Dodaj po prostu AS tak jak poniżej.
  1. SUM(CASE WHEN c.id IS NULL THEN ...END) AS isComment
  Forum: Przedszkole · Podgląd postu: #1038583 · Odpowiedzi: 6 · Wyświetleń: 1 969

Thorang Hoog
Napisane: 21.12.2009, 01:12:09





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

U mnie skrypt:
  1. <?PHP
  2.  
  3.  
  4. /*IF($mbox = imap_open("{mail.poczta.serwer.com/pop3/notls}INBOX", 'login', 'pass'))
  5.  {
  6. echo "Połączenie nawiązane<br>";
  7. $emailcou=imap_num_msg($mbox);
  8. if ($emailcou>0)
  9. {
  10.  
  11. echo '<br />Wiadomości: '.(int)$emailcou; flush();
  12. echo '<br><br>';
  13. for($i = 1; $i <= $emailcou; $i++)
  14.  
  15. {
  16.  
  17. $wiadomosc=imap_body($mbox, $i);
  18. */
  19. // preg_match('#mailto:"(.*?)"#is', $wiadomosc, $mail);
  20. $wiadomosc = "for <a href=\"mailto:adresemail@wp.pl\" onclick=\"return rcmail.command('compose'";
  21. $match =
  22. '%'.
  23. 'for\s+<a\s+href'.
  24. '\s*=\s*'.
  25. '\"mailto:'.
  26. '('.
  27. '[_a-z0-9\-]+'.
  28. '(?:'.
  29. '\.[_a-z0-9\-]+'.
  30. ')*'.
  31. '@'.
  32. '[a-z0-9\-]+'.
  33. '(?:\.[a-z0-9\-]+)*'.
  34. '(?:\.[a-z]{2,3})'.
  35. ')'.
  36. '\"\s+onclick\s*=\s*\"return\s+rcmail\.command'.
  37. '%is';
  38. preg_match($match, $wiadomosc, $mail);
  39.  
  40. print_r($mail);
  41. $mail = $mail[1];
  42.  
  43. echo $mail;
  44. /*
  45. // imap_delete($mbox, $i); // Kasuje wiadomosc
  46. flush(); }
  47. }
  48. imap_expunge($mbox);
  49. imap_close($mbox);
  50. }*/
  51. ?>

dał wynik:
Kod
Array
(
    [0] => for <a href="[email="adresemail@wp.pl"]mailto:adresemail@wp.pl[/email]" onclick="return rcmail.command
    [1] => adresemail@wp.pl
)
adresemail@wp.pl


dry.gif
Czy u ciebie w pliku php jest zapisane
linia 25 twojego przykładu: '\"[email=""]mailto:'[/email].
linia 31 twojego przykładu: [email=""]'@'[/email].

Jeśli tak to usuń [email=""] oraz [/email]
chyba że to błąd forum tongue.gif to zamieść przykładową treść maila (To zobaczę czy aby na pewno dobre podstawienie napisałem) albo spróbuj
  1. $match = '%mailto:([_a-z0-9\-]+(?:\.[_a-z0-9\-]+)*@[a-z0-9\-]+(?:\.[a-z0-9\-]+)*(?:\.[a-z]{2,3}))%is';


znajdzie pierwszy adres maila w tekście.
  Forum: PHP · Podgląd postu: #693473 · Odpowiedzi: 4 · Wyświetleń: 863

Thorang Hoog
Napisane: 20.12.2009, 22:01:15





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Spróbuj:
  1. $match =
  2. '%'.
  3. 'for\s+<a\s+href'. // for (przerwa) <a (przerwa) href
  4. '\s*=\s*'. // (przerwa) = (przerwa)
  5. '\"mailto:'. // początek stanowiący o mailu
  6. '('. // zapamiętaj podwzorzec
  7. '[_a-z0-9\-]+'. // pierwszy człon emaila
  8. '(?:'. // podwzorzec nie zapamiętany
  9. '\.[_a-z0-9\-]+'. // znaki dostępne w adresie przed @ zaczynając od kropki
  10. ')*'. // zero lub więcej razy
  11. '@'.
  12. '[a-z0-9\-]+'. // pierwszy człon domeny jeden lub więcej znaków
  13. '(?:\.[a-z0-9\-]+)*'. // możliwe kolejne człony domeny
  14. '(?:\.[a-z]{2,3})'. // koniec adresu 2 do 3 znaków
  15. ')'. // koniec podwzorca
  16. '\"\s+onclick\s*=\s*\"return\s+rcmail\.command'. // onclick (przerwa) = (przerwa) "return rcmail.command
  17. '%is'; // >> $match
  18. preg_match($match, $wiadomosc, $mail);
  Forum: PHP · Podgląd postu: #693428 · Odpowiedzi: 4 · Wyświetleń: 863

Thorang Hoog
Napisane: 17.12.2009, 16:38:21





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Check box może przesyłać kilka wartości dlatego jego nazwę zmień na:
  1. <input type="checkbox" name="checkbox[]" value="pierwszy">


dodanie checkbox[] w nazwie działa tak samo jak dodanie danych do tablicy
  1. $tablica[]="x";


dzięki temu uzyskasz tablicę numerowaną $_POST['checkbox']
i przeszukujesz jej wartości w poszukiwaniu wartości z atrybutu value np:
  1. if(in_array('pierwszy', $_POST['checkbox'])){;}


jeśli nie dodasz [] w nazwie to do skryptu będzie przekazana jedynie ostatnia zaznaczona wartość.
  Forum: PHP · Podgląd postu: #692415 · Odpowiedzi: 2 · Wyświetleń: 558

Thorang Hoog
Napisane: 14.12.2009, 21:46:19





Grupa: Zarejestrowani
Postów: 41
Dołączył: 8.02.2009

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

Cytat(thek @ 14.12.2009, 20:55:13 ) *
Problem ten można rozwiązać zdarzeniem onclick w JavaScripcie. ...


A co jeśli przeglądarka nie obsługuje JavaScript? tongue.gif

Najlepiej zrobić link do skryptu php na serwerze który doda "klika" do twojej bazy danych i przekieruje na stronę pobraną z bazy danych.

To twój stary plik trochę zmieniony:
  1. <?
  2. mysql_connect("","","");
  3.  
  4. $kodmiasta=3;
  5. $zapytanie="SELECT id, name, link, star, description, price, photo FROM offerts WHERE miasto='".$kodmiasta."' AND price<=500 ORDER BY price";
  6. $zapytaniesql=mysql_query($zapytanie);
  7.  
  8. while($rekord = mysql_fetch_array($zapytaniesql))
  9. {
  10. $id=$rekord['id'];
  11. $name=$rekord['name'];
  12. $price=$rekord['price'];
  13. $link=$rekord['link'];
  14. $star=$rekord['star'];
  15. $photo=$rekord['photo'];
  16. $description=$rekord['description'];
  17.  
  18. echo"<div id=hotel>
  19. <div id=hotel_obrazek><img alt=\"Hotel ".$name.", Londyn\" title=\"Hotel ".$name.", Londyn\" src=hotele_foto/".$photo.".jpg border=0 width=77 height=70></div>
  20. <div id=hotel_nazwa>".$name."<br /> ";
  21. for($x = 1; $x<=$star; $x++){echo "<img src=gwiazdka.png>"; }
  22. echo"</div><div id=hotel_opis>".$description."</div>
  23. <div id=hotel_cena>Pokój 2-osobowy: ".$price.",-PLN</div>
  24. <div id=hotel_wiecej>";
  25. // <a href=".$link.">LINK DO LICZENIA KLIKNIĘĆ</a>
  26. echo "<a href=link.php?id=".$id.">LINK DO LICZENIA KLIKNIĘĆ</a>";
  27. // link do skryptu zliczającego kliknięcia
  28. // i przekierowującego do strony właściwej
  29. echo"</div></div>";
  30. echo $formularz;
  31. }
  32. ?>


A to przykład skryptu zwiększającego kliknięcia.

  1. <?PHP
  2. // plik link.php
  3. // wywoływany za pomocą linka:
  4. // <a href="link.php?id=##">klik</a>
  5. // ## - numer identyfikacyjny linka
  6. mysql_connect("","","");
  7.  
  8.  
  9. $id = (int) $_GET['id'];
  10. // nieprawidłowy numer id wyświetlenie błędu 404 strona nieodnaleziona
  11. if(!$id) header("HTTP/1.0 404");
  12.  
  13. $zapytanie = "SELECT link FROM offerts WHERE id='".$id."' LIMIT 1;";
  14. $zapytaniesql = mysql_query($zapytanie);
  15.  
  16. {
  17. list($link) = mysql_fetch_array($zapytaniesql)
  18. $zapytanie = "UPDATE offerts SET klik=klik+1 WHERE id='".$id."';";
  19. mysql_query($zapytanie);// dodanie klika
  20. header("Location: ".$link); // przejście do strony z linkiem
  21. }
  22. // błąd wczytania linku
  23. // brak pozycji w bazie danych
  24. else header("HTTP/1.0 404");
  25. ?>


W prawdzie nie wiem jak takie rozwiązanie działa z pozycjonowaniem stron dry.gif
ale działa ;P
  Forum: PHP · Podgląd postu: #691359 · Odpowiedzi: 5 · Wyświetleń: 1 339


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: 9.05.2024 - 05:46