Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd T_ELSEIF
Forum PHP.pl > Forum > Przedszkole
awek520
Witam.. Mam błąd w kodzie:


  1. <?php
  2. require "baza.php";
  3. if (user::isLogged()) {
  4. // Widok dla użytkownika zalogowanego
  5.  
  6. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  7. $user = user::getData('', '');
  8.  
  9.  
  10. require "baza.php";
  11. $link=mysql_query("SELECT * FROM home");
  12. while($wiersz=mysql_fetch_array($link)){
  13. echo '
  14. <center>
  15. <form method="post" action="index.php?id=17">
  16. <script type="text/javascript" src="nicEdit-latest.js"></script> <script type="text/javascript">
  17. //<![CDATA[
  18. bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
  19. //]]>
  20. </script>
  21. <center><input type="text3" name="tytul" size="" value="'.$wiersz['tytul'].'">
  22. <br>
  23. <center><textarea name="tresc" style="width: 97%;">'.$wiersz['tresc'].'</textarea>
  24. <br>
  25.  
  26. <center><input type="submit" value="EDYTUJ">';
  27. }
  28.  
  29.  
  30. elseif(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id']))
  31. {
  32. $tytul=$_POST['tytul'];
  33. $tresc=$_POST['tresc'];
  34. mysql_query("UPDATE home SET tytul='$tytul', tresc='$tresc'");
  35. echo '
  36. <center>Podstrona została poprawnie wyedytowana.<br>
  37. <a href="index.php">Kliknij tutaj!</a>';
  38. }
  39.  
  40. }
  41.  
  42. else {
  43. // Widok dla użytkownika niezalogowanego
  44. require "baza.php";
  45. $link=mysql_query("SELECT * FROM home");
  46. while($wiersz=mysql_fetch_array($link)){
  47. echo "<div class='p3'><center>";
  48. echo "".$wiersz['tytul']."
  49. </center></div><img src='images/linia.png'><br>
  50. ".$wiersz['tresc']."
  51. </div>
  52. ";
  53.  
  54. }
  55.  
  56.  
  57. }
  58.  
  59. ?>
  60. </center>


Cytat
Parse error: syntax error, unexpected T_ELSEIF in C:\WebServ\httpd\home.php on line 31


Nie jestem dobry w te klocki, a musze to zrobic.. sad.gif mógłby mi ktoś pomoc? Ma to byc taka mała edycja tresci dla zalogowanego użytkownika.. W sumie, nie wiem co tutaj tłumaczyc bo i tak większosc z Was to widzi

Pozdrawiam
Kshyhoo
Policz ile masz { i }. Z taką pierdołą na Forum?
awek520
Pasuje.. jest tylko ile powinno byc.. Nie wiem gdzie ty widzisz ten bład..
Kshyhoo
Nie umiesz policzyć do trzech? Jeżeli instrukcja otwarcia to { a zamknięcia }, to ich ilość powinna się pokrywać. Jak masz tak:
  1. if {
  2. //
  3. } elseif {
  4. //
  5. }
  6. } else {
  7. //
  8. }

To się nie dziw...

Po to używa się formatowania kodu... żeby widzieć.
awek520
Cytat(Kshyhoo @ 11.03.2014, 22:51:07 ) *
Nie umiesz policzyć do trzech? Jeżeli instrukcja otwarcia to { a zamknięcia }, to ich ilość powinna się pokrywać. Jak masz tak:
  1. if {
  2. //
  3. } elseif {
  4. //
  5. }
  6. } else {
  7. //
  8. }

To się nie dziw...

Po to używa się formatowania kodu... żeby widzieć.

No tak.. ale ten pierwszy { po if zamyka ten ostatni przed else..

Tutaj też jest jeden.. policz to dokładnie to zobaczysz..
  1. while($wiersz=mysql_fetch_array($link)){


Kshyhoo
To są twoje pętle:
  1. if (user::isLogged()) {
  2.  
  3. while($wiersz=mysql_fetch_array($link)) {
  4.  
  5. } elseif(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id'])) {
  6.  
  7. }
  8.  
  9. } else {
  10.  
  11. while($wiersz=mysql_fetch_array($link)) {
  12.  
  13. }
  14. }

Gdzie tu logika? Popatrz, policz, zmień. Wróć z "prawdziwymi" problemami.
awek520
Fatal error: Class 'user' not found in C:\WebServ\httpd\home.php on line 3 a to jest "prawdziwy" problem czy też nie ?

Ps.. Hmm.. Tak myślę że to z user coś nie tak.. ale to dziwne bo normalnie powinno to działac..
IceManSpy
A czego nie rozumiesz w tym błędzie?
Nie znaleziono klasy user.
Pewno nie zainclude'owałeś jej lub raczej nie require'owałeś.
awek520
Dodałem:

  1. require_once 'user.class.php';


i działa

Ale dalej nie wiem co z tymi { i }

: / Szukam szukam i nic..
MrCoody
patrz 38 linijkę a później zobacz na 40 smile.gif któryś z tych znaków nie jest potrzebny smile.gif
awek520
Patrzyłem, usunąłem najpierw jeden, potem drugi, potem 2 naraz.. i nic.. dalej to samo..

Piszę, że błąd w tej linijce

  1. elseif(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id']))



Korzystam z notepada i wiem gdzie znacznik { się zaczyna a kiedy kończy } .. I niby wszystko jest OK.


Gdy usunąłem:

elseif { } stronką działa normalnie.. : /
Turson
Przed elseif daj jeszcze jeden }, bo jeden masz od ifa, a od while nie jest zamkniety
awek520
Dalej nic.. To nie pomaga.. Coś innego chyba z tym jest.. Ale i tak dziękuje za pomoc..


Gdy usuwam:

elseif(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id']))
{
}

strona działa normalnie.. gdy to jest, wywala błąd.
MrCoody
dopisz w 28 } a w 40 usuń i spróbuj smile.gif
Turson
Pokaż kod po zmianach

@up
trafiłeś w sedno smile.gif
awek520
Ostatnia zmiana:


  1. <?php
  2. require "baza.php";
  3. if (user::isLogged()) {
  4. // Widok dla użytkownika zalogowanego
  5.  
  6. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  7. $user = user::getData('', '');
  8.  
  9.  
  10. require "baza.php";
  11.  
  12.  
  13. $link=mysql_query("SELECT * FROM home");
  14. while($wiersz=mysql_fetch_array($link))
  15. {
  16. echo '
  17. <center>
  18. <form method="post" action="home.php?home=wyedytuj&id=1">
  19. <script type="text/javascript" src="nicEdit-latest.js"></script> <script type="text/javascript">
  20. //<![CDATA[
  21. bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
  22. //]]>
  23. </script>
  24. <center><input type="text3" name="tytul" size="" value="'.$wiersz['tytul'].'">
  25. <br>
  26. <center><textarea name="tresc" style="width: 97%;">'.$wiersz['tresc'].'</textarea>
  27. <br>
  28.  
  29. <center><input type="submit" value="EDYTUJ">';
  30. }
  31. }
  32.  
  33. require_once 'user.class.php';
  34. elseif(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id']))
  35. {
  36. $tytul=$_POST['tytul'];
  37. $tresc=$_POST['tresc'];
  38. mysql_query("UPDATE home SET tytul='$tytul', tresc='$tresc'");
  39. echo '
  40. <center>Podstrona została poprawnie wyedytowana.<br>
  41. <a href="index.php">Kliknij tutaj!</a>';
  42. }
  43.  
  44.  
  45.  
  46.  
  47. else {
  48. // Widok dla użytkownika niezalogowanego
  49. require "baza.php";
  50. $link=mysql_query("SELECT * FROM home");
  51. while($wiersz=mysql_fetch_array($link)){
  52. echo "<div class='p3'><center>";
  53. echo "".$wiersz['tytul']."
  54. </center></div><img src='images/linia.png'><br>
  55. ".$wiersz['tresc']."
  56. </div>
  57. ";
  58.  
  59. }
  60.  
  61.  
  62. }
  63.  
  64. ?>
  65. </center>



MrCoody - Dalej nie działa.. : /
MrCoody
jaki masz błąd? co wyświetla ?
awek520
Parse error: syntax error, unexpected T_ELSEIF in C:\WebServ\httpd\home.php on line 34
Turson
require_once nie może być w linii 33, wrzuć to w elseif
MrCoody
albo zamień require_once z 33 na require i wrzuć do elseifa biggrin.gif

@up nie zauważyłem że to samo napisałeś tongue.gif
awek520
W { } czy przed tym, za elseif?

Mam teraz taki bląd:

Parse error: syntax error, unexpected T_ELSE in C:\WebServ\httpd\home.php on line 48

Jak wrzucam to do {} to znowu ten user nie wchodzi..
Turson
Wszystkie require wrzuć na samą górę
if(){

}
tutaj nic nie może być
elseif(){

}
MrCoody
daj kod po zmianie bo nie wiemy jak edytowałeś biggrin.gif
awek520
Ok, tak własnię sie domyśliłem bo miałem błąd..

Wrzuciłem to na samą górę i wywaliło teraz:

  1. Fatal error: Cannot redeclare class user in C:\WebServ\httpd\user.class.php on line 3


  1. <?php
  2.  
  3. class user {
  4.  
  5. public static $user = array();
  6.  
  7. public function getData ($login, $pass) {
  8. if ($login == '') $login = $_SESSION['login'];
  9. if ($pass == '') $pass = $_SESSION['pass'];
  10.  
  11. self::$user = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE login='$login' AND pass='$pass' LIMIT 1;"));
  12. return self::$user;
  13. }
  14.  

Nie wiem co z tym jest.. te logowanie bralem z internetu..
Turson
Błąd tyczy nie klasy. Nie dawaj 5x tego samego require. Jedno wystarczy, tym lepiej jak będzie to require_once.
MrCoody
klasa user jest nie zamknięta smile.gif

Cannot redeclare class user

to mniej więcej znaczy to że nie można zrobić takiej samej klasy smile.gif czyli że zrobiłeś dwie takie same, a jak nie to zrequirowałeś sobie dwa razy to samo smile.gif
awek520
To chwilka.. mam to dobrze??

plik HOME.php

  1. <?php
  2. if (user::isLogged()) {
  3. require_once 'user.class.php';
  4. require_once "baza.php";
  5. // Widok dla użytkownika zalogowanego
  6.  
  7. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  8. $user = user::getData('', '');



bo znów mam coś z tym user.. ; /
Cytat
Fatal error: Class 'user' not found in C:\WebServ\httpd\home.php on line 2





PS. Tak, mam require_once 'user.class.php' w pliku index.php, a home i index się łaczą..
MrCoody
Cytat
if (user::isLogged()) {
require_once 'user.class.php'; #to ma załadować to co jest pogrubione
require_once "baza.php"; #to raczej podobnie, daj to przed poprzednie


a te z komentarzami linijki daj przed if smile.gif
Turson
  1. <?php
  2. require_once "baza.php";
  3. require_once 'user.class.php';
  4. if (user::isLogged()) {
  5. // Widok dla użytkownika zalogowanego
  6.  
  7. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  8. $user = user::getData('', '');
  9.  
  10.  
  11.  
  12.  
  13. $link=mysql_query("SELECT * FROM home");
  14. while($wiersz=mysql_fetch_array($link)){
  15. echo '
  16. <center>
  17. <form method="post" action="home.php?home=wyedytuj&id=1">
  18. <script type="text/javascript" src="nicEdit-latest.js"></script> <script type="text/javascript">
  19. //<![CDATA[
  20. bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
  21. //]]>
  22. </script>
  23. <center><input type="text3" name="tytul" size="" value="'.$wiersz['tytul'].'">
  24. <br>
  25. <center><textarea name="tresc" style="width: 97%;">'.$wiersz['tresc'].'</textarea>
  26. <br>
  27.  
  28. <center><input type="submit" value="EDYTUJ">';
  29. }
  30. }
  31.  
  32. elseif(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id']))
  33. {
  34. $tytul=$_POST['tytul'];
  35. $tresc=$_POST['tresc'];
  36. mysql_query("UPDATE home SET tytul='$tytul', tresc='$tresc'");
  37. echo '
  38. <center>Podstrona została poprawnie wyedytowana.<br>
  39. <a href="index.php">Kliknij tutaj!</a>';
  40. }
  41.  
  42.  
  43.  
  44.  
  45. else {
  46. // Widok dla użytkownika niezalogowanego
  47. require "baza.php";
  48. $link=mysql_query("SELECT * FROM home");
  49. while($wiersz=mysql_fetch_array($link)){
  50. echo "<div class='p3'><center>";
  51. echo "".$wiersz['tytul']."
  52. </center></div><img src='images/linia.png'><br>
  53. ".$wiersz['tresc']."
  54. </div>
  55. ";
  56.  
  57. }
  58.  
  59.  
  60. }
  61.  
  62. ?>
  63. </center>
awek520
Dziękuje Wam bardzo za poświęcony czas smile.gif wszystko działa jak nalezy smile.gif

Dobranoc smile.gif

I jeszcze raz dziękuje smile.gif

Hmm.. ale czekajcie.. Bo teraz wychodzi na to, że

  1. elseif(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id']))
  2. {
  3. $tytul=$_POST['tytul'];
  4. $tresc=$_POST['tresc'];
  5. mysql_query("UPDATE home SET tytul='$tytul', tresc='$tresc'");
  6. echo '
  7. <center>Podstrona została poprawnie wyedytowana.<br>
  8. <a href="index.php">Kliknij tutaj!</a>';
  9. }


jest dla każdego, jak i dla zarejestrowanego jak i do niezalogowanego..

Jak to można zmienic??
Turson
Zacznij myśleć logicznie.
  1. <?php
  2. require_once "baza.php";
  3. require_once 'user.class.php';
  4. if (user::isLogged()) {
  5. if(isset($_GET['home']) && $_GET['home']=='wyedytuj' && isset($_GET['id'])){
  6. $tytul=$_POST['tytul'];
  7. $tresc=$_POST['tresc'];
  8. mysql_query("UPDATE home SET tytul='$tytul', tresc='$tresc'");
  9. echo '
  10. <center>Podstrona została poprawnie wyedytowana.<br>
  11. <a href="index.php">Kliknij tutaj!</a>';
  12. }
  13. // Widok dla użytkownika zalogowanego
  14.  
  15. // Pobierz dane o użytkowniku i zapisz je do zmiennej $user
  16. $user = user::getData('', '');
  17.  
  18.  
  19.  
  20.  
  21. $link=mysql_query("SELECT * FROM home");
  22. while($wiersz=mysql_fetch_array($link)){
  23. echo '
  24. <center>
  25. <form method="post" action="home.php?home=wyedytuj&id=1">
  26. <script type="text/javascript" src="nicEdit-latest.js"></script> <script type="text/javascript">
  27. //<![CDATA[
  28. bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
  29. //]]>
  30. </script>
  31. <center><input type="text3" name="tytul" size="" value="'.$wiersz['tytul'].'">
  32. <br>
  33. <center><textarea name="tresc" style="width: 97%;">'.$wiersz['tresc'].'</textarea>
  34. <br>
  35.  
  36. <center><input type="submit" value="EDYTUJ">';
  37. }
  38. }
  39. else {
  40. // Widok dla użytkownika niezalogowanego
  41. require "baza.php";
  42. $link=mysql_query("SELECT * FROM home");
  43. while($wiersz=mysql_fetch_array($link)){
  44. echo "<div class='p3'><center>";
  45. echo "".$wiersz['tytul']."
  46. </center></div><img src='images/linia.png'><br>
  47. ".$wiersz['tresc']."
  48. </div>
  49. ";
  50.  
  51. }
  52.  
  53.  
  54. }
  55.  
  56.  
  57. ?>
  58. </center>
  59.  
awek520
Dziękuje smile.gif Pozdrawiam
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.