Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Edycja profilu dla zalogowanego użytkownika
Forum PHP.pl > Forum > Przedszkole
tinware
Witam.

Mam mały problem z wykonaniem prawidłowego zapytania do bazy mysql. Chodzi o to, że dany użytkownik loguje się swoim loginem i hasłem, i chce dodać możliwość edycji jego danych (login, hasło i kilka dodatkowych, które podawał podczas rejestracji tj. imie, nazwisko, miejscowosc). Problem jest z prawidłowym wykonaniem zapytania, skrypt musi wyciągnąć dany rekord danego użytkownika z bazy przez login z bazy = login w sesji. Moim zdaniem w 4 linijce jest dosyć duży błąd, ale nie wiem jak go poprawić. zależy mi na tym, żeby inny użytkownik nie mógł edytować profilu pozostałych, tak jak bym zrobił: ?go=users_edit&login=$login
Każdy w adresie mógłby zmienić koncówke na login innego użytkownika i go edytować. Dlatego zależy mi na podpięcie tego pod sesje, aby każdy edytował tylko swój profil.


Oto kod:
  1. if ($_GET['go'] == 'users_edit') {
  2. echo "<b>Użytkownik / Edycja profilu:</b><br><br><br><br>";
  3.  
  4. $query = "SELECT * FROM Users WHERE login='$_SESSION['login']'";
  5. $wynik = mysql_query ($query);
  6. $rekord = mysql_fetch_assoc ($wynik);
  7. $nr = $rekord['nr'];
  8.  
  9. $data = $rekord['data'];
  10. $login = stripslashes( ($rekord['login']));
  11. $haslo = stripslashes( ($rekord['haslo']));
  12. $imie = stripslashes( ($rekord['imie']));
  13. $nazwisko = stripslashes( ($rekord['nazwisko']));
  14.  
  15. echo '<center>';
  16. echo '<FORM action=?go=# METHOD="POST">';
  17. echo '<INPUT TYPE="hidden" NAME="action" VALUE="popraw">';
  18. echo '<INPUT TYPE="hidden" NAME="id" VALUE="'.$nr.'"><TABLE width=390 CELLPADDING=0 CELLSPACING=10 BORDER=0>';
  19.  
  20. echo '<TR><TD align="right">Nr:</TD><TD width="300"><INPUT TYPE="text" NAME="nr" style="width: 300px" VALUE="'.$nr.'"></TD></TR>';
  21. echo '<TR><TD align="right">Login:</TD><TD width="300"><INPUT TYPE="text" NAME="login" style="width: 300px" VALUE="'.$login.'"></TD></TR>';
  22. echo '<TR><TD align="right">Hasło:</TD><TD width="300"><INPUT TYPE="text" NAME="haslo" style="width: 300px" VALUE="'.$haslo.'"></TD></TR>';
  23. echo '<TR><TD align="right">Imie:</TD><TD width="300"><INPUT TYPE="text" NAME="imie" style="width: 300px" VALUE="'.$imie.'"></TD></TR>';
  24. echo '<TR><TD align="right">Nazwisko:</TD><TD width="300"><INPUT TYPE="text" NAME="nazwisko" style="width: 300px" VALUE="'.$nazwisko.'"></TD></TR>';
  25.  
  26. echo '</TABLE>';
  27. echo '</FORM>';
  28. echo '</center>';
  29. }
nospor
Dostajesz PARSE ERROR. Czemu nam go nie podales? piszesz na forum do pewnego czasu wiec mogłbyś już wiedziec jak zadawać pytanie.

Zapoznaj sie z podstawami obsługi stringów a bład sam się naprawi:
http://pl.php.net/manual/pl/language.types.string.php
tinware
  1. $query = "SELECT * FROM Users WHERE login='string($_SESSION(['login']))'";


Pojawia się
Cytat
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/a8731498/public_html/page2.php on line 361


Niewiem w jaki sposób poprzez string utworzyć to zapytanie. Mógłbym poprosić o jakieś przykłady...



Edit:
Ok działa
  1. $query = "SELECT * FROM Users WHERE login='".$_SESSION['login']."';";

Może być coś takiego?
nospor
Przykłady i opis podstaw masz w linku który ci dałem. Naprawdę tam masz wszystko opisane jak się wkłada zmienne oraz tablice do tekstu.
tinware
Skrypt ściąga dane z bazy prawidłowo, ale nie zapisuje ich. Moim zdaniem błąd kryje się w linijkach 37-40 oraz 125. Moglibyście zerknąć na kod.

  1. if ($_GET['go'] == 'users_edit') {
  2.  
  3. if (empty($_SESSION['login']))
  4. {
  5. header("Location: ?go=users_login");
  6. die (' ');
  7. }
  8. else
  9. {
  10. echo "";
  11. }
  12.  
  13. echo "<br><b>Użytkownik / Edycja profilu:</b><br><br><br><br>";
  14.  
  15. $query = "SELECT * FROM Users WHERE login='".$_SESSION['login']."';";
  16. $wynik = mysql_query ($query);
  17. $rekord = mysql_fetch_assoc ($wynik);
  18. $nr = $rekord['nr'];
  19. $data = $rekord['data'];
  20. $login = stripslashes( ($rekord['login']));
  21. $haslo = stripslashes( ($rekord['haslo']));
  22. $avatar = stripslashes( ($rekord['avatar']));
  23. $subskrypcja = stripslashes( ($rekord['subskrypcja']));
  24. $email = stripslashes( ($rekord['email']));
  25. $gg = stripslashes( ($rekord['gg']));
  26. $imie = stripslashes( ($rekord['imie']));
  27. $nazwisko = stripslashes( ($rekord['nazwisko']));
  28. $pseudonim = stripslashes( ($rekord['pseudonim']));
  29. $miejscowosc = stripslashes( ($rekord['miejscowosc']));
  30. $data_urodzenia_dzien = stripslashes( ($rekord['data_urodzenia_dzien']));
  31. $data_urodzenia_miesiac = stripslashes( ($rekord['data_urodzenia_miesiac']));
  32. $data_urodzenia_rok = stripslashes( ($rekord['data_urodzenia_rok']));
  33. $facebook = stripslashes( ($rekord['facebook']));
  34. $nk = stripslashes( ($rekord['nk']));
  35. $grono = stripslashes( ($rekord['grono']));
  36.  
  37. echo '<center>';
  38. echo '<FORM action=?go=users_edit_save METHOD="POST">';
  39. echo '<INPUT TYPE="hidden" NAME="action" VALUE="popraw">';
  40. echo '<INPUT TYPE="hidden" NAME="id" VALUE="'.$nr.'">';
  41.  
  42. echo '<TABLE width=388 CELLPADDING=0 CELLSPACING=0 BORDER=0>';
  43. echo '<tr>';
  44. echo '<td align=left valign=top>';
  45. echo '<TABLE width=270 CELLPADDING=0 CELLSPACING=10 BORDER=0>';
  46. echo '<TR><TD align="right">Login:</TD><TD width="180"><INPUT TYPE="text" NAME="login" style="width: 180px" VALUE="'.$login.'" readonly></TD></TR>';
  47. echo '<TR><TD align="right">Hasło:</TD><TD width="180"><INPUT TYPE="text" NAME="haslo" style="width: 180px" VALUE="'.$haslo.'"></TD></TR>';
  48. echo '<TR><TD align="right">Imie:</TD><TD width="180"><INPUT TYPE="text" NAME="imie" style="width: 180px" VALUE="'.$imie.'" readonly></TD></TR>';
  49. echo '<TR><TD align="right">Nazwisko:</TD><TD width="180"><INPUT TYPE="text" NAME="nazwisko" style="width: 180px" VALUE="'.$nazwisko.'" readonly></TD></TR>';
  50. echo '</TABLE>';
  51. echo '</td>';
  52.  
  53. if ($avatar == '') {
  54. echo "<td width=140 align=center valign=middle>Brak Avatara</td>";
  55. }else{
  56. echo "<td width=140 align=center valign=middle><img src='$avatar' width=100 height=100 border=0></td>";
  57. }
  58.  
  59. echo '</tr>';
  60. echo '</TABLE>';
  61.  
  62. echo '<TABLE width=390 CELLPADDING=0 CELLSPACING=10 BORDER=0>';
  63. echo '<TR><TD align="right">Pseudonim:</TD><TD width="300"><INPUT TYPE="text" NAME="pseudonim" style="width: 300px" VALUE="'.$pseudonim.'"></TD></TR>';
  64. echo '<TR><TD align="right">Data ur.:</TD><TD width="300"><INPUT TYPE="text" NAME="data_urodzenia_dzien" style="width: 50px" VALUE="'.$data_urodzenia_dzien.'" readonly> <INPUT TYPE="text" NAME="data_urodzenia_miesiac" style="width: 50px" VALUE="'.$data_urodzenia_miesiac.'" readonly> <INPUT TYPE="text" NAME="data_urodzenia_rok" style="width: 80px" VALUE="'.$data_urodzenia_rok.'" readonly></TD></TR>';
  65. echo '<TR><TD align="right">Miejscowość:</TD><TD width="300"><INPUT TYPE="text" NAME="miejscowosc" style="width: 300px" VALUE="'.$miejscowosc.'"></TD></TR>';
  66. echo '<TR><TD align="right"><br>Avatar:</TD><TD width="300"><br><INPUT TYPE="text" NAME="avatar" style="width: 100px" VALUE="'.$avatar.'"></TD></TR>';
  67. echo '<TR><TD align="right"><br> </TD><TD width="300"><br><INPUT TYPE="hidden" NAME="subskrypcja" style="width: 300px" VALUE="'.$subskrypcja.'" readonly></TD></TR>';
  68. echo '<TR><TD align="right">Email:</TD><TD width="300"><INPUT TYPE="text" NAME="email" style="width: 300px" VALUE="'.$email.'" readonly></TD></TR>';
  69. echo '<TR><TD align="right">GaduGadu:</TD><TD width="300"><INPUT TYPE="text" NAME="gg" style="width: 300px" VALUE="'.$gg.'"></TD></TR>';
  70. echo '<TR><TD align="right"><br>Facebook:</TD><TD width="300"><br><INPUT TYPE="text" NAME="facebook" style="width: 300px" VALUE="'.$facebook.'"></TD></TR>';
  71. echo '<TR><TD align="right">Nk:</TD><TD width="300"><INPUT TYPE="text" NAME="nk" style="width: 300px" VALUE="'.$nk.'"></TD></TR>';
  72. echo '<TR><TD align="right">Grono:</TD><TD width="300"><INPUT TYPE="text" NAME="grono" style="width: 300px" VALUE="'.$grono.'"></TD></TR>';
  73. echo '<TR><TD align="right"><br></TD><TD width="300" align="right"><br><INPUT TYPE="submit" VALUE="Zapisz zmiany"></td></tr>';
  74. echo '</TABLE>';
  75. echo '</FORM>';
  76. echo '</center>';
  77. }
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89. if ($_GET['go'] == 'users_edit_save') {
  90. echo "<br><b>Użytkownik / Edycja profilu / Zapisywanie zmian:</b><br><br><br><br>";
  91.  
  92. $loginqq = addslashes(htmlspecialchars ($_POST['login']));
  93. $hasloqq = addslashes(htmlspecialchars ($_POST['haslo']));
  94. $avatarqq = addslashes(htmlspecialchars ($_POST['avatar']));
  95. $subskrypcjaqq = addslashes(htmlspecialchars ($_POST['subskrypcja']));
  96. $emailqq = addslashes(htmlspecialchars ($_POST['email']));
  97. $ggqq = addslashes(htmlspecialchars ($_POST['gg']));
  98. $imieqq = addslashes(htmlspecialchars ($_POST['imie']));
  99. $nazwiskoqq = addslashes(htmlspecialchars ($_POST['nazwisko']));
  100. $pseudonimqq = addslashes(htmlspecialchars ($_POST['pseudonim']));
  101. $miejscowoscqq = addslashes(htmlspecialchars ($_POST['miejscowosc']));
  102. $data_urodzenia_dzienqq = addslashes(htmlspecialchars ($_POST['data_urodzenia_dzien']));
  103. $data_urodzenia_miesiacqq = addslashes(htmlspecialchars ($_POST['data_urodzenia_miesiac']));
  104. $data_urodzenia_rokqq = addslashes(htmlspecialchars ($_POST['data_urodzenia_rok']));
  105. $facebookqq = addslashes(htmlspecialchars ($_POST['facebook']));
  106. $nkqq = addslashes(htmlspecialchars ($_POST['nk']));
  107. $gronoqq = addslashes(htmlspecialchars ($_POST['grono']));
  108.  
  109.  
  110. if ($_POST['action'] == 'add') { //dodawanie rekordu
  111. {
  112. $query = "INSERT INTO Users (login, haslo, avatar, subskrypcja, email, gg, imie, nazwisko, pseudonim, miejscowosc, data_urodzenia_dzien, data_urodzenia_miesiac, data_urodzenia_rok, facebook, nk, ";
  113. $query .= "grono, data) VALUES ('$loginqq', '$hasloqq', '$avatarqq', '$subskrypcjaqq', '$emailqq', '$ggqq', '$imieqq', '$nazwiskoqq', '$pseudonimqq', '$miejscowoscqq', '$data_urodzenia_dzienqq', '$data_urodzenia_miesiacqq', '$data_urodzenia_rokqq', '$facebookqq', '$nkqq', '$gronoqq', ".
  114. "now());";
  115. $wynik = mysql_query ($query);
  116. }
  117.  
  118.  
  119.  
  120. }
  121. elseif ($_POST['action'] == 'popraw') { //poprawienie rekordu
  122. {
  123. $query = "UPDATE Users SET login='$loginqq',haslo='$hasloqq',avatar='$avatarqq',subskrypcja='$subskrypcjaqq',email='$emailqq',gg='$ggqq',imie='$imieqq',nazwisko='$nazwiskoqq',pseudonim='$pseudonimqq',miejscowosc='$miejscowoscqq',data_urodzenia_dzien='$data_urodzenia_dzienqq',data_urodzenia_miesiac='$data_urodzenia_miesiacqq',data_urodzenia_rok='$data_urodzenia_rokqq',facebook='$facebookqq',nk='$nkqq',grono=";
  124. $query .= "'$gronoqq' WHERE
  125. login='".$_SESSION['login']."';";
  126. $wynik = mysql_query ($query);
  127. }
  128.  
  129. }
  130. echo "qwerty";
  131. }
nospor
Sprawdz czy w ogole ci dochodzi do update, czy zapytanie jest ok, czy się zapytanie wykonuje ok, włącz wyswietlanie wszystkich bledów, włacz wyswietlanie bledów zapytan, sprawdzaj co się kryje w zmiennych. To są proste sprawy, wystarczy tylko chciec sprawdzić daną rzecz.
Tu masz wszystko opisane:
Temat: Jak poprawnie zada pytanie
ciekawskiii
W formularzu brakuje add i popraw, masz jeden ukryty hidden i dales value="popraw" a powinno byc name="popraw" a add w formularzu wcale nie ma, pozniej sprawdzasz czy one istnieja, nie istnieja wiec nie zapisuje;)
tinware
Dzieki, już╗ rozwiązałem problem. Potrzebuje jakiś skrypt uploadu zdjęc z własną nazwa, czyli formulasz z:


Type: file - dla zdjecia (nadanie rozmiaru 100x100, o wielkosci max 100kb)
Type: text - nazwa zdjęcia+dopisanie .jpg

Ma ktoś coś podobnego, żeby podzielić się gotowce, przejrzałem już ok. 50 skryptów na googlach i znalazłem, ale problem bo nie dopisuje .jpg do nazwy pliku i nie akceptuje nazwy jako cyfry
bombardier
mozna przeciez to latwo zmienic, pokaz kod...
djgarsi
Mam swój (autorski). Jak chcesz mogę Ci za niewielkie pieniądze sprzedać.
Info na PW i mail admin@djgarsi.pl
tinware
Cytat(bombardier @ 9.03.2011, 14:54:05 ) *
mozna przeciez to latwo zmienic, pokaz kod...


  1. <?php //////////////////////////////////////////////////////////////////////////////// Początek działania php na stronie
  2. /////////////////////////////////////////////////////////////////////////////////////////// Połączenie z baza danych mysql.
  3. include('mysql.php');
  4.  
  5.  
  6.  
  7.  
  8.  
  9. echo"<a href=?go=users_up&id=djplate>Upload</a><br><br><br>";
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// users_up
  21. if ($_GET['go'] == 'users_up') {
  22.  
  23.  
  24.  
  25.  
  26. $query = "SELECT * FROM Users WHERE login='".$_GET['id']."';";
  27. $wynik = mysql_query ($query);
  28. $rekord = mysql_fetch_assoc ($wynik);
  29. $nr = $rekord['nr'];
  30. $ranga = stripslashes( ($rekord['ranga']));
  31. $login = stripslashes( ($rekord['login']));
  32. $haslo = stripslashes( ($rekord['haslo']));
  33. $avatar = stripslashes( ($rekord['avatar']));
  34. $subskrypcja = stripslashes( ($rekord['subskrypcja']));
  35. $email = stripslashes( ($rekord['email']));
  36. $gg = stripslashes( ($rekord['gg']));
  37. $telefon = stripslashes( ($rekord['telefon']));
  38. $imie = stripslashes( ($rekord['imie']));
  39. $nazwisko = stripslashes( ($rekord['nazwisko']));
  40. $pseudonim = stripslashes( ($rekord['pseudonim']));
  41. $miejscowosc = stripslashes( ($rekord['miejscowosc']));
  42. $data_urodzenia_dzien = stripslashes( ($rekord['data_urodzenia_dzien']));
  43. $data_urodzenia_miesiac = stripslashes( ($rekord['data_urodzenia_miesiac']));
  44. $data_urodzenia_rok = stripslashes( ($rekord['data_urodzenia_rok']));
  45. $facebook = stripslashes( ($rekord['facebook']));
  46. $nk = stripslashes( ($rekord['nk']));
  47. $grono = stripslashes( ($rekord['grono']));
  48.  
  49.  
  50.  
  51. $site_name = $_SERVER['HTTP_HOST'];
  52.  
  53. $url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
  54.  
  55. $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
  56.  
  57.  
  58. $upload_dir = "../upload/users/avatar/";
  59.  
  60.  
  61.  
  62. $upload_url = $url_dir."/../upload/users/avatar/";
  63.  
  64. $message ="";
  65.  
  66. //create upload_files directory if not exist
  67. //If it does not work, create on your own and change permission.
  68.  
  69. if (!is_dir("../upload/users/avatar"))
  70.  
  71. {
  72.  
  73. die ("../upload/users/avatar directory doesn't exist");
  74.  
  75. }
  76.  
  77.  
  78. if ($_FILES['userfile'])
  79. {
  80.  
  81. $message = do_upload($upload_dir, $upload_url, $file_name);
  82.  
  83. }
  84.  
  85. else
  86. {
  87.  
  88. $message = " ";
  89.  
  90. }
  91.  
  92.  
  93. $message;
  94.  
  95. function do_upload($upload_dir, $upload_url, $file_name)
  96. {
  97.  
  98.  
  99.  
  100.  
  101. $temp_name = $_FILES['userfile']['tmp_name'];
  102.  
  103. $file_name = $_FILES['userfile']['name'];
  104.  
  105. $file_type = $_FILES['userfile']['type'];
  106. $file_size = $_FILES['userfile']['size'];
  107.  
  108. $result = $_FILES['userfile']['error'];
  109.  
  110.  
  111. $file_url = $upload_url.$file_name;
  112.  
  113. $file_path = $_GET['login'];
  114.  
  115. //File Name Check
  116.  
  117. if ( $file_name =="")
  118. {
  119.  
  120. $message = " ";
  121.  
  122. return $message;
  123. }
  124. //File Size Check
  125.  
  126. else if ( $file_size > 500000)
  127. {
  128.  
  129. $message = "The file size is over 500K.";
  130.  
  131. return $message;
  132.  
  133. }
  134. //File Type Check
  135.  
  136. else if ( $file_type == "text/plain" )
  137. {
  138.  
  139. $message = "Sorry, You cannot upload any script file" ;
  140.  
  141. return $message;
  142.  
  143. }
  144.  
  145.  
  146. $result = move_uploaded_file($temp_name, $file_path);
  147.  
  148. $message = ($result)?" " :
  149. "Somthing is wrong with uploading a file.";
  150.  
  151.  
  152. return $message;
  153.  
  154. }
  155.  
  156.  
  157.  
  158.  
  159.  
  160. echo "nr: $nr<br>";
  161. echo "login: $login<br><br><br>";
  162.  
  163.  
  164. echo'<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post">';
  165. echo'<input type="file" id="userfile" name="userfile">';
  166. echo'<input type="submit" name="upload" value="Wgraj">';
  167. echo'</form>
  168. <br><br>';
  169.  
  170.  
  171. }
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178. /////////////////////////////////////////////////////////////////////////////////////////// Zakończenie działania php na stronie
  179. ?>


To ten kod. W formularzu potrzebuje dodać nazwe pliku jako $nr.jpg
Z sprowadzeniem $nr uzytkownika z bazy sobie poradzę
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.