Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmienna nie jest liczbą?
xamrex
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

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


Witam,
Naskrobałem skrycik, który jeśli user ma rozdzielczość (width) mniejszy niż 1280, to nie wyświetla reklam (gdyż wtedy się rozjeżdża strona)
  1. $width = "<script type='text/javascript'>document.write(''+screen.width+'');</script>";
  2.  
  3. if ( $width < 1280){
  4. echo ""; //nie wyswietla reklamy kiedy jest za mala rozdzialka
  5. }
  6. else {
  7. echo "tu jest skrypt reklam";
  8. }


No i nie działa.. (zawsze wyświetla reklamy)
Więc zrobiłem mały teści,
Zamiast
  1. if ( $width < 1280){

dałem
  1. if ( 1024 < 1280){

No i zadziałało..

To sobie myślę zmienna $width nie przechwytuje rozdzielczości..
Ale gdy wpiszę
  1. echo $width;

to jednak pokazuje mi się 1280

Co może być nie tak ?

Wydaje mi się, że problem jest w js(gdyż z js jest przekazywana zmienna)
no ale jeśli po wpisaniu:
echo $width; ukazuje mi się 1280, to dlaczego nie działa to w warunku?

Ten post edytował xamrex 3.06.2010, 09:51:16
Go to the top of the page
+Quote Post
Fantazyn
post
Post #2





Grupa: Zarejestrowani
Postów: 135
Pomógł: 38
Dołączył: 24.02.2007
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Spróbuj rzutować zmienną $width , [dodaj (int) przed tą zmienną]

Cytat(xamrex @ 3.06.2010, 09:26:36 ) *
Witam,
Naskrobałem skrycik, który jeśli user ma rozdzielczość (width) mniejszy niż 1280, to nie wyświetla reklam (gdyż wtedy się rozjeżdża strona)
  1. $width = "<script LANGUAGE='JavaScript'>document.write(''+screen_width+'');</script>";
  2.  
  3. if ( (int)$width < 1280){
  4. echo ""; //nie wyswietla reklamy kiedy jest za mala rozdzialka
  5. }
  6. else {
  7. echo "tu jest skrypt reklam";
  8. }



--------------------
Go to the top of the page
+Quote Post
Potter
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 1
Dołączył: 3.06.2010

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


Ponieważ width jest w twoim kodzie stringiem. Więc jeśli chcesz żeby to było intem, musisz zrzutować do int

$width = (int) $width;

// instrukcja warunkowa.

Poczytaj o rzutowaniu typów ;]
Go to the top of the page
+Quote Post
xamrex
post
Post #4





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

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


EDITED:
Teraz to sprawdziłem i nie działa..
zrobiłem:
$widthcyfra = (int) $width;

I teraz po wpisaniu echo $widthcyfra;
Dostaję 0

Jeśli ktoś ma chęci, to proszę sobie pobrać kod z z mojego 1szego posta, i spróbować jakoś przypisać tą zmienną co wyświetla szerokość,

Ten post edytował xamrex 3.06.2010, 10:55:39
Go to the top of the page
+Quote Post
Potter
post
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 1
Dołączył: 3.06.2010

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


$widthcyfa to co takiego?.

Przykład:

$width = 'string zwracajacy cyfre';
$width = (int)$width;


if($width < 1024) {


} else {


}
Go to the top of the page
+Quote Post
croc
post
Post #6





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Widzę niektórzy tu ładne bzdury zapodają.

NIE MOŻESZ wrzucić bezpośrednio kodu JS do PHP oczekując, że serwer go przetworzy. Masz trzy sensowne wyjścia:

1. Najbardziej sensowne: warunek wyświetlania reklamy zawrzeć w kodzie JavaScript.
2. Przekazywać rozdzielczość ekranu do linku.
3. Wyświetlać reklamy Ajaxem.

Najlepiej wybierz opcję nr 1. Możesz nawet ustalić czy reklama ma się wyświetlać kiedy JS jest wyłączony. Ja bym tak zrobił, że po prostu reklama jest zawsze osadzona w kodzie, a skrypt JS po wczytaniu strony robi coś takiego
[JAVASCRIPT] pobierz, plaintext
  1. window.onload = function() {
  2. if(screen.width < 1280) {
  3. document.getElementById('reklama').style.display = 'none';
  4. }
  5. }
[JAVASCRIPT] pobierz, plaintext

To rozwiązanie ma jedną wadę - reklama wczyta się nawet jak rozdzielczość jest niższa, tylko po prostu zniknie. Ale to chyba najlepsze możliwe rozwiązanie.

Ten post edytował croc 3.06.2010, 11:38:49
Go to the top of the page
+Quote Post
marcio
post
Post #7





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
Spróbuj rzutować zmienną $width , [dodaj (int) przed tą zmienną]

PHP raczej samo robi konwersje typow w "locie":]


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Potter
post
Post #8





Grupa: Zarejestrowani
Postów: 3
Pomógł: 1
Dołączył: 3.06.2010

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


Cytat(croc @ 3.06.2010, 12:38:30 ) *
Widzę niektórzy tu ładne bzdury zapodają.

NIE MOŻESZ wrzucić bezpośrednio kodu JS do PHP oczekując, że serwer go przetworzy. Masz trzy sensowne wyjścia:


Ja Tylko wyjaśniłem idee rzutowania typów. Jasne że serwer nie przetworzy zmiennej. Chodziło mi o naprowadzenie Pana na właściwy tok rozumowania dotyczący przekształcania liczb z stringa do inta
Go to the top of the page
+Quote Post
xamrex
post
Post #9





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

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


Dzięki croc
za uświadomienie ze nie moge kodu JS dać do PHP
Oraz dzięki za rozwiązanie numer 1 winksmiley.jpg
Go to the top of the page
+Quote Post
antyqjon
post
Post #10





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

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


Cytat(croc @ 3.06.2010, 11:38:30 ) *
Najlepiej wybierz opcję nr 1. Możesz nawet ustalić czy reklama ma się wyświetlać kiedy JS jest wyłączony. Ja bym tak zrobił, że po prostu reklama jest zawsze osadzona w kodzie, a skrypt JS po wczytaniu strony robi coś takiego
[JAVASCRIPT] pobierz, plaintext
  1. window.onload = function() {
  2. if(screen.width < 1280) {
  3. document.getElementById('reklama').style.display = 'none';
  4. }
  5. }
[JAVASCRIPT] pobierz, plaintext

To rozwiązanie ma jedną wadę - reklama wczyta się nawet jak rozdzielczość jest niższa, tylko po prostu zniknie. Ale to chyba najlepsze możliwe rozwiązanie.

No to odwrotnie - w CSS można zrobić #reklama {display: none; } a Javascriptem ją pokazywać, gdy szerokość ekranu > 1280.


--------------------
Zbyszek 'antyqjon' Siciarz

siciarz.net | Aquila DSP C++
Go to the top of the page
+Quote Post
croc
post
Post #11





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


antyqjon -> Wtedy reklama nie pokaże się, kiedy ktoś wyłączy JS.
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(croc @ 3.06.2010, 13:33:49 ) *
antyqjon -> Wtedy reklama nie pokaże się, kiedy ktoś wyłączy JS.

I dobrze ;] lubisz oglądać reklamy? haha.gif ja od razu adblockiem jadę po reklamach ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:08