Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] Problemy z If
AuronDiel
post 27.06.2012, 09:52:33
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


Witam wszystkich! Chętnych mi pomoc a nawet tych którzy raczyli zajrzeć tutaj z czystej ciekawości.
Po morderczych cieżkich próbach, przeszukaniu chmury, pozstanowiłem napisać na forum, jak to zwykły człowiek z problemem.
A mianowicie problemy sa dwa, lecz wszystkie te dotycza intrukcji if.

1.Pierwszy skrypt miał sprawdzać czy dana nazwa pliku istnieje, jesli istnieje, to nic nie robi, a jeśli nie to tworzy plik o danej nazwie wpisanej przez uzytkownika w formularzu.
  1. $nazwa_do_sprawdzenia = '$temat.php';
  2. $czy_plik_istnieje = file_exists($nazwa_do_sprawdzenia);
  3. if($czy_plik_istnieje)
  4. {
  5. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  6. }
  7. else
  8. {
  9. $fp = fopen("sc/$kategoria/$temat.php", "w");
  10. echo'Plik został utworzony.';
  11. }

W tym problem, że mój skrypt tak czy siak robi nowe pliki, nowe to złe słowo... Zastępuje je nowszymi.

2.Drugi skrypt miał za zadanie wpisać pewną treść do pliku o którym wspominałem w podpunkcie pierwszym, poczym przekierować na strone z plikiem.
  1. $test = fwrite($fp, $dane_pierwotne);
  2. if($test)
  3. {
  4. header("Location: $tresc.php");
  5.  
  6. }

W tym problem jak dobrze wiemy, header musi być na poczatku skryptu. Właśnie tutaj jest kolejny haczyk, jesli header zostanie wpisany poprawnie to od razu przekierowuje użytkownika na daną stronę, bez wypisania formularza. Kompletnie nie mam pomysłu na to.

Proszę was drodzy koledzy, koleżanki o pomoc.
Go to the top of the page
+Quote Post
Szymciosek
post 27.06.2012, 09:55:10
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


$nazwa_do_sprawdzenia = '$temat.php';

$nazwa_do_sprawdzenia = 'temat.php';

temat.php to plik, a nie zmienna.


header nie musi być na początku, są zasady dotyczące tego.
Go to the top of the page
+Quote Post
punoljoe
post 27.06.2012, 09:59:19
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 2
Dołączył: 4.07.2008

Ostrzeżenie: (30%)
XX---


oj , jestem na poziomie przypominania sobie programowania tongue.gif , ale spróbuj ....
if(empty($czy_plik_istnieje)) { }else{}

lub if($czy_plik_istnieje==null) { } else { }


a co do drugiego problemu:

z tego co wiem to header(' '); a nie header( " " );

a czy coś jeszcze ... nie wiem smile.gif

pozdrawiam
Go to the top of the page
+Quote Post
AuronDiel
post 27.06.2012, 10:00:37
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


$temat - to zmiena
$temat.php - to zmiena z dopiskiem .php

skrypt ma sprawdzic czy plik o nazwie ktora znajduje sie w zmienej $temat istnieje

to strasznie fajnie ze header nie musi byc na poczatku ale jak mi to ma pomoc?
Go to the top of the page
+Quote Post
punoljoe
post 27.06.2012, 10:02:15
Post #5





Grupa: Zarejestrowani
Postów: 52
Pomógł: 2
Dołączył: 4.07.2008

Ostrzeżenie: (30%)
XX---


Cytat(Szymciosek @ 27.06.2012, 10:55:10 ) *
$nazwa_do_sprawdzenia = '$temat.php';

$nazwa_do_sprawdzenia = 'temat.php';

temat.php to plik, a nie zmienna.


header nie musi być na początku, są zasady dotyczące tego.



header w takim przypadku nie musi być na początku... zadziała. Nie zadziała np. przy
header('Content-type: image/jpeg');

pozdrawiam

koledzy po fachu... pomocy przy temacie 'minimalizacja zdjęć - problem' ... bo mnie to wstrzymuje w pracy. Jest na tablicy . pozdrawiam
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:06:35
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
$temat - to zmiena
$temat.php - to zmiena z dopiskiem .php


Czyli powinno być

  1. $nazwa_do_sprawdzenia = "$temat.php";


albo

  1. $nazwa_do_sprawdzenia = $temat.'.php';


Ten post edytował !*! 27.06.2012, 10:07:32


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
AuronDiel
post 27.06.2012, 10:08:57
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


  1. $nazwa_do_sprawdzenia = '$temat.php';
  2. $czy_plik_istnieje = file_exists($nazwa_do_sprawdzenia);
  3. if(empty($czy_plik_istnieje))
  4. {
  5. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  6. }
  7. else
  8. {
  9. $fp = fopen("sc/$kategoria/$temat.php", "w");
  10. echo'Plik został utworzony.';
  11. }


Lipa, wypisuje mi ,,Nazwa Tematu już jest zajęta, proszę wpisać inną." na samym poczatku przed wypelnieniem formularza, a co najlepsze katalog z plikami jest pusty
wiec nie moze byc temat zajety

  1. $test = fwrite($fp, $dane_pierwotne);
  2. if($test)
  3. {
  4. header('Location: $tresc.php');
  5. }


Warning: fwrite(): supplied argument is not a valid stream resource in /home/dawtuz94/domains/yoursound.pl/public_html/skrypt.php on line 48
Wiersz 48 to właśnie ten:
  1. $test = fwrite($fp, $dane_pierwotne);
Go to the top of the page
+Quote Post
Szymciosek
post 27.06.2012, 10:09:55
Post #8





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


  1. $nazwa_do_sprawdzenia = "$temat.php";
  2. $czy_plik_istnieje = file_exists($nazwa_do_sprawdzenia);
  3. if(empty($czy_plik_istnieje))
  4. {
  5. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  6. }
  7. else
  8. {
  9. $fp = fopen("sc/$kategoria/$temat.php", "w");
  10. echo'Plik został utworzony.';
  11. }


Spróbuj tak, ma być w cudzysłowiu zmienna jeśli już albo napisz to tak:
$nazwa_do_sprawdzenia = $temat.'.php';

Ten post edytował Szymciosek 27.06.2012, 10:10:49
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:10:08
Post #9





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Przeczytaj raz jeszcze to co napisałem i popraw kod. Poza tym

  1. $czy_plik_istnieje = file_exists($nazwa_do_sprawdzenia);
  2. if(empty($czy_plik_istnieje))


To jakaś bzdura, po co w ogóle przepisujesz to do zmiennych? Wpisz to od razu do IF

Ten post edytował !*! 27.06.2012, 10:11:02


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
AuronDiel
post 27.06.2012, 10:11:07
Post #10





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


Cytat(!*! @ 27.06.2012, 11:06:35 ) *
Czyli powinno być

  1. $nazwa_do_sprawdzenia = "$temat.php";


albo

  1. $nazwa_do_sprawdzenia = $temat.'.php';

Zrobiłem to co napisałeś, zero efektów.
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:12:14
Post #11





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Pokaż kod po zmianach.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Szymciosek
post 27.06.2012, 10:13:54
Post #12





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


  1. $nazwa_do_sprawdzenia = $temat.'.php';
  2. if(file_exists($nazwa_do_sprawdzenia))
  3. {
  4. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  5. }
  6. else
  7. {
  8. $fp = fopen("sc/$kategoria/$temat.php", "w"); //tutaj jeszcze pewnie będzie błąd
  9. echo'Plik został utworzony.';
  10. }


Ciekawi mnie jeszcze fakt, że sprawdzasz czy plik istenieje temat.php... a później tworzysz go w jakimś katalogu... a sprawdzane jest w tym miejscu, gdzie masz ten plik php

Ten post edytował Szymciosek 27.06.2012, 10:15:02
Go to the top of the page
+Quote Post
AuronDiel
post 27.06.2012, 10:14:50
Post #13





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


  1. $nazwa_do_sprawdzenia = "$temat.php";
  2. $czy_plik_istnieje = file_exists($nazwa_do_sprawdzenia);
  3. if(empty($czy_plik_istnieje))
  4. {
  5. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  6. }
  7. else
  8. {
  9. $fp = fopen("sc/$kategoria/$temat.php", "w");
  10. echo'Plik został utworzony.';
  11. }
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:16:11
Post #14





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


A wiesz do czego służy empty? to po co ją dajesz w warunku, wyrzuć. I Szymciosek zauważył dobrą rzecz z katalogiem.

Ten post edytował !*! 27.06.2012, 10:17:24


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
AuronDiel
post 27.06.2012, 10:21:58
Post #15





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


  1. $nazwa_do_sprawdzenia = "$temat.php";
  2. $czy_plik_istnieje = file_exists($nazwa_do_sprawdzenia);
  3. if($czy_plik_istnieje)
  4. {
  5. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  6. }
  7. else
  8. {
  9. fopen("sc/$kategoria/$temat.php", "w");
  10. echo'Plik został utworzony.';
  11. }


Dalej nie sprawdza czy plik o takiej nazwie istnieje, tylko dodaje.
Nie widze błędu z katalogiem, to jedyna rzecz która mi działą.

A co do Empty. To nie wiem do czego sluzy i ktos kazał wpisać to wpisałem.

Ten post edytował AuronDiel 27.06.2012, 10:24:03
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:25:22
Post #16





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Sprawdzacz czy plik istnieje w katalogu gdzie jest skrypt, a później chcesz go otwierać w katalogu sc/$kategoria/$temat.php ? To raczej nie jest poprawne.

  1. if(file_exists("sc/$kategoria/$temat".'.php'))
  2. {
  3. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  4. }
  5. else
  6. {
  7. fopen("sc/$kategoria/$temat.php", "w");
  8. echo'Plik został utworzony.';
  9. }


Cytat
A co do Empty. To nie wiem do czego sluzy i ktos kazał wpisać to wpisałem.

Zauważ że ten ktoś się nie znał, a Ty powinieneś to sprawdzić.

Ten post edytował !*! 27.06.2012, 10:27:03


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Szymciosek
post 27.06.2012, 10:25:30
Post #17





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


  1. <?php
  2. $temat = 'dupa';
  3.  
  4. $nazwa_do_sprawdzenia = "$temat.php";
  5. $czy_plik_istnieje = file_exists($nazwa_do_sprawdzenia);
  6. if($czy_plik_istnieje)
  7. {
  8. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  9. }
  10. else
  11. {
  12. fopen("$temat.php", "w");
  13. echo'Plik został utworzony.';
  14. }
  15.  
  16. ?>


U mnie działa tak, tworzy plik jeśli go nie ma i wyświetla info jeśli jest

  1. <?php
  2.  
  3. $temat = 'dupa';
  4.  
  5. $nazwa_do_sprawdzenia = "$temat.php";
  6. if(file_exists($nazwa_do_sprawdzenia))
  7. {
  8. echo'Nazwa Tematu już jest zajęta, proszę wpisać inną.';
  9. } else {
  10. fopen("$temat.php", "w");
  11. echo'Plik został utworzony.';
  12. }
  13.  
  14. ?>



!*! o tym samym napisałem wyżej, dlatego dziwne to mi się wydało.

Autor: Co zwraca przed całym skryptem echo $temat ?

Ten post edytował Szymciosek 27.06.2012, 10:26:35
Go to the top of the page
+Quote Post
AuronDiel
post 27.06.2012, 10:32:09
Post #18





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 2.06.2012

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


FAKTYCZNIE!
Dobra! Dzięki! Nie skapłem się, już to poprawiłem i działą.

Ale dalej jak myślałem nawale header.
Wypisuje błąd ,,Warning: Cannot modify header information - headers already sent by (output started at /home/daw/domains/pl/public_html/skrypt.php:5) in /home/daw/domains/pl/public_html/skrypt.php on line 51"

  1. $test = fwrite($fp, $dane_pierwotne);
  2. if($test)
  3. {
  4. header('Location: sc/$kategoria/$temat.php');
  5. }
Go to the top of the page
+Quote Post
Szymciosek
post 27.06.2012, 10:33:22
Post #19





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


ob_start() na początku skryptu

ob_end_flush() na końcu skryptu
Go to the top of the page
+Quote Post
!*!
post 27.06.2012, 10:34:08
Post #20





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Wyświetlasz coś w echo, lub html przed tym. Było już wiele razy na forum. na początku index.php wklej ob_start();


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:28