Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem w formularzu
Forum PHP.pl > Forum > Przedszkole
ryba303
  1. <?php
  2. $link = mysql_connect("localhost", "root", "krasnal")
  3. or die ("Sprawdz poloaczenie z serwerem");
  4.  
  5. mysql_select_db("komentarze", $link)
  6. or die (mysql_error());
  7. mysql_query('SET CHARSET latin2');
  8.  
  9.  
  10. if ($_POST['co'] == 'dodaj'){
  11.  
  12. $osoba = addslashes(nl2br(htmlspecialchars($_POST['osoba'])));
  13. $wpis = addslashes(nl2br(htmlspecialchars($_POST['wpis'])));
  14.  
  15. if(isset($_POST['send']))
  16. {
  17. elseif(empty($osoba)){
  18. echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  19. echo "Nie podałeś nicku";
  20. echo "</b></td></tr></table>";
  21.  }
  22.  elseif(empty($wpis)){
  23.  echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  24.  echo "Nic nie wpisałeś";
  25.  echo "</b></td></tr></table>";
  26.  }
  27.  elseif ($osoba && $wpis) {
  28.  
  29.  $query = "INSERT INTO komentarz (komentarz_id, data, osoba ,wpis) " .
  30. "VALUES ('$komentarz_id', now(), '$osoba', '$wpis' );";
  31.  if($wynik = mysql_query ($query)){ header("Location: wyslane.php"); }
  32.  else die ("Nieporawne zapytanie : ". mysql_error());
  33. }
  34.  }
  35. }
  36.  
  37. elseif ($_POST['co'] == 'popraw') {
  38.  if ($_POST['osoba'] && $_POST['wpis']){
  39. $query = "UPDATE komentarz SET osoba='".$_POST['osoba']."', wpis='".$_POST['wpis']."' WHERE komentarz_id = '".$_POST['id']."';";
  40. $wynik = mysql_query($query);
  41. }
  42. } elseif ($_GET['co'] == 'edytuj') {
  43. $query = "SELECT * FROM komentarz WHERE komentarz_id = '".$_GET['id']."';";
  44. $wynik = mysql_query($query);
  45. $rekord = mysql_fetch_assoc($wynik);
  46. $komentarz_id = $rekord['komentarz_id'];
  47. $osoba = $rekord['osoba'];
  48. $wpis = $rekord['wpis'];
  49.  
  50.  echo "<form method=\"POST\">
  51.  <table border=\"1\" align=\"center\">
  52.  <tr><td><b>Poprawa komentarza</b></td></tr>
  53.  <input type=\"hidden\" name=\"co\" value=\"popraw\">
  54.  <input type=\"hidden\" name=\"id\" value=\"".$komentarz_id."\">
  55.  <tr><td>Poprawa Osoby: <br><input type=\"text\" name=\"osoba\" value=\"".$osoba."\"></td></tr>
  56.  <tr><td>Poprawa Wpisu: <br>
  57. <textarea type=\"text\" cols=\"45\" rows=\"4\" name=\"wpis\">$wpis</textarea></td></tr>
  58.  <tr><td align=\"center\" colspan=\"2\"> <input type=\"submit\" value=\"Popraw\"></td></tr></table></form>";
  59. die;
  60. } 
  61.  
  62. ?>
  63.  
  64. <html>
  65. <head>
  66. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  67. <title>Komentarze</title>
  68. </head>
  69. <body>
  70.  
  71. <?php
  72.  
  73. echo "
  74. <form action=\"index.php\" method=\"POST\">
  75.  
  76. <table border=\"0\" align=\"center\">
  77. <input type=\"hidden\" name=\"co\" value=\"dodaj\">
  78. <tr><td><b>Osoba:</b><br> <input type=\"text\" name=\"osoba\" value=\"".$osoba."\"> </td></tr>
  79. <tr><td><b>Wpis:</b><br>
  80.  <textarea name=\"wpis\" cols=\"45\" rows=\"4\" warp=\"VIRTUAL\">$wpis</textarea>
  81.  
  82. </td></tr>
  83. <tr><td align=\"center\" colspan=\"2\">
  84. <input type=\"hidden\" value=\"send\" name=\"send\">
  85. <input type=\"submit\" value=\"Dodaj\">
  86. </tr></td>
  87. </table>
  88. </form>";
  89.  
  90. $wynik = mysql_query ("SELECT * FROM komentarz ORDER BY data
  91.  DESC;");
  92.  
  93. while ($rekord = mysql_fetch_assoc($wynik)) {
  94.  $komentarz_id = $rekord['komentarz_id'];
  95.  echo "<hr>";
  96. echo "<table border=\"1\" align=\"center\" font-size=\"1px\" width=\"300\"><tr><td><b>Skomentował:&nbsp;".stripslashes($rekord['osoba'])."</td></tr><tr><td>".
  97.  stripslashes($rekord['wpis'])."</td></tr>
  98. <I><tr><td align=\"right\" >".$rekord['data']."</I></td></<tr><<tr><td><a href=\"index.php?co=edytuj&id=$komentarz_id\">edytuj</a></td></tr>\n</table>";
  99. }
  100. ?>
  101.  
  102. </body>
  103. </html>



Mam dwa formularze jede do wstawiania jeden do poprawy. Gdy poprawiam dane i zatwierdze to te poprawione dane wyswietlaja sie na formularzu tam gdzie normalnie dodaje.
  1. <?php
  2. <form method="POST\">
  3. <table border="1;" align=\"center\"><tr><td><b>Poprawa komentarza</b></td></tr>
  4. <input type="hidden&#092;" name=\"co\" value=\"popraw\">
  5. <input type="hidden\" name=\"id\" value=\"".$komentarz_id."\">
  6. <tr><td>Poprawa Osoby: <br><input type=\"text\" name=\"osoba\" value=\"".$osoba."\"></td></tr>
  7. <tr><td>Poprawa Wpisu: <br>
  8. <textarea type="text&#092;" cols=\"45\" rows=\"4\" name=\"wpis\">$wpis</textarea></td></tr>
  9. <tr><td align="center\" colspan=\"2\"> <input type=\"submit\" value=\"Popraw\"></td></tr></table></form>
  10.  
  11.  
  12.  
  13. <form method="POST&#092;">
  14.  <table border="0\" align=\"center\">
  15.  <input type="hidden&#092;" name=\"co\" value=\"dodaj\">
  16.  <tr><td><b>Osoba:</b><br><input type=&#092;"text\" name=\"osoba\" value=\"".$osoba."\"> </td></tr>
  17.  <tr><td><b>Wpis:</b><br>
  18. <textarea name="wpis\" cols=\"45\" rows=\"4\" warp=\"VIRTUAL\">$wpis</textarea></td></tr>
  19.  <tr><td align="center&#092;" colspan=\"2\">
  20.  <input type="hidden\" value=\"send\" name=\"send\">
  21.  <input type="submit&#092;" value=\"Dodaj\"></tr></td></table></form>
  22. ?>


przyczyna lezy w

value=\"".$osoba."\"
$wpis

ktore sa w tych formularzach

w tym do edycji musze to miec ale w tym pierwszym tez mie zalezy :/
Pilsener
1. Stringi buduj tak:
  1. <?php
  2. echo '<table border="5" width="'.$zmienna.'"><tr><td align="center"><b>';
  3. ?>
- szybciej, prościej i czytelniej. Poza tym po co ciągle tak "echować"? Dopisuj treść do zmiennej - tak jest wygodniej. Potem możesz np. zdecydować, czy wyświetlasz treść, czy błąd, zamiast mnożyć instrukcje warunkowe.
2.
Cytat
Mam dwa formularze jede do wstawiania jeden do poprawy
- po co dwa? Nie prościej zrobić to w jednym?
3. Oddzielaj HTML od PHP
Zrób sobie formularz, umieśc go w oddzielnym pliku/bazie (przy okazji - warto zadbać o poprawny kod HTML):
  1. <form action="rejestracja.php" method="post">
  2. <p><input type="text" name="imie"{V_IMIE} /></p>
  3. <p><input type="text" name="nazwisko"{V_NAZWISKO} /></p>
  4. <p><input type="submit" value="rejestruj" /></p>
  5. </form>


I wykorzystujesz ten sam formularz do:
- dodawania nowego użytkownika - wyświetlasz pusty formularz
- obsługi błędów - gdy nie wpiszesz np. imienia wysyłasz ponownie formularz, podstawiając za V_NAZWISKO value=" nazwisko" (funkcją str_replace) i wyświetlasz komunikat błędu
- edycji użytkownika - pobierasz dane z bazy i wstawiasz w odpowiednie pola
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.