Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nie edytuje profilu
Forum PHP.pl > Forum > Przedszkole
Marcinekk
Siema, mam skrypt na edycje profilu :

  1. <?php
  2. include 'config.php';
  3. require 'header.php';
  4. db_connect();
  5.  
  6. check_login();
  7.  
  8. $user_data = get_user_data();
  9.  
  10.  
  11. if(isset($_POST['email'])) {
  12.  
  13. $_POST['website'] = clear($_POST['website']);
  14. $_POST['from'] = clear($_POST['from']);
  15. $_POST['new_password'] = clear($_POST['new_password']);
  16. $_POST['new_password2'] = clear($_POST['new_password2']);
  17. $_POST['password'] = clear($_POST['password']);
  18. $_POST['email'] = clear($_POST['email']);
  19.  
  20.  
  21. $err = '';
  22.  
  23. $up2 = '';
  24.  
  25.  
  26. if(!empty($_POST['new_password']) || $_POST['email'] != $user_data['email']) {
  27.  
  28. if(empty($_POST['password'])) {
  29. $err = '<p>Jeśli chcesz zmienić hasło lub adres email musisz podać aktualne hasło.</p>';
  30.  
  31. } elseif(($_POST['password']) != $user_data['pass']) {
  32. $err = '<p>Podane aktualne hasło jest nieprawidłowe.</p>';
  33. } else {
  34.  
  35.  
  36.  
  37. if(!empty($_POST['new_password'])) {
  38.  
  39. if($_POST['new_password'] != $_POST['new_password2']) {
  40. $err = '<p>Podane hasła nie są takie same.</p>';
  41.  
  42. } else {
  43. $up2.= ", `pass` = '".($_POST['new_password'])."'";
  44. }
  45. }
  46.  
  47. if($_POST['email'] != $user_data['email']) {
  48.  
  49. if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
  50. $err = '<p>Podany email jest nieprawidłowy.</p>';
  51. } else {
  52.  
  53. $result = mysql_query("SELECT Count(uid) FROM `drift_gracze` WHERE `uid` != '{$user_data['user_id']}' AND `email` = '{$_POST['email']}'");
  54. $row = mysql_fetch_row($result);
  55. if($row[0] > 0) {
  56. $err = '<p>Już istnieje użytkownik z takim loginem lub adresem e-mail.</p>';
  57. } else {
  58.  
  59. $up2.= ", `email` = '{$_POST['email']}'";
  60. }
  61. }
  62. }
  63. }
  64. }
  65.  
  66.  
  67. if(!empty($err)) {
  68. echo $err;
  69. } else {
  70.  
  71. $result = mysql_query("UPDATE `drift_gracze` SET `none` = '{$_POST['website']}', `none` = '{$_POST['from']}'{$up2} WHERE `uid` = '{$user_data['user_id']}'");
  72. if($result) {
  73.  
  74. echo '<p>Twój profil został poprawnie zaktualizowany.</p>';
  75.  
  76. $user_data = get_user_data();
  77. } else {
  78.  
  79. echo '<p>Niestety wystąpił błąd:<br>'.mysql_error().'</p>';
  80. }
  81. }
  82. }
  83.  
  84.  
  85. echo '<form method="post" action="editprofile.php">
  86. <p>
  87. Nowe hasło (pozostaw puste jeśli nie chcesz zmieniać):<br>
  88. <input type="password" value="" name="new_password" autocomplete="off">
  89. </p>
  90. <p>
  91. Powtórz nowe hasło:<br>
  92. <input type="password" value="" name="new_password2" autocomplete="off">
  93. </p>
  94. <p>
  95. E-mail:<br>
  96. <input type="text" value="'.$user_data['email'].'" name="email">
  97. </p>
  98. <p>
  99. Aktualne hasło (wymagane przy zmianie emaila lub hasła):<br>
  100. <input type="password" value="" name="password" autocomplete="off">
  101. </p>
  102. <p>
  103. <input type="submit" value="Edytuj profil">
  104. </p>
  105. </form>';
  106. require 'footer.php';
  107. db_close();
  108. ?>


Po wypełnieniu wszystkich pól wywala, że pomyślnie zmieniono, a w bazie nic się nie zmieniło, proszę o pomoc.
jacobson
$result = mysql_query("UPDATE `drift_gracze` SET `none` = '{$_POST['website']}', `none` = '{$_POST['from']}'{$up2} WHERE `uid` = '{$user_data['user_id']}'");

to zmien na to co potrzebujesz masz 2 razy jakies set `none` a powinienes tutaj updatowac swoje pola - email, haslo itp
Marcinekk
Ten skrypt jest z neta, i był on w takiej postaci właśnie- wcześniej działalo.
Te none ma po prostu dodawać do website i from.
Turson
Masz tam podać nazwę kolumny

  1. `none` = '{$_POST['from']}'{$up2}

to też jest dziwne
Marcinekk
Poczytaj dokładnie kod, a nie na ślepo próbujesz pomóc..

  1. $up2.= ", `pass` = '".($_POST['new_password'])."'";
YourFrog
Moja rada jest taka, wywal to do śmieci i poproś żeby ci ktoś to napisał. Tak jak napisał jacobs i będzie dzialać.

@Edit
Daj var_dump z sql'a, schemat bazy i ktoś ci pomoże, a nie obrażasz @jacobs'a
Turson
Cytat(Marcinekk @ 22.06.2014, 14:23:34 ) *
Poczytaj dokładnie kod, a nie na ślepo próbujesz pomóc..

  1. $up2.= ", `pass` = '".($_POST['new_password'])."'";

Przeczytałem i na linii 71 widzę coś takiego
  1. $result = mysql_query("UPDATE `drift_gracze` SET `none` = '{$_POST['website']}', `none` = '{$_POST['from']}'{$up2} WHERE `uid` = '{$user_data['user_id']}'");
Marcinekk
Nie widzisz w tym zapytaniu tego up2? up2 to email i pass -.-
Turson
  1. $result = mysql_query("UPDATE `drift_gracze` SET `none` = '{$_POST['website']}', `none` = '{$_POST['from']}'{$up2} WHERE `uid` = '{$user_data['user_id']}'") or die(mysql_error());

Więc jaki jest rezultat tego
Marcinekk
"Twój profil został poprawnie zaktualizowany."

Ale zapytanie i tak się nie wykonuje..
tzm
Zrób:

  1. echo "UPDATE `drift_gracze` SET `none` = '{$_POST['website']}', `none` = '{$_POST['from']}'{$up2} WHERE `uid` = '{$user_data['user_id']}'";


I pokaż wynik
Marcinekk
@edit Nie pobierało uid, dzięki za naprowadzenie.
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.