Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]If w php
Forum PHP.pl > Forum > Przedszkole
Altres
Witam w programowaniu if rozumiem ale w php nie rozumiem go wo gule mam taki kod

  1. <?php
  2.  
  3. if ($ilePlikow==1)
  4. {
  5. header('location: strona.php?wynik=sukces');
  6. exit();
  7.  
  8. }
  9.  
  10. elseif ($ilePlikow==2)
  11.  
  12. {
  13.  
  14. header('location: strona2.php?wynik=sukces');
  15. exit();
  16. }
  17.  
  18. ?>



I dlaczego on nie działa gdy dam jaką kol wiek wartość to wyświetla się pusta strona i nic się nie dzieje
PanGuzol
A gdzie ustawiasz wartość zmiennej $ilePlikow ?
Altres
W formularzu we wcześniejszym pliku jest poprawny bo jak dam tylko if bez elseif to wszystko działa jak dodam elseif to już nie.
everth
Sprawdź jaka jest wartość $ilePlikow bo może się okazać że nie spełnia żadnego warunku.
Altres
spełnia 1 warunek
!*!
nie

Kod
header('location: strona.php?wynik=sukces');


a

Kod
header('Location: http://local/strona.php?wynik=sukces');


i może spróbuj:

Kod
$ilePlikow=='2'


Poza tym chcesz wysłać zależnie od wyniku na tą samą stronę?
Fifi209
Cytat(!*! @ 26.07.2010, 18:17:47 ) *
nie

Kod
header('location: strona.php?wynik=sukces');


a

Kod
header('Location: http://local/strona.php?wynik=sukces');


i może spróbuj:

Kod
$ilePlikow=='2'


Poza tym chcesz wysłać zależnie od wyniku na tą samą stronę?

Przekierowanie jest dobre.

Co do
Kod
$ilePlikow=='2'


PHP sam rzutuje na typ int przy jego porównaniu.

@topic
Pokaż formularz i część która odbiera go.
Altres
Nic to nie daje a co do wysyłania na tą samą stronę to dałem do testów taką samą stronę jak zacznie działać kod to zmienię stronę

Formularz

  1. <title>Wybierz ilość plików do wgrania</title>
  2. </head>
  3. <body>
  4. <form name="form1" method="post" action="if.php">
  5. Ile plików chciałbyś wgrać? (Max = 9).
  6.  
  7. <input name="ilePlikow" type="text" id=" ilePlikow " maxlength="1" />
  8.  
  9.  
  10. <input type="submit" name="Submit" value="Dalej" />


części która odbiera go jeszcze nie mam bo stoję na tym if ale ona jak na razie nie ma znaczenia .
!*!
Odbierz if.php post
Kod
$ilePlikow = $_POST['ilePlikow'];


Edit, wybacz, zagmatwałeś dlatego nie zrozumiałem winksmiley.jpg
Altres
A po polsku zmiana przekierowania nie działa a w kodzie jest taka sama strona bo dałem ją do testowania jak tak ci zależy to zmieniam adres na strona2 i co to zmienia questionmark.gif

Może ktoś wie jak zrobić inaczej takie odwoływanie questionmark.gif bo z header coś mi nie działa .
everth
Porób var_dump($ilePlikow) w każdej sekcji i sprawdź czy któraś część warunku się wykonuje i jaka jest wartość zmiennej na wyjściu.
Fifi209
Cytat(Altres @ 26.07.2010, 18:22:33 ) *
części która odbiera go jeszcze nie mam bo stoję na tym if ale ona jak na razie nie ma znaczenia .

Ma znaczenie.

Strzelam, że wyłączone register globals więc zamiast:
  1. $ilePlikow


Będzie:
  1. $_POST['ilePlikow']


a to kompletnie zmienia sprawę. winksmiley.jpg

Cytat(Altres @ 26.07.2010, 18:25:21 ) *
A po polsku zmiana przekierowania nie działa a w kodzie jest taka sama strona bo dałem ją do testowania jak tak ci zależy to zmieniam adres na strona2 i co to zmienia questionmark.gif

Może ktoś wie jak zrobić inaczej takie odwoływanie questionmark.gif bo z header coś mi nie działa .

Wszystko działa, tylko przed nagłówkami nie możesz nic innego wysyłać bo dostaniesz: headers already sent

Cytat(!*! @ 26.07.2010, 18:24:00 ) *
Odbierz if.php post
Kod
$ilePlikow = $_POST['ilePlikow'];


Edit, wybacz, zagmatwałeś dlatego nie zrozumiałem ;)


Nie ucz go złych nawyków, nie zrobi jak ja napisałem.
Altres
Działa wielkie dzięki a swoją drogą jak włączyć register globals questionmark.gif
!*!
Dlaczego jest to zły nawyk według Ciebie fifi209?
Fifi209
Cytat(Altres @ 26.07.2010, 18:30:28 ) *
Działa wielkie dzięki a swoją drogą jak włączyć register globals questionmark.gif

Nawet nie próbuj tego włączać bo się nauczysz jeszcze gorszych rzeczy.

Cytat(!*! @ 26.07.2010, 18:30:45 ) *
Dlaczego jest to zły nawyk według Ciebie fifi209?

Jak widzisz w setkach linii $_POST['pole'] to wiesz skąd to się zabrało - i nie mówię tu o własnym kodzie tylko np. o czyimś. Równie dobrze możesz walnąć extract...

@Altres & !*!
Poza tym łatwiej o błąd przy register globals:

  1.  
  2. if (!empty($_POST['pole'] && ctype_alpha($_POST['pole'])) {
  3. $pole = $_POST['pole'];
  4. }


zabezpieczone? NIE! Podam w $_GET['pole'] dowolną wartość i nie musi przechodzić walidacji.

Część 12 ;)
!*!
Nie zgodziłbym się z tym, ponieważ na początku (z reguły) masz

Kod
$pole = $_POST['pole'];


I później $pole elegancko obrabiasz, nie wyobrażam sobie żeby wpisywać cały czas tylko $_POST['pole'], tym bardziej że choćby sama nazwa może zostać w formularzu zmieniona np. przez następną ekipę remontową. Zresztą to indywidualna sprawa każdego kodera.
Fifi209
Cytat(!*! @ 26.07.2010, 18:48:00 ) *
Nie zgodziłbym się z tym, ponieważ na początku (z reguły) masz

Kod
$pole = $_POST['pole'];


I później $pole elegancko obrabiasz, nie wyobrażam sobie żeby wpisywać cały czas tylko $_POST['pole'], tym bardziej że choćby sama nazwa może zostać w formularzu zmieniona np. przez następną ekipę remontową. Zresztą to indywidualna sprawa każdego kodera.

Rozmawiamy w przypadku włączonej dyrektywy register globals.
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.