Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]SESSION i isset
Forum PHP.pl > Forum > Przedszkole
Durkane
Witam.
Mam problem z isset, użyłem tak jak poniżej jednak cały czas wyświetla mi to co jest w sesji :/ Nawet jeżeli zrobię !empty to cały czas wyświetla mi komunikat.
  1. <?php
  2.  
  3. if(isset($_SESSION['blad'])) echo $_SESSION['blad'];
  4.  
  5. ?>


  1. else
  2. {
  3. $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
  4. header('Location:index.php');
  5. }


Oczywiście ustawiłem też unset na sesji, gdy wszystko jest ok. Więc moje pytanie co jest nie tak, że u mnie cały czas isset lub !empty wyświetla ten komunikat, nawet po pierwszym wejściu na stronę : / Oczywiście u osoby, której oglądałem tutorial isset w takiej formie działało bez problemu.
Tomplus
isset($_SESSION['blad']) -> Zwraca true jeśli istnieje lub false jeśli zmiennej nie ma.
casperii
a usuwasz sesje ? session_destroy(); ?
na początku masz session_start() ?
Durkane
Jeżeli zaloguje to robię unset, nie mam nigdzie destroy smile.gif Chociaż dałem też session_destroy(); i nic nie dało... Zauważyłem,że jest tak jak się błędnie zaloguje raz to mimo tego, że wejdę po jakimś czasie to i tak i tak mam ten komunikat o błędnych danych, natomiast jeżeli zaloguje się poprawnie i wchodzę po jakimś czasie ponownie to nie ma komunikatu smile.gif

Pytanie mam jeszcze dotyczące przycisków bo kombinuje i kombinuje z nimi. Otóż mam 2 przyciski w formularzu "Zaloguj" i "Zarejestruj", w formularzu zrobiłem metode POST do przesyłania danych z 2 pól logowania. Problem tkwi w tym, że zarejestruj ma odpalać modalne okienko, jednak, gdy wciskam zarejestruj to widać, że próbuje odpalić okienko, zamyka je i loguje do serwisu... Jak wezmę ten przycisk poza formularz to nie jest on w tej samej linii co reszta zaloguj i pola tekstowe i brzydko to wygląda.

EDIT: Okej dałem !empty + session_destroy po wyświetleniu komunikatu i wszystko działa smile.gif Przyciski też już zrobiłem biggrin.gif To było łatwiejsze niż myślałem ;p

  1. <!DOCTYPE html>
  2. <html lang="pl">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http=equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. </head>
  8. <body>
  9. <?php
  10.  
  11. $to = 'michal.lupinski121@gmail.com';
  12. $name = $_POST['name'];
  13. $sur_name = $_POST['sur_name'];
  14. $pesel = $_POST['pesel'];
  15. $email = $_POST['email'];
  16. $subject ="Prośba o kod rejestracyjny";
  17. $message = "Imię: ".$imie."\n";
  18. $message .='Nazwisko : '.$nazwisko."\n";
  19. $message .='Pesel : '.$pesel."\n";
  20. $headers ="From:".$email."\n".
  21. 'MIME-Version: 1.0'."\n".
  22. 'Content-type: text/html; charset=utf-8'."\n";
  23. $message = str_replace("\n.", "\n..", $message);
  24. $headers = str_replace("\n.", "\n..", $headers);
  25.  
  26. if(empty($name) OR empty($sur_name) OR empty($pesel) OR empty($email))
  27. {
  28. echo "Musisz wypełnić wszystkie pola.";
  29. header("refresh:2;index.php");
  30. }
  31. elseif (mail($to,$subject, $message, $headers))
  32. {
  33. echo "E-mail został wysłany, proszę czekać na kod rejestracyjny.";
  34. header("refresh:2;index.php");
  35. }
  36. else
  37. {
  38. echo "E-mail nie został wysłany, przepraszamy za utrudnienia. Spróbuj ponownie później.";
  39. header("refresh:2;index.php");
  40. }
  41. ?>
  42. </body>
  43. </html>


Żeby nie zakładać nowego tematu, kolejnym problem mam z emailem, stronę wrzuciłem na cba.pl zrobiłem takie coś do wysyłania emaila i nic nie przychodzi :/ Mimo, że jest komunikat "Wiadomość została wysłana...". Gdzie zrobiłem błąd ? Mógłby ktoś naprowadzić? PRoszę tylko o wskazówki nie całe rozwiązanie smile.gif
casperii
  1. $headers = "From: michal.lupinski121@gmail.com\r\n" .
  2. 'X-Mailer: PHP/' . phpversion() . "\r\n" .
  3. "MIME-Version: 1.0\r\n" .
  4. "Content-Type: text/html; charset=utf-8\r\n" .
  5. "Content-Transfer-Encoding: 8bit\r\n\r\n";
  6.  
  7.  
  8. mail($adresMailUsera, $subject, $message, $headers);


Chociaż bym skorzystał na twoim miejscu z klasy phpmailer, bo to co teraz robisz może trafiać do spamu userowi.

  1. require "phpmailer/class.phpmailer.php"; //klase musisz sobie ściągnąć.
  2. $mail = new PHPMailer();
  3. $mail->IsMail();
  4. $mail->AddReplyTo($email, $surname);
  5. $mail->AddAddress($emailAdmin); //adres e-mail administratora
  6. $mail->AddAddress($email); //adres e-mail użytkownika
  7. $mail->SetFrom($email, $email);
  8. $mail->Subject = "Temat wiadomości";
  9. $mail->MsgHTML($msg);
  10. $mail->Send();


A najlepiej rozszerzyć to co powyżej napisałem o SMTP:

valkirek
Cytat(casperii @ 12.12.2015, 11:57:27 ) *
  1. $headers = "From: michal.lupinski121@gmail.com\r\n" .
  2. 'X-Mailer: PHP/' . phpversion() . "\r\n" .
  3. "MIME-Version: 1.0\r\n" .
  4. "Content-Type: text/html; charset=utf-8\r\n" .
  5. "Content-Transfer-Encoding: 8bit\r\n\r\n";
  6.  
  7.  
  8. mail($adresMailUsera, $subject, $message, $headers);


Chociaż bym skorzystał na twoim miejscu z klasy phpmailer, bo to co teraz robisz może trafiać do spamu userowi.

  1. require "phpmailer/class.phpmailer.php"; //klase musisz sobie ściągnąć.
  2. $mail = new PHPMailer();
  3. $mail->IsMail();
  4. $mail->AddReplyTo($email, $surname);
  5. $mail->AddAddress($emailAdmin); //adres e-mail administratora
  6. $mail->AddAddress($email); //adres e-mail użytkownika
  7. $mail->SetFrom($email, $email);
  8. $mail->Subject = "Temat wiadomości";
  9. $mail->MsgHTML($msg);
  10. $mail->Send();


A najlepiej rozszerzyć to co powyżej napisałem o SMTP:


jasne, kolega sie uczy i nie ma pojecia o podstawach a Ty juz go namawiasz na jakies klasy email (wedlug mnie debilne) tylko dlatego bo Ty umiesz. Ogarnij sie

niech sie uczy email()
casperii
Przecież dałem jemu gotowca na tacy, o co Ci chodzi? Może przeanalizować linie po linii jak będzie zainteresowany nauką.
Durkane
Zrobiłem formularz z phpmailerem, jednak coś mi nie działa... Dodałem także sprawdzanie liczb żeby ktoś nie spamował botem na emaila smile.gif Na xamppie działa, wyskakuje, że wiadomość została wysłana (oczywiście nic nie przychodzi na email, myślę, że xampp ma zablokowane to,ale mniejsza) i tu zaczyna się problem. Po wrzuceniu tego na darmowy serwer friko.pl nie działa...
Kod formularza :
  1. <div id="formularz">
  2. <form action="email.php" method="post" id="contactform">
  3. <input type="text" name="contact_name" placeholder="Imię i nazwisko" required="required" tabindex="1" />
  4. <input type="email" name="contact_email" placeholder="Adres e-mail" required="required" tabindex="2" />
  5. <textarea rows="1" columns="1" name="contact_body" placeholder="Wpisz tutaj swój Pesel" required="required" tabindex="3"></textarea>
  6. Podaj wynik: <span class="form_check_1"></span> × <span class="form_check_2"></span> = <input type="text" name="contact_check" maxlength="2" tabindex="4" />
  7. <input class="btn btn-danger" type="submit" value="Wyślij" tabindex="5" />
  8. <input type="hidden" name="contact_check_data" value="" />
  9. </form>

Wysyłanie i sprawdzanie poprawności danych
  1. <?php
  2.  
  3. require_once 'class.phpmailer.php';
  4.  
  5. $_POST = array_map('trim', $_POST);
  6.  
  7. $error = false;
  8.  
  9. if (!isset($_POST['contact_name']) || empty($_POST['contact_name'])) {
  10. $error = true;
  11. }
  12.  
  13. if (!isset($_POST['contact_email']) || empty($_POST['contact_email']) || !PHPMailer::ValidateAddress($_POST['contact_email'])) {
  14. $error = true;
  15. }
  16.  
  17. if (!isset($_POST['contact_body']) || empty($_POST['contact_body'])) {
  18. $error = true;
  19. }
  20.  
  21. if (!isset($_POST['contact_check']) || empty($_POST['contact_check']) || (int) $_POST['contact_check'] !== ((int) $_POST['contact_check_data'][0] * (int) $_POST['contact_check_data'][1])) {
  22. $error = true;
  23. }
  24.  
  25. if ($error) {
  26. exit('nok');
  27. }
  28.  
  29. $mail = new PHPMailer();
  30.  
  31. $mail->CharSet = 'UTF-8';
  32.  
  33. $mail->SetFrom($_POST['contact_email'], $_POST['contact_name']);
  34. $mail->AddAddress('*************');
  35. $mail->Subject = 'Wiadomość ze strony internetowej';
  36. $mail->Body = $_POST['contact_body'];
  37.  
  38. if (!$mail->Send()) {
  39. exit('nok');
  40. }
  41.  
  42. exit('ok');


I na końcu AJAX, który pobiera liczby od 1 do 9, wstawia je w odpowiednie miejsce, potem sprawdza ich poprawność itd itd

  1.  
  2. $(function() {
  3. var check_1 = (Math.floor(Math.random() * 9) + 1).toString(),
  4. check_2 = (Math.floor(Math.random() * 9) + 1).toString(),
  5. check = check_1 + check_2;
  6.  
  7. $('#contactform span.form_check_1').text(check_1);
  8. $('#contactform span.form_check_2').text(check_2);
  9. $('#contactform input[name="contact_check_data"]').val(check);
  10.  
  11. var sending = false;
  12. $('#contactform').on('submit', function(e) {
  13. var $form = $(this), $submit = $('input[type="submit"]', $form);
  14.  
  15. e.preventDefault();
  16.  
  17. if (sending) {
  18. return false;
  19. }
  20.  
  21. $('.form-error', $form).remove();
  22.  
  23. $('input, textarea', $form).prop('readonly', true);
  24. $submit.val('Wysyłam?');
  25. sending = true;
  26.  
  27. $.post($form.attr('action'), $form.serialize(), function(data) {
  28. if (data === 'ok') {
  29. $form.slideUp('fast', function() {
  30. $form.after('<div class="form-success">Wiadomość została wysłana! Skontaktujemy się z Tobą jak tylko to będzie możliwe.</div>');
  31. });
  32.  
  33. return true;
  34. }
  35.  
  36. $form.prepend('<div class="form-error">Wystąpił błąd podczas wysyłania formularza. Upewnij się, że wypełniłeś wszystkie pola i poprawnie rozwiązałeś działanie.</div>');
  37. $('input, textarea', $form).prop('readonly', false);
  38. $submit.val('Wyślij wiadomość');
  39. sending = false;
  40.  
  41. return false;
  42. }, 'text');
  43. });
  44. });


Czy coś tutaj jest nie tak czy po prostu friko.pl ma problemy jakieś z ajaxem lub phpmailere :/ Jeżeli możecie to proszę o podanie jakiegoś dobrego testowego serwera smile.gif
Tomplus
Darmowych i dobrych serwerów PHP jest multum, chyba nawet cba.pl oferuje lepsze parametry niż friko.pl, ale są serwery zagraniczne jak i polskie na tyle dobre że problemu nie będziesz miał.
Ew. zainwestuj w serwer płatny, to są groszowe sprawy w skali roku.

co do AJAX - do jest JS serwisy hostingowe nie ingerują w kod JS.

phpMailer
Na localhost jak i na friko.pl wysyłasz wiadomość przez funkcję mail() która to pewnie jest wyłączona przez friko, spróbuj dodać protokół SMTP (wpisz login/hasło/host) i z osobnego konta pocztowego wysyłać wiadomości.
Durkane
A czy ma ktoś jakiś tutorial z tym SMTP ? BO szczerze nie mogę znaleźć niczego jak to połączyć z mail albo phpmailer o ile można lub też jak oddzielnie to zrobić żeby wysyłało pocztę smile.gif Z góry dziękuję smile.gif

Żeby nie zakładać kolejnego tematu. Problem polega na tym, że wyświetla mi tylko 1 rekord z bazy danych,a mam ich 4 :/ Może ktoś podpowiedzieć, gdzie błąd? tzn. naprowadzić proszę, nie chce mieć wszystkiego jak na tacy. Ah no i wyświetla tylko do nazwiska reszty nie sad.gif

  1. <?php
  2. require_once "connect.php";
  3. $polaczenie = @new mysqli($host,$db_user,$db_password,$db_name);
  4. if($polaczenie->connect_errno!=0)
  5. {
  6. echo "Error: ". $polaczenie->connect_errno;
  7. }
  8. else
  9. {
  10. $sql="SELECT * FROM Spisludnosci";
  11. if ($rezultat = @$polaczenie->query($sql))
  12. {
  13. $ilu_userow = $rezultat->num_rows;
  14. $i=0;
  15.  
  16.  
  17. while ($i < $ilu_userow)
  18. {
  19.  
  20. $wiersz = $rezultat->fetch_assoc();
  21. $_SESSION['id2']=$wiersz['ID'];
  22. $_SESSION['name2']=$wiersz['Imie'];
  23. $_SESSION['surname2']=$wiersz['Nazwisko'];
  24. $_SESSION['pesel']=$wiersz['Pesel'];
  25. $_SESSION['street']=$wiersz['Ulica'];
  26. $_SESSION['nrhome']=$wiersz['Nr_domu'];
  27. $_SESSION['nrflat']=$wiersz['Nr_mieszkania'];
  28. $_SESSION['phone']=$wiersz['Telefon'];
  29. $_SESSION['status']=$wiersz['Status'];
  30. $_SESSION['agree']=$wiersz['Zgoda'];
  31.  
  32. echo "<table>";
  33. echo ' <tr>
  34. <td>'.$_SESSION['id2'].'</td>
  35. <td>'.$_SESSION['name2'].'</td>
  36. <td>'.$_SESSION['surname2'].'</td>
  37. <td>'.$_SESSION['pesel'].'</td>
  38. <td>'.$_SESSION['street'].'</td>
  39. <td>'.$_SESSION['nrhome'].'</td>
  40. <td>'.$_SESSION['nrflat'].'</td>
  41. <td>'.$_SESSION['phone'].'</td>
  42. <td>'.$_SESSION['status'].'</td>
  43. <td>'.$_SESSION['agree'].'</td>';
  44. $i++;
  45. echo "</table>";
  46. }
  47. $rezultat->free_result();
  48. $polaczenie->close();
  49. }
  50. }
  51.  
  52. ?>


Na localhost działa wszystko :/ Jednak na friko.pl już nie -.- Czy tu gdzieś jest błąd czy jak :/

Pomoże ktoś ? Od wczoraj nad tym siedzę i nie wiem co jest sad.gif Zrobiłem inną bazę dałem ją i działa tak samo jak na localhost. Jednak po zmianie na starą bazę i znów na nową bazę przestaje działać.. Na localhost nie ma z tym problemu.
Tomplus
Tutorial?

Na stronie PHPMailer masz przykłady użycia z protokołem SMTP oraz inne przykłady jak korzystać z poczty.
http://phpmailer.worxware.com/?pg=examplebsmtp

co do drugiego, nie wiem dlaczego tak komplikujesz sobie wyświetlenie danych.

jak wystarczy:

  1. if ($rezultat->num_rows > 0) {
  2. while ($wiersz = $rezultat->fetch_assoc()) {
  3. //reszta kodu
  4. }
  5. //lub
  6. $wynik = $rezultat->fetch_assoc();
  7. foreach ($wynik as $key => $wiersz) {
  8. echo $wiersz['Imie']."\n";
  9. }
  10. }
codex
podepnę się pod temat ponieważ ciągle mam ten sam problem co autor tematu z PHPMailer oraz z funkcją mail().
Pytanie brzmi - jak sprawdzić czy mój hosting( biz.nf ) ma zablokowaną funkcję mail() ?
Również za bardzo na tym etapie znajomości php nie chcę kombinować z klasami typu PHPMailer bardziej zależy mi na ogarnięciu w pierwszej kolejności funkcji mail()
Durkane
  1. <?php
  2. require_once "connect.php";
  3. $polaczenie = @new mysqli($host,'1450425272_f',$db_password,'1307947_spis');
  4. if($polaczenie->connect_errno!=0)
  5. {
  6. echo "Error: ". $polaczenie->connect_errno;
  7. }
  8. else
  9. {
  10. $sql="SELECT * FROM Spis";
  11. if ($rezultat = @$polaczenie->query($sql))
  12. {
  13. if ($rezultat->num_rows > 0)
  14. {
  15. $wynik=$rezultat->fetch_assoc();
  16. foreach ($wynik as $key => $wiersz)
  17. {
  18.  
  19.  
  20. echo "<table>";
  21. echo ' <tr>
  22. <td>'.$wiersz['ID'].'</td>
  23. <td>'.$wiersz['Imie'].'</td>
  24. <td>'.$wiersz['Nazwisko'].'</td>
  25. <td>'.$wiersz['Ulica'].'</td>
  26. <td>'.$wiersz['Nr_domu'].'</td>
  27. <td>'.$wiersz['Nr_mieszkania'].'</td>
  28. <td>'.$wiersz['Telefon'].'</td>
  29. <td>'.$wiersz['Pesel'].'</td>
  30. <td>'.$wiersz['Status'].'</td>
  31. <td>'.$wiersz['Zgoda'].'</td> </tr>';
  32. echo "</table>";
  33. }
  34. }
  35. }
  36. $rezultat->free_result();
  37. $polaczenie->close();
  38. }
  39.  
  40. ?>


Zrobiłem tak jednak to co wyświetla nie ma sensu ; o Wynik tego jest taki :
Zdjęcie z tego jak wygląda daje link bo nie mogę wrzucić jako obraz :/
Tomplus
Aby używać foreach musisz wiedzieć jak jest skonstruowana twoja tablica asocjacyjna, masz takie wyniki ponieważ pokazuje tylko pierwsze litery wyrażeń z bazy. Jak chcesz foreach to pokaż nam zrzut tabeli print_r($wynik) wtedy można dostosować odpowiednią pętlę.

Ale bez rozwodzenia się po prostu użyj tradycyjne:
  1. while ($wiersz = $result->fetch_assoc()) {
  2. // pozostały kod.
  3. }


@codex
Z tego co pamiętam, informację o tym można zobaczyć w phpinfo(); tam powinno pisać jakie funkcje a raczej biblioteki PHP są dostępne.
Ew. na stronie głównej/informacyjnej serwisu powinna być jakaś informacja na temat serwera.
Durkane
Tylko, że jak dam po prostu while to nic mi nie wyświetla :/ I tu jest ten problem.

EDIT : ok nie wiem co wtedy było nie tak,ale jak spróbowałem while z $i > $rezultat to nie działało i zmieniłem znowu na to co podałeś i teraz działa... Tylko nie mam polskich znaków mimo, że strona jest UTF-8, a baza danych UTF-8_general_ci. Lepiej ustawić polish_ci ?
viking
Lepiej ustalić SET NAMES, przeszukaj forum o tym.
Durkane
Ok zaraz poszukam smile.gif A czy można jakąś podpowiedź jak zrobić, że po kliknięciu elementu z danymi osoby, przechodzimy na podstronę, w której są one wypisane ładnie wszystkie? Bo można to pobierać np robiąc jako sesję,ale jak zrobić żeby pobierało dokładnie dane tej osoby,na której zostało kliknięte ?tongue.gif

Oraz może ktoś wie jak się nazywa takie coś jak mamy tutaj na forum, że jest np 20 postów i numerki stron tzn na 1 stronie wyświetla 1-20 na kolejnej 20-40 itd aż wszystko wyświetli tongue.gif Widziałem to już gdzieś fajnie opisane,ale nie pamiętam jak się nazywa niestety.
Tomplus
Dane przenosisz albo w metodą _GET czyli w URL, tworzysz link z danymi
albo metodą _POST => formularz (buttonik)
albo _SESSION => czego w tym wypadku odradzam

wg mnie najlepiej jest metodą _GET dajesz url: strona.php?id=".$wiersz['ID']." i każdy link generuje ci z osobną informacją

następnie na strona.php dajesz zapytanie że chcesz wyświetlić tylko jeden rekord użytkownika który ma ID = $_GET['id'] i voila.

Oczywiście, warto sprawdzić aby nikt ci nie przemycił sql injection.
Durkane
Dzięki smile.gif Czasami rozwiązania są tak banalne, że aż wstyd się robi, że o to się zapytało ;D dziękuję raz jeszcze smile.gif

Co do dzielenia na strony, znalazłem po angielsku na youtube jak koleś robi pagination tongue.gif Może uda się to ogarnąć ładnie smile.gif
Tomplus
Warto zainteresować się gotowymi rozwiązaniami:

https://github.com/onassar/PHP-Pagination
Durkane
  1. $id=$_GET['id'];
  2. $id=htmlentities($id,ENT_QUOTES, "UTF-8");
  3.  
  4. if ($rezultat = @$polaczenie->query(sprintf("SELECT * FROM Spis WHERE ID ='%s'",
  5. mysqli_real_escape_string($polaczenie,$id))))


CZy takie coś będzie dobrym sposobem zabezpieczenia przed sql injection ? Czy może jest jakiś lepszy?smile.gif
com
zły sposób bo używasz @, pyzatym bind_param, a o tym mysqli_real_escape_string zapomnij smile.gif
viking
A poza tym id jest pewnie typu integer więc:
  1. $id = (int) $_GET['id'];

W sprintf nie %s tylko %d i nie porównujesz int = 'string' tylko int = int (bez apostrofów). Jesli byś wyłączył @ i w mysql strict mode, posypały by się kolejne błędy.

3 linie kodu a ile można zmienić wink.gif
com
dodatkowo najpierw robisz zapytanie a potem dopiero mysqli_real_escape_string ...
Durkane
Hm...tak tak tam int źle zapisałem biggrin.gif a dlaczego o tym mysqli_real_escape_string zapomnieć? Wolałbym wyjaśnienia bo jestem początkujący smile.gif i działa to smile.gif
Tomplus
poczytaj o PDO -> PHP Data Object, w manualu PHP masz wszelki informacje jak łączyć się przy pomocy tego z MySQL.
com
ponieważ ta metoda to pozostałość po mysql_*, a tam to była jedyna forma "ochrony" przed sql injection, która tak łatwo dało się oszukać
Durkane
Ok dzięki smile.gif Po prostu robiłem tutorial Pana Mirosława Zelent i on stosował tam takie zabezpieczenie i to w taki sposób smile.gif Ale poczytam o tym co napisaliście smile.gif
com
ok, bo tak najprościej się oszukiwać, że sie zrobiło ochronę biggrin.gif
Durkane
Ok to takie ostatnie pytanie smile.gif Może posiada ktoś z was jakiś naprawdę dobry kurs mysql i php albo poleca książki, z których sporo się dowiem?
Comandeer
Choćby rzut oka na WikiBooks da lepsze rezultaty niż oglądanie kursu Zelenta. On jest niestety po prostu popularny i na tym lista jego zalet się kończy…
com
@up to akurat jest tak samo stare jak kurs Zelenta uczy wink.gif

Ja nwm czy książki uczą tego, tego uczy doświadczenie smile.gif manual to podstawa, warto przejrzeć tam jakie ma mysqli metody, którego używasz i używać smile.gif
Comandeer
@up tam przynajmniej jest prepared statements, a nie sprint do generowania zapytań...
Tomplus
na php.net jest wszystko, a jak potrzebujemy rozszerzenie, to wpisujemy w google i mamy multum przykładów i rozwiązań problemów.
com
Comandeer masz rację, ale jak przednim razem tam byłem to gdzieś mnie przekierowało na mysql i czyste query, widocznie źle kliknąłem biggrin.gif
Durkane
Witam jeszcze raz biggrin.gif

Mam pytanie, do którego nie chciałem zakładać tematu żeby nie zaśmiecać forum tongue.gif

Chodzi mi o to, że mam zmienną $map, która pobiera wartości z bazy danych, które są od 1 do 17. I każda wartość na przypisanego gifa do siebie, więc jeżeli pobierze wartość 6 to wyświetla gif nr 6. Zrobiłem to na ifach, ale to aż 16 ifów i jeden else tongue.gif Więc, czy jest jakaś metoda żeby to zmniejszyć do minimum linijek ? Bo tak 17 ifów to trochę lipnie wygląda biggrin.gif Myślałem o switchu, ale to też musi być caseów 17 :/
viking
  1. $gify = [6 => 'gif6.gif'];

I sprawdź czy w tablicy istnieje.
Tomplus
j.w.

  1. if (array_key_exist($wartosc_klucza,$listaGifow)) echo $gify[$wartosc_klucza];
Durkane
Ok popatrzyłem trochę na manualu tą funkcję exists tongue.gif

I tylko pytanie jak stworzę sobie
  1. $gifs=array(1=>'Obrazy/gif1.gif', 2=>...);


To normalnie to wczyta obrazki z katalogu ? czy jak ?biggrin.gif
viking
W zasadzie to nienormalnie. Poleci przez serwery najbliższej komendy policji 😉
Durkane
No chyba właśnie tak jest bo wyświetla po prostu "Obrazy/gif1.gif" itd smile.gif
viking
A te ścieżki oczywiście podajesz w img src?
Durkane
Tak daje img src="Obrazy/gif2.gif" i nic to nie daje :/

EDIT: Ok działa smile.gif Dzięki wielkie, była mała literówka biggrin.gif A zwracało po prostu wcześniej ścieżkę dostępu ;p
viking
Co w takim razie zwraca konsola? 404 dla plików? Podaj więcej informacji, kod czy coś bo nikt tu szklanej kuli nie ma.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.