Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zaktualizowane dane formularza z komunikatem
Forum PHP.pl > Forum > Przedszkole
Pcbecaw
Mam sobie formularz aktualizacji rekordów z bazy danych. Po wysłaniu formularza jest np. echo 'dane zmienione';, ale do tego, by dane były widoczne potrzebne jest odświeżenie strony. No to wstawiam odświeżenie, dane się aktualizują i echo 'dane zmienione'; znika. Jak połączyć obie opcje, aby użytkownik widział i zmienione dane i potwierdzenie, że zmienił?
Sephirus
Najprościej - sesja smile.gif

Dajesz w sesji że dane są zmienione na przykład do zmiennej $_SESSION['message'];

Potem przy każdym otwarciu strony dajesz:

  1. if(isset($_SESSION['message'])) echo $_SESSION['message']; // jesli jakiś message są do wyświetlenia
  2. unset($_SESSION['message']); // pozbywamy się ...


Teraz wystarczy, że przy zmianie tych danych o ktorych piszesz dodasz opdowiedni message do sesji wink.gif
Pcbecaw
Nie za bardzo rozumiem. Tutaj jest pełen kod - http://wklejto.pl/115044
Nie za bardzo mam pomysł, jak zrobić tutaj tą sesje.
untorched
To co podałeś to jeden cały plik czy dwa oddzielne?
Pcbecaw
2 oddzielne, które łączą się w jeden.
untorched
  1. <?php session_start();
  2. error_reporting(E_ALL^E_NOTICE);
  3. include("config.php");
  4.  
  5.  
  6. if(isset($_POST['zapisz']))
  7. {
  8. $haslo = md5(sha1($_POST['stare']));
  9. $imie = substr(addslashes(htmlspecialchars($_POST['imie'])),0,32);
  10. $nazwisko = substr(addslashes(htmlspecialchars($_POST['nazwisko'])),0,32);
  11. $telefon = substr(addslashes(htmlspecialchars($_POST['telefon'])),0,32);
  12. $gg = substr(addslashes(htmlspecialchars($_POST['gg'])),0,32);
  13. $skype = substr(addslashes(htmlspecialchars($_POST['skype'])),0,32);
  14. $miejscowosc = substr(addslashes(htmlspecialchars($_POST['miejscowosc'])),0,32);
  15. $www = substr(addslashes(htmlspecialchars($_POST['www'])),0,32);
  16. $avatar = substr(addslashes(htmlspecialchars($_POST['avatar'])),0,32);
  17. $wynik = mysql_query("SELECT * FROM test WHERE haslo='$haslo'")
  18. or die('Błąd zapytania');
  19. $has1 = mysql_num_rows($wynik);
  20. if($has1 > 0) {
  21. while($r = mysql_fetch_assoc($wynik)) {
  22. $id = $r['id'];
  23. }}if($has1 === 0)
  24. {echo 'Aby zaktualizować dane, obecne hasło musi być prawidłowo podane';
  25. }else{
  26.  
  27. $zapytanie1 = 'UPDATE `test` SET `imie`="'.$imie.'" ,`nazwisko`="'.$nazwisko.'",`telefon`="'.$telefon.'",`gg`="'.$gg.'",`skype`="'.$skype.'",`miejscowosc`="'.$miejscowosc.'",`www`="'.$www.'",`avatar`="'.$avatar.'" WHERE `id`="'.$id.'"';
  28. $idzapytania1 = mysql_query($zapytanie1) or die(mysql_error());
  29.  
  30. echo 'Dane zmienione!';
  31.  
  32. }}
  33.  
  34.  
  35.  
  36. $wynik = mysql_query("SELECT * FROM test WHERE nick='{$_SESSION['nick']}'")
  37. or die('Błąd zapytania');
  38.  
  39.  
  40. if(mysql_num_rows($wynik) >= 0) {
  41. while($r = mysql_fetch_assoc($wynik)) {
  42. $imie = $r['imie'];
  43. $nazwisko = $r['nazwisko'];
  44. $telefon = $r['telefon'];
  45. $gg = $r['gg'];
  46. $skype = $r['skype'];
  47. $miejscowosc = $r['miejscowosc'];
  48. $www = $r['www'];
  49. $avatar = $r['avatar'];
  50. } }
  51. if(isset($_SESSION["nick"]) && isset($_SESSION["haslo"]))
  52. {echo '
  53. <form action="" method="post">
  54. <input type="hidden" name="login">
  55. Podaj stare hasło <input type="password" name="stare" />
  56. Imie <input type="text" name="imie" value="'.$imie.'" /><br /><br />
  57. Nazwisko <input type="text" name="nazwisko" value="'.$nazwisko.'"/><br /><br />
  58. Telefon <input type="text" name="telefon" value="'.$telefon.'"/>
  59. Gadu-Gadu <input type="text" name="gg" value="'.$gg.'"/>
  60. Skype <input type="text" name="skype" value="'.$skype.'"/>
  61. Miejscowość <input type="text" name="miejscowosc" value="'.$miejscowosc.'"/>
  62. WWW <input type="text" name="www" value="'.$www.'"/>
  63. Avatar <input type="text" name="avatar" value="'.$avatar.'"/><br /><br />
  64. <input name="zapisz" type="submit" value="Zapisz" /></form>
  65. ';}
  66. ?>


Takie połączenie dałoby prawdopodobnie to co chcesz otrzymać.. Sprawdź...
Pcbecaw
Dzięki wielkie wink.gif
Mam jeszcze pytanie, co do hasła w sesji. Podobno jest to błędne, jednak nie wiem jak to zmodyfikować.
Tak wygląda mój skrypt logowania:
  1. <?php
  2. include("config.php");
  3. if (isset($_POST['submit'])){
  4. if (empty($_POST['login']) || empty($_POST['haslo'])){
  5. echo 'Nie wypełniono wszystkich pól formularza.';}else {
  6. $login = $_POST['login'];
  7. $haslo = $_POST['haslo'];
  8. $haslo = md5(sha1($haslo));
  9. $login = addslashes(htmlspecialchars($login));
  10. $istnick = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM `test` WHERE `nick` = '$login' AND `haslo` = '$haslo'"));if ($istnick[0] == 0) {
  11. echo 'Logowanie nieudane. SprawdĽ pisownię nicku oraz hasła.';} else {
  12. $_SESSION['nick'] = $login;
  13. $_SESSION['haslo'] = $haslo;
  14. header("Location: edytuj.php");}}}
  15. ?>

Chciałbym zapisać w sesji zamiast hasła - id użytkownika, myślę jak to zrobić i wymyślić nie mogę. Mógłbym prosić o pomoc?
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.