Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Parse error w kodzie
Forum PHP.pl > Forum > Przedszkole
Virus
Siemka. Na forum przebywam dość często, lecz dopiero teraz się zarejestrowałem. A po to, gdyż chcę się dowiedzieć, co robię źle...
Otóż wyskakuje mi bardzo znany syntax error: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'
A dzieje się to w tej linijce:
Kod
echo "<form method="get" action="dodaj.php">


Nie wiem, co jest źle. I nie wiem jak to sprawdzić, więc proszę Was o radę wstydnis.gif
pyro
powinno byc:

  1. echo '<form method="get" action="dodaj.php">';
Virus
Wielkię dzięki rolleyes.gif
A czy to różnica jak się wstawi " zamiast ' ? Bo jak czytałem w poradnikach, to podobno było to bez różnicy. Może źle przeczytałem...

Znów mam problem... Tworzę formularz, który doda rekord do bazy danych. Kiedy wpisuję wszystko do tabelki i biorę Wyślij, to wyskakuje mi błąd serwera 404: nie znaleziono pliku. Tutaj kod strony: (dodam, że robiłem to z poradnika)
  1. <html>
  2. <head>
  3. <title>seba</title>
  4. </head>
  5. <body>
  6.  
  7. <?php
  8. if($send=='Wyslij') {
  9.  
  10. mysql_connect ("localhost","user","haslo"); /*tutaj mam wszystko dobrze wpisane, tylko zmieniłem w poście dla bezpieczeństwa*/
  11. $zapytanie = "INSERT INTO dane SET imie='$imie', nazwisko='$nazwisko', dataur='$dataur', adres='$adres',telefon='$telefon'";
  12. $wykonaj = mysql_query ($zapytanie);
  13. echo "<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza !";
  14.  
  15. } else {
  16.  
  17. echo '<form method="get" action="dodaj.php3">
  18. <div align="center">
  19. <center>
  20. <table border="1" width="50%" bordercolorlight="#000000" cellspacing="0" cellpadding="0">
  21. <tr>
  22. <td width="50%"><font size="2" face="Verdana">Imie</font></td>
  23. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="imie" size="20"></font></td>
  24. </tr>
  25. <tr>
  26. <td width="50%"><font size="2" face="Verdana">Nazwisko</font></td>
  27. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="nazwisko" size="20"></font></td>
  28. </tr>
  29. <tr>
  30. <td width="50%"><font size="2" face="Verdana">Data urodzenia YYYY-MM-DD</font></td>
  31. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="dataur" size="20"></font></td>
  32. </tr>
  33. <tr>
  34. <td width="50%"><font size="2" face="Verdana">Adres</font></td>
  35. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="adres" size="20"></font></td>
  36. </tr>
  37. <tr>
  38. <td width="50%"><font size="2" face="Verdana">Telefon</font></td>
  39. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="telefon" size="20"></font></td>
  40. </tr>
  41. <tr>
  42. <td width="100%" colspan="2">
  43. <p align="center"><font size="2" face="Verdana"><input type="submit" value="Wyslij" name="send"><input type="reset" value="Kasuj" name="B2"></font></td>
  44. </tr>
  45. </table>
  46. </center>
  47. </div>
  48. </form>';
  49.  
  50. }
  51. ?>
  52.  
  53. </body>
  54. </html>
kaem
Bo nie masz pewnie w tym samym katalogu albo wogóle pliku dodaj.php3. A co do tych cudzysłowów to jest taka róznica, że pojedyncze są traktowane dosłownie, natomiast podwójne są przetwarzane przez parser, tzn. jeśli napiszesz
  1. <?php
  2. echo 'to jest $zmienna'
  3. ?>
to wyswietli" to jest $zmienna
a jeśli napiszesz
  1. <?php
  2. echo "to jest $zmienna"
  3. ?>

to zamiast $zmiennna (jeśli ma np. wartość kulfon) zostanie wyświetlone: to jest kulfon.
Ogolnie podójne cudzysłowy wolniej działają przez to , że muszą być przetworzone.

EDIT:
W twoim wześniejszym kodzie
  1. <?php
  2. echo "<form method="get" action="dodaj.php">
  3. ?>

zauważ, że używasz podwójnych cudzysłowów ale w w formularzu też muszą być one użyte i parser myśli, że ten drugi cudzysłów przy get kończy stringa i powstaje bład. Żeby to ominąć musisz użyć znaku ucieczki \ czyli
  1. <?php
  2. echo "<form method=\"get\" action=\"dodaj.php\">"
  3. ?>

Ale oczywiście lepiej zrobić tak jak napisał pyro.
Virus
Wielkie dzięki. Wszystko teraz gra winksmiley.jpg

Edit:
Stworzyłem pusty plik dodaj.php, ale gdy wysyłam dane z formularza po wciśnięciu 'Wyślij", to nic się nie dzieje... Nie ma komunikatu, że dodano rekord. A powinien być. Co jest źle? ;/
decha-design
może zrob tak ... ze w action odwolaj sie do tego samego pliku co jest w nim twoj kod, a nie do pustego - cos sie musi wykonywać...

jezeli masz plik nazwany xyz.php to odwolaj sie tak

  1. <form method="get" action="xyz.php">


i wtedy przy wlaczonych register_globals powinno zadzialac to:

  1. <?php
  2. if($send=='Wyslij') { }
  3. ?>
lecz polecam zrobic
  1. <?php
  2. if($_POST['send']) { }
  3. ?>
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.