Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: form i include
Forum PHP.pl > Forum > Przedszkole
Balas
Juz mowie ze zanim przerobilem na include wszystko dzialalo smile.gif

Teraz nie chce dodac danych do bazy sad.gif

otoz tak... w głownym pliku mam taki kod (admin.php)

  1. <?php 
  2.  if (!isset($_SESSION["login"])) { 
  3.  header("Location: index.php"); 
  4.  exit(); 
  5.  } 
  6.  
  7.  ?> 
  8.  <HTML> 
  9.  <HEAD> 
  10.  <TITLE>Tajne/poufne</TITLE> 
  11.  </HEAD> 
  12.  <BODY> 
  13.  <?php 
  14.  
  15.  echo "Witaj " . $_SESSION["login"]; 
  16.  echo "<A href='logout.php?" . SID . "'>"; 
  17.  echo "[Wyloguj]</a>"; 
  18.  
  19.  ?> 
  20.  Witamy w Panelu Admina
  21.  
  22. <br><br>
  23. <a href=admin.php>zmien hasło</a> | <a href=admin.php?id=dodaj>dodaj newsa</a> | <a href=admin.php?id=skasuj>usun newsa</a>
  24. <br><br>
  25. <?
  26.  
  27. $add_site = true; 
  28.  
  29. // zmienna $id przekazana metoda GET
  30.  $id = $_GET['id'];
  31.  
  32. // sprawdzamy czy zmienna $id nie jest pusta
  33. if(!empty($id)) {
  34. // sprawdzamy czy plik o danej nazwie istnieje
  35. if(is_file("$id.php")) include "$id.php";
  36. // jezeli plik nie istnieje wyswietla się komunikat
  37. else echo "<br />Nie ma takiej strony :-(";
  38. }
  39. // jezeli zmienna $id jest pusta wyswietla się strona glowna
  40.  else include "zmienadmin.php";
  41. ?>
  42. <?
  43. if($send=='Wyslij') {
  44.  
  45.  
  46. $data=date("Y.m.d h:i:s");
  47. $zapytanie = "INSERT INTO news SET nick='$nick',data='$data', tresc='$tresc', mail='$mail'";
  48. $wykonaj = mysql_query ($zapytanie);
  49. echo "<BR>Dane dodane prawidłowo !";
  50. }
  51. ?>
  52.  
  53.  
  54.  </BODY> 
  55.  
  56.  </HTML>


a w pliku dodaj.php tak:

  1. <html>
  2. <head>
  3.  
  4. </head>
  5. <body>
  6. <?php
  7.  
  8. if(!$add_site) exit;
  9.  
  10.  
  11.  
  12. echo "<form method="get" action="admin.php">
  13.  
  14. <table border="1" width="50%" bordercolorlight="#000000" cellspacing="0" cellpadding="0">
  15. <tr>
  16. <td width="50%"><font size="2" face="Verdana">Imie</font></td>
  17. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="nick" size="20"></font></td>
  18. </tr>
  19. <tr>
  20. <td width="50%"><font size="2" face="Verdana">Mail</font></td>
  21. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="mail" size="20"></font></td>
  22. </tr>
  23. <tr>
  24. <td width="50%"><font size="2" face="Verdana">tresc</font></td>
  25. <td width="50%" align="center"><font size="2" face="Verdana"><textarea name="tresc"></textarea></font></td>
  26. </tr>
  27. <td width="100%" colspan="2">
  28. <p align="center"><font size="2" face="Verdana"><input type="submit" value="Wyslij" name="send"><input type="reset" value="Kasuj" name="B2"></font></td>
  29. </tr>
  30. </table>
  31. </center>
  32.  
  33. </form>";
  34.  
  35.  
  36.  
  37. ?>
  38.  
  39. </body>
  40. </html>


Gdy dam wyslij wyswietla mi sie komuniat, ze poprawnie wysłano ale do bazy danych nic nie dociera sad.gif gdzie blad questionmark.gif snitch.gif

Poprzednio w dodaj mialem taki kod:

  1. <html>
  2. <head>
  3.  
  4. </head>
  5. <body>
  6. <?php
  7. if($send=='Wyslij') {
  8. mysql_connect ("localhost","root","Hammett");
  9. mysql_select_db (mysql_nauka);
  10. $data=date("Y.m.d h:i:s");
  11. $zapytanie = "INSERT INTO news SET nick='$nick',data='$data', tresc='$tresc', mail='$mail'";
  12. $wykonaj = mysql_query ($zapytanie);
  13. echo "<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnieni formularza !<br><br><a href=dodaj.php>wróc</a>";
  14. }
  15. else {
  16. echo "<form method="get" action="dodaj.php">
  17. <div align="center">
  18. <center>
  19. <table border="1" width="50%" bordercolorlight="#000000" cellspacing="0" cellpadding="0">
  20. <tr>
  21. <td width="50%"><font size="2" face="Verdana">Imie</font></td>
  22. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="nick" size="20"></font></td>
  23. </tr>
  24. <tr>
  25. <td width="50%"><font size="2" face="Verdana">Mail</font></td>
  26. <td width="50%" align="center"><font size="2" face="Verdana"><input type="text" name="mail" size="20"></font></td>
  27. </tr>
  28. <tr>
  29. <td width="50%"><font size="2" face="Verdana">tresc</font></td>
  30. <td width="50%" align="center"><font size="2" face="Verdana"><textarea name="tresc"></textarea></font></td>
  31. </tr>
  32. <td width="100%" colspan="2">
  33. <p align="center"><font size="2" face="Verdana"><input type="submit" value="Wyslij" name="send"><input type="reset" value="Kasuj" name="B2"></font></td>
  34. </tr>
  35. </table>
  36. </center>
  37. </div>
  38. </form>";
  39.  
  40. }
  41.  
  42. ?>
  43.  
  44. </body>
  45. </html>
Bartech
Wydaje mi się że omieszałeś dwa rodzaje zapytań do MySQL:

Update - jeżeli aktualizujesz już istniejący rekord

UPDATE news SET nick='$nick',data='$data', tresc='$tresc', mail='$mail' WHERE nick='$nick'


Insert - jeżeli chcesz utworzyć nowy rekord

INSERT INTO news VALUES('$nick','$data','$tresc','$mail')

Sprawdź z użyciem jednego z tych zapytań.
Lechu
Na przyszłość proponuje sprawdzać czy przypadkiem funkcja mysql_query() nie zwróciła wartości FALSE, jeśli tak to można skorzystać np z funkcji mysql_error() i wszystko byłoby jasne. Jeśli tego nie sprawdziłeś, to skąd wiesz, że: "Dane dodane prawidłowo!"??
Balas
Pisze tylko ze wyswietla komunikat :] a UPDATE i INSERT raczej nie pomylilem... bo zanim "połączylem" wszystko prze include to wszystko dzialalo sad.gif
revyag
Przekazywanie zmiennych.
Masz ustawione że dane z forma przekazywane są GETEM. To zły pomysł,bo przekazujesz dużo danych. Użyj action="post".
Chcesz wstawić z formualrza dane z pola np. nick. U Ciebie w zapytanu jest $nick. To nie przejdzie. Musisz napisać $_POST["nick"].
Balas
To jak powinien wygladac cały kodzik questionmark.gif
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.