Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co wpisać w formularzu, ażeby po wysłaniu przeszedł na stronę www.strona.pl/index.php?id=1&ids=1
Forum PHP.pl > Forum > PHP
WebSter
  1. <?php
  2. // Warunek 
  3.  switch ($_GET['kom'])
  4. {
  5.  
  6. case ("dodaj"):
  7.  if(mysql_query("INSERT INTO teksty_komentarze (tekst_id, czas, nick, wpis, mail) VALUES ('1','".time()."','$_POST[autor]', '$_POST[komentarz]' '$_POST[email]')")) 
  8.  header("Location: www.stronaglowna.pl"); 
  9.  die(); 
  10.  break; 
  11.  
  12. default:
  13. // Zapytanie 
  14. $zapytanie = mysql_query("SELECT * FROM teksty_komentarze WHERE tekst_id='1' ORDER BY id DESC LIMIT 3") or die (mysql_error());
  15. if($zapytanie) {
  16. while ($row = mysql_fetch_array($zapytanie)) {
  17. echo "<!-- system / komentarze --> 
  18. Dodał: <a href="mailto:".$row['mail']."">".$row['nick']."</a>, dnia: ".$row['czas']."<br /> 
  19. ".$row['wpis'].
  20. <br /><br />"; 
  21. }
  22. }
  23. echo "<!-- Formularz --> 
  24. <form name="formularz" method="post" action="CO TUTAJ WPISAĆ"> 
  25. Autor: <input type="text" name="autor"><br> 
  26. Adres e-mail: <input type="text" name="email"><br> 
  27. Treść komentarza:<br> 
  28. <textarea name="komentarz" rows="6" cols="45"></textarea><br> 
  29. <input type="submit" name="submit" value="Dodaj"> 
  30. <input type="reset" name="reset" value="Wyczyść"> 
  31. </form>";
  32. ?>


Co wpisać w action aby wywołać kom=dodaj? Czy można to zrobić w inny sposób, np. dodawanie komentarza w osobnym pliku php, tylko tak, ażeby przekazywany w zmiennej był adres strony na której będzie dodany komentarz oraz żeby przekazywany był tekst_id, po dodaniu komentarza przekazywany adres byłby jako header.

Pozdrawiam i dziękuje
rama
  1. <form name="formularz" method="post" action="nazwa_pliku.php?kom=dodaj">
Powinno działać winksmiley.jpg
WebSter
Hmm, coś mi nie idzie ;/ Powiedzcie mi proszę w jaki sposób mogę dodać nowy komentarz do bazy danych i przenieść się na stronę na której komentarz ma być widoczny. Ten mój kod przez kom=dodaj niestety nie chce dodawać nowych komentarzy. Z góry dziękuje.
phpion
Po prostu po wyslaniu formualrza czy po wykonaniu INSERT INTO... daj:

PS: dalem w znacnziki HTML bo php wali caly kod :[
Juz mam dosc. Po prostu ma byc header("Location: tutaj_pelen_adres");

Aj nie doczytalem. W tym switchu na poczatrku zmien $_GET['kom'] na $_POST['kom'] i dodaj w samym formularzu pole hidden o name="kom" i jakiejs tam wartosci
WebSter
dalej nic sad.gif A moza zrobic tododawanie dobazy w osobnym pliku, chodzi mi o to azeby byl jednen plik np. wyslij.php dla kilku podstron / artykulow.
Cysiaczek
Cytat(phpion.com @ 20.08.2006, 19:29 ) *
Aj nie doczytalem. W tym switchu na poczatrku zmien $_GET['kom'] na $_POST['kom'] i dodaj w samym formularzu pole hidden o name="kom" i jakiejs tam wartosci

Pierwsze słyszę. GET to GET - adres w action jest GET i kropka. Żadne POST!

@WebSter - tak, można, a nawet jest to zalecane smile.gif

Pozdrawiam,
WebSter
Cytat
@WebSter - tak, można, a nawet jest to zalecane


Ale jak się za to zabrać? Daję w osobnym pliku np. wyslij.php INSERT INTO..., ale co dalej?
phpion
Cytat(Cysiaczek @ 20.08.2006, 20:00 ) *
Pierwsze słyszę. GET to GET - adres w action jest GET i kropka. Żadne POST!

@WebSter - tak, można, a nawet jest to zalecane smile.gif

Pozdrawiam,

No mi chodzilo o to, zeby dolaczyc zmienna do wysylanego formularza, a ze formularz ma method="post" wiec stad ta zmiana. Czytaj uwazniej moje posty winksmiley.jpg
Cysiaczek
Fakt., nie doczytałem. Moja wina. :|

Ale to po co tak robić, skoro get jest jak najbardziej na miejscu. Nie nie nie - nic tego w tym wypadku nie uzasadnia.

Pozdrawiam.
rama
Poprawiłem parę błędów i skrypt już działa poprawnie...

  1. <?php
  2.  
  3. // mysql_connect(...);
  4. // mysql_select_db(...);
  5.  
  6. switch ( $_GET['kom'] ) {
  7. case 'dodaj':
  8. if( mysql_query( "INSERT INTO teksty_komentarze ( tekst_id, czas, nick, wpis, mail ) VALUES ( '" . $_GET['id'] . "', '" . time() ."', '" . $_POST['autor'] ."', '" . $_POST['komentarz'] . "', '" . $_POST['email'] . "' ) ") )
  9. {
  10. header( 'Location: komentarze.php?id=' . $_GET['id'] );
  11. die();
  12. }
  13. break;
  14.  
  15. default:
  16. if( $query = mysql_query( "SELECT * FROM teksty_komentarze WHERE tekst_id = '" . $_GET['id'] . "' ORDER BY tekst_id DESC LIMIT 3" ) ) 
  17. {
  18. while($row = mysql_fetch_assoc( $query ) )
  19. {
  20. echo "<!-- system / komentarze --> 
  21. Dodał: <a href="mailto:" . $row['mail'] . "">" . $row['nick'] . "</a>, dnia: " . 
  22. $row['czas'] . "<br />" . $row['wpis'] . "<br /><br />";  
  23. }
  24. } else {
  25. }
  26. break;
  27. }
  28.  
  29.  
  30. echo "<!-- Formularz --> 
  31. <form name="formularz" method="post" action="". $_SERVER['PHP_SELF'] ."?id=" . $_GET['id'] . "&kom=dodaj"> 
  32.  
  33. Autor: <input type="text" name="autor"><br> 
  34. Adres e-mail: <input type="text" name="email">
  35.  
  36. <br>Treść komentarza:<br> 
  37.  
  38. <textarea name="komentarz" rows="6" cols="45"></textarea><br> 
  39. <input type="submit" name="submit" value="Dodaj"> 
  40. <input type="reset" name="reset" value="Wyczyść"> 
  41.  
  42. </form>";
  43. ?>


Aby to wszystko działo, to przed dodawaniem komentarza musisz uruchomić ten skrypt z parametrem $_GET['id'], czyli
Kod
komentarze.php?id=xx
Gdzie xx, to odpowiedni numer tekst_id

A poza tym sprawdz w bazie danych czy przypadkiem pole (kolumna) tekst_id nie jest przypadkiem unikalna, bo jesli jest, to bodajże NIE będziesz mógł dodawać wiecej niż jeden komentarz dla pola tekst_id, gdyż ta kolumna może zawierać tylko jedną unikalna wartość winksmiley.jpg...

PS Wybaczcie za masło maślane, ale to z przemęczenia tongue.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.