Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem, przechowywanie wartości zmiennej w url
Forum PHP.pl > Forum > Bazy danych > MySQL
Michal2451
Witam!
Zrobiłem taki skrypt do edycji wartości 2 pól w bazie danych (tabela `mp3`).

edytuj.php:
Tutaj wprowadzam nowe wartości
  1. <?php include("config.php");
  2.  
  3. $id = $_GET['n'];
  4. $zapytanie = "SELECT `id`,`nazwa`,`link`,`data`,`ip` FROM `mp3` WHERE `id`='$id'";
  5. $idzapytania = mysql_query($zapytanie);
  6.  
  7. while ($t = mysql_fetch_row($idzapytania)) {
  8. echo "Edytujesz:<br>$t[1]<BR><BR>";
  9. echo "<form method=post action=edit.php?m=$t[0]>
  10. <table>
  11. <tr class=tlo-b><td>Nazwa:</td>
  12. <td><input maxlenght=32 type=text name=nazwa></td></tr>
  13. <tr class=tlo-b><td>Link:</td>
  14. <td><input maxlenght=32 type=text name=link value=$t[2]></td></tr>
  15.  
  16. <tr><td colspan=2 align=center><input id=inputsubmit1 type=submit name=inputsubmit1 value=Zatwierdź /></td></tr>
  17. </table></form>";
  18. };
  19.  
  20.  
  21.  
  22. ?>


edit.php:
Tutaj potwierdzenie
  1. $id = $_GET['m'];
  2. $nazwa = $_POST['nazwa'];
  3. $link = $_POST['link'];
  4.  
  5. $zapytanie = "SELECT `id`,`nazwa`,`link`,`data`,`ip` FROM `mp3` WHERE `id`='$id'";
  6. $idzapytania = mysql_query($zapytanie);
  7.  
  8. while ($t = mysql_fetch_row($idzapytania)) {
  9. echo 'Stare dane:';
  10. echo '<BR><BR>';
  11. echo "Nazwa: $t[1]<br>";
  12. echo "Link: $t[2]<br>";
  13. echo '<br><BR>';
  14. };
  15.  
  16. echo 'Nowe dane:';
  17. echo '<BR><BR>';
  18. echo "Nazwa: $nazwa<br>";
  19. echo "Link: $link";
  20. echo '<BR><BR>';
  21. echo 'Chcesz wprowadzić nowe dane?';
  22. echo '<BR><BR>';
  23. echo "<a href=edit2.php?id=$id&n=$nazwa&l=$link>Tak</a><br>";
  24. echo '-------<br>';
  25. echo '<a href="index.php">Nie</a>';


edit2.php:
Tutaj skrypt updatujący wartości
  1. $id = $_GET['id'];
  2. $nazwa = $_GET['n'];
  3. $link = $_GET['l'];
  4.  
  5. $zapytanie = "UPDATE mp3 SET nazwa='$nazwa',link='$link' WHERE id='$id'";
  6. $idzapytania = mysql_query($zapytanie);
  7.  
  8. echo 'Edycja powiodła się :)';
  9. echo '<meta http-equiv="refresh" content="1; url=index.php">';


Problem w tym, że w edit.php adres do odsyłacza "tak" powinien być:
  1. edit2.php?id=$id&n=$nazwa&l=$link

lecz gdy zmienna $n posiada 2 wyrazy to wczytuje się tylko pierwszy wyraz do spacji, $l już się nie pokazuje.
Przykład:
jako nazwę wpisuję "jeden dwa" i jakiś link.
z edytuj.php do edit.php zmienna jest poprawnie przekazana, lecz odsyłacz "Tak" wygląda następująco:
  1. /edit2.php?id=X&n=Jeden


Co zrobić, aby to działało poprawnie?

Proszę o pomoc.
Pozdrawiam!
mortus
urldecode i urlencode rozwiążą Twój problem. Choć może lepszym rozwiązaniem byłoby użycie formularza z polami ukrytymi (hidden).
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.