Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP][HTML]Zmiana nazwy
Forum PHP.pl > Forum > Przedszkole
Croos22
Pomógł by mi ktoś poprawić kod liczę też na sugestie ponieważ zaczynam sam pomału tworzyć kod. Chodzi o to, że zmiana ma kosztować 5 diamentów.
Z góry dzięki.

  1. <?
  2. sesion_start();
  3. include('config.php');
  4. $user_id = $_SESSION['user_id'];
  5. $name = $_POST['name'];
  6.  
  7.  
  8. if(0 > 5)
  9. $zapytanie = "UPDATE `konto` SET `user_name` = '$name', `diamenty` = '-5' WHERE `$user_id";
  10. echo 'Twój nick został zmieniony';
  11. else if(5 > 0)
  12. $zapytanie = "UPDATE `konto` SET `user_name` = '$name', `diamenty` = '-5' WHERE `$user_id";
  13. echo 'Nie masz wystarczającej liczby diamentów';
  14.  
  15. ?>
  16.  
  17. <form action="#" method="post">
  18. Nowa nazwa: <input type="text" name="name" />
  19. <input type="submit" value="zmień"/>
  20. </form>
Wicepsik
Z których tutoriali czerpałeś wiedzę na temat sesji, wykonywania zapytań do bazy danych i tych instrukcji warunkowych ? biggrin.gif
CuteOne
  1. if(0 > 5)// co to?? skąd skrypt ma wiedzieć ile masz diamentów??
  2. $zapytanie = "UPDATE `konto` SET `user_name` = '$name', `diamenty` = '-5' WHERE `$user_id";
  3. echo 'Twój nick został zmieniony';
  4. else if(5 > 0)
  5. $zapytanie = "UPDATE `konto` SET `user_name` = '$name', `diamenty` = '-5' WHERE `$user_id";
  6. echo 'Nie masz wystarczającej liczby diamentów';
  7.  
  8. //gdzie wywołujesz zapytanie??


  1. $select = mysql_query("SELECT diamenty FROM konto WHERE user_id = '{$user_id}' and diamenty >= 5");
  2.  
  3. if(mysql_num_rows($select)) {
  4.  
  5. mysql_query("UPDATE `konto` SET `user_name` = '$name', `diamenty` = diamenty -5 WHERE user_id = '{$user_id}'");
  6. echo 'Twój nick został zmieniony';
  7. }
  8. else {
  9.  
  10. echo 'Nie masz wystarczającej liczby diamentów';
  11. }
Croos22
W bazie mam tak:
Cytat
user_id user_name diamenty
1 admin 10


a i tak wywala drugi komunikat dlaczego?
sazian
jaki drugi komunikat questionmark.gif
o czym mówisz questionmark.gif
CuteOne
up: pewnie o "braku diamentow"

aby pobierać cokolwiek z bazy musisz być zalogowany na koncie admina innymi słowy $user_id musi się równać 1
Croos22
A czy należy przypisywać w jakiś sposób user_id z sesji logowania.

Na chwilę obecną nic takiego nie czyniłem :
  1. <?php
  2. include('config.php');
  3. $select = mysql_query("SELECT diamenty FROM konto WHERE user_id = '{$user_id}' and diamenty >= 5");
  4. if(mysql_num_rows($select)) {
  5.  
  6. mysql_query("UPDATE `konto` SET `user_name` = '$name', `diamenty` = diamenty -5 WHERE user_id = '{$user_id}'");
  7. echo 'Twój nick został zmieniony';
  8. }
  9. else {
  10.  
  11. echo 'Nie masz wystarczającej liczby diamentów';
  12. }
  13. ?>
  14. <form action="zmiana.php" method="post">
  15. Nowa nazwa: <input type="text" name="name" />
  16. <input type="submit" value="zmień"/>
  17. </form>
  18.  


Tak na boczku jak działało by to z zaszyfrowanym tekstem w bazie np. sha1?
CuteOne
1. Tworzysz tabele z danymi użytkowników: user_id | login | haslo | etc..
2. Tworzysz skrypt rejestracji do zapisu danych użytkownika i logowania do ich odczytu i zapisu do sesji
3. Po zalogowaniu zamiast
  1. include('config.php');
  2. $select = mysql_query("SELECT diamenty FROM konto WHERE user_id = '{$user_id}' and diamenty >= 5");
  3. if(mysql_num_rows($select)) {

wstawiasz
  1. include('config.php');
  2. $user_id = $_SESSION['user_id']; // tu należało by wstawić jakąś funkcje czyszczącą session z badziewia
  3. $select = mysql_query("SELECT diamenty FROM konto WHERE user_id = '{$user_id}' and diamenty >= 5");
  4. if(mysql_num_rows($select)) {


4. O jakim zaszyfrowanym teksie mowa??
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.