Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]zmiana nicku po zalogowaniu się
Forum PHP.pl > Forum > Przedszkole
parykstodwa
Witam, napisałem sobie logowanie i chcę, by po zalogowaniu można było skożystać z opcji takiej jak "zmień nick", lecz coś nie działa....

Cytat
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NIE) in C:\Program Files (x86)\WebServ\httpd\\set.php on line 27
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files (x86)\WebServ\httpd\set.php on line 27

A to móje kody:

  1. <?php
  2. session_start(); // Na samej górze zadeklaruj sesję.
  3. session_destroy();// Sekcja wylogowywania, kasuje wszystkie zmienne sesyjne
  4.  
  5. $message = ""; // Wiadomość po wylogowaniu
  6.  
  7. // Sekcja logowania
  8. $login = $_POST['login'];
  9. if($login)
  10. {
  11. $uzytkownik = $_POST['uzytkownik'];
  12. $haslo = $_POST['haslo'];
  13.  
  14. // Połączenie z bazą.
  15. $host = "localhost";
  16. $db_user = "root";
  17. $db_password = "roooot";
  18. $database = "abc";
  19. mysql_connect($host, $db_user, $db_password);
  20. mysql_select_db($database);
  21.  
  22. // Sprawdzenie nazwy użtkownika i hasła.
  23. $rezultat = mysql_query("SELECT * FROM `players` WHERE `Nick` = '$uzytkownik' AND `pass` = '$haslo'");
  24.  
  25. if(@mysql_num_rows($rezultat))
  26. {
  27. session_register("uzytkownik"); // Zapamiętuje zmienną sesji
  28. header("location: main.php"); // Przekierowanie do strony main.php
  29. }
  30. else
  31. {
  32. $message = "Nieprawidłowa nazwa użytkownika lub hasło";
  33. }
  34. }
  35. ?>
  36. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  37. <html xmlns="http://www.w3.org/1999/xhtml">
  38. <head>
  39. <title>logowanie</title>
  40. </head>
  41.  
  42. <body>
  43. <? echo $message; ?>
  44. <form id = "form1" name = "form1" method = "post" action = "<? echo $PHP_SELF; ?>">
  45. <table>
  46. <tr>
  47. <td>Użytkownik: </td>
  48. <td><input name = "uzytkownik" type = "text" id = "uzytkownik" /></td>
  49. </tr>
  50. <tr>
  51. <td>Hasło: </td>
  52. <td><input name = "haslo" type = "password" id = "haslo" /></td>
  53. </tr>
  54. </table>
  55. <input name = "login" type = "submit" id = "login" value = "login" />
  56. </form>
  57. </body>
  58. </html>


A to main.php:

  1. <?
  2. session_start(); // Na samej górze zadeklaruj sesję.
  3.  
  4. if(!session_is_registered("uzytkownik"))
  5. { // Sprawdza zmienną sesji.
  6. header('location: index.php'); // Przekierowanie do index.php
  7. }
  8. ?>
  9.  
  10. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  11. <html xmlns="http://www.w3.org/1999/xhtml">
  12.  
  13. <head>
  14. <title>Dokument2</title>
  15. </head>
  16. <body>
  17. <p>Witaj <? echo $_SESSION["uzytkownik"]; ?>! Jesteś zalogowany.</p>
  18. <br />
  19. <p><a href="set.php">Zmiana Nicku</a></p>
  20. <p><a href="index.php">Wyloguj</a></p>
  21. </body>
  22. </html>


Oba te pliki były pisane na podstawie tutorialu, a tutaj teraz plik na zmiane nicku, który sam zrobiłem tongue.gif

  1. <?
  2. session_start(); // Na samej górze zadeklaruj sesję.
  3. $_SESSION["uzytkownik"] = $uzytkownik;
  4. if(!session_is_registered("uzytkownik"))
  5. { // Sprawdza zmienną sesji.
  6. header('location: index.php'); // Przekierowanie do index.php
  7. }
  8. else
  9. {
  10. echo '<table>
  11. <form action="" method="post">
  12. <tr>
  13. <td>Nowy nick:</td>
  14. <td><input type="text" name="formName"/></td>
  15. </tr>
  16.  
  17. <tr>
  18. <td>&nbsp;</td>
  19. <td><input type="submit" name="submit" value="Zmień nick"/></td>
  20. </tr>
  21. </form>
  22. </table>';
  23.  
  24. if($formName)
  25. {
  26. session_register("formName"); // Zapamiętuje zmienną sesji
  27. $abc = mysql_query("UPDATE `players` SET `Nick` = '$formName' WHERE `nick` = '$uzytkownik'") or die('tu nei wiem co jest');
  28. header("location: main.php"); // Przekierowanie do strony main.php
  29. }
  30. else
  31. {
  32. echo "nie dziala";
  33. }
  34.  
  35.  
  36. }
  37. ?>
  38.  
  39. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  40. <html xmlns="http://www.w3.org/1999/xhtml">
  41. <head>
  42. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  43. <title>Dokument bez tytułu</title>
  44. </head>
  45.  
  46. <body>
  47. </body>
  48. </html>


Proszę o pomoc.
i-skrypty.pl
złe dane do łączenia się z bazą... a w ogóle to połączenie z bazą daj na samej górze skryptu, zaraz pod session_start();

session_destroy() - usuń...
sadistic_son
Błąd mówi jasno - użytkownik ODBC nie ma praw dostępu do bazy danych.

To połączenie z bazą jest poprawne, skoro Ci się łączy:
  1. // Połączenie z bazą.
  2. $host = "localhost";
  3. $db_user = "root";
  4. $db_password = "roooot";
  5. $database = "abc";
Natomiast w innym miejscu łączysz się używając loginu ODBC@localhost i to połącznie już nie może zostać zrealizowane. Zapewne przepisałeś dosłownie z samouczka.
parykstodwa
Ale ja nie mam żadnego takiego użytkownika ohmy.gif Loguje się jako "Patryk" i wyświetla mi się plik main.php, gdy kliknę potem w "zmiana nicku" to mam plik set.php i jak wpisze nowy nick to mi go nie zmienia tylko wywala te błędy.
Ogólnie to chciałem, że jak wyświetla nam się plik set.php to użytkownik ma być ciągle zalogowany i ma być połączenie z bazą, by to się nei zrywało i mógł zmienić swoją nazwe.
sadistic_son
Nie czytasz ze zrozumieniem...
Nie interesują Cię ani nas użytkownicy na strone/w bazie. Mowa o użytkowniku który loguje się do bazy MySQL. Popatrz na linijkę 17. z pierwszego kodu.
  1. $db_user="root";
User logujący się do MySQL to root. A błąd mówi, że nie można zalogować użytkownika ODBC. Tak więc podejrzewam, że w jakimś innym miejscu masz inne połączenie z bazą i zamiast root jest ODBC, a dokładnie to w pliku C:\Program Files (x86)\WebServ\httpd\\set.php gdzieś w okolicach linii 20-27.
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.