Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak dodać dane do bazy SQL?
Forum PHP.pl > Forum > PHP
Saki
  1. <?php
  2. /*
  3. Chce zrobić rejestracje, tworzenie nowej bazy dla usera ładnie działa ale dodanie informacji do nie nie działa
  4. */
  5. if (isset($_POST['user']))
  6. {
  7.  
  8. include "baza.php";
  9.  
  10.  
  11. $user = $_POST['user'];
  12. $pass = $_POST['pass'];
  13. $znak = $_POST['znak'];
  14.  
  15. #To ładnie tworzy:
  16. mysql_query('CREATE TABLE '.$user.'(password TEXT, znak TEXT,)') or die ('Taki uzytkownik juz istnieje!');
  17.  
  18.  
  19. #PROBLEM ROZWIĄZANY
  20. mysql_query("INSERT INTO `$user` (`password`, `znak`) VALUES ('$pass', '$znak')");
  21.  
  22. #ale to juz nie działa
  23. #mysql_query('INSERT INTO '.$user.' (password, znak) VALUES ('.$pass.', '.$znak.')');
  24.  
  25. #Ale tu nie dodaje :(
  26. #mysql_query('INSERT INTO '.$user.' password, znak VALUES '.$pass.', '.$znak.'');
  27.  
  28.  
  29. echo 'Konto <b>'.$user.'</b> stworzone pomyslnie!'.$znak.'';
  30.  
  31. mysql_close($mysql_id);
  32.  
  33. }
  34. else
  35. {
  36.  
  37. echo '<form action="a.php" method="POST">
  38. Login: <input type="text" name="user"><br>
  39. Haslo: <input type="text" name="pass"><br>
  40. Znak: <input type="text" name="znak"><br>
  41. <input type="submit" value="zarejestruj"></form>';
  42.  
  43. }
  44. ?>


  1. <?php
  2.  
  3. /*
  4. Teraz nie mogę się zalogować :(
  5. Bardzo proszę o pomoc :)
  6. */
  7.  
  8.  
  9. if (isset($_POST['log_check']) && ($_POST['pass_check']))
  10. {
  11.  
  12. include "baza.php";
  13.  
  14. mysql_query('SELECT*FROM '.$_POST['log_check'].'') or die('Nie ma takiego uzytkownika!');
  15.  
  16.  
  17.  
  18.  
  19.  
  20. $dane = mysql_query('SELECT password FROM '.$_POST['log_check'].'') or die ('Nie poprawne dane!');
  21.  
  22. while($row = mysql_fetch_array($dane)) {
  23. if($dane != $_POST['pass_check']){
  24. print "Niepoprawne haslo!";
  25. }
  26. else
  27. {
  28. $_SESSION['login'] = $_POST['log_check'];
  29. print "Zalogowales sie poprawnie ".$_POST['log_check']."!";
  30. }
  31. }
  32.  
  33. mysql_close($mysql_id);
  34. }
  35. else
  36. {
  37.  
  38. echo '<form action="b.php" method="POST">
  39. Login: <input type="text" name="login_check"><br>
  40. Haslo: <input type="text" name="pass_check"><br>
  41. <input type="submit" value="Login"></form>';
  42.  
  43. }
  44. ?>













sadistic_son
Linijka 21:
  1. mysql_query("INSERT INTO $user (password, znak) VALUES ('$pass', '$znak')");
Saki
Cytat(sadistic_son @ 26.02.2011, 17:08:05 ) *
Linijka 21:
  1. mysql_query("INSERT INTO $user (password, znak) VALUES ('$pass', '$znak')");


Ok dzięki!
A teraz nie działa logowanie.
mortus
Przede wszystkim to nie tworzysz tutaj nowej bazy, tylko nową tabelę. Milion użytkowników to u Ciebie milion tabel zawierających tylko hasło i jakiś znak. To nie jest optymalne i w ogóle jest bez sensu. Powinieneś utworzyć jedną tabelę użytkowników i w niej zapisywać nazwę użytkownika, hasło i ów znak. Tabelę możesz stworzyć wcześniej, a skrypt tylko i aż dodaje, edytuje lub usuwa konkretne rekordy.
erix
PS: poczytaj przyklejone tematy o bezpieczeństwie, bo Twój skrypt jest dziurawy.

A najlepiej zacznij od przeczytania kursu PHP+MySQL, bo to podstawy podstaw.
Saki
Cytat(mortus @ 26.02.2011, 17:10:34 ) *
Przede wszystkim to nie tworzysz tutaj nowej bazy, tylko nową tabelę. Milion użytkowników to u Ciebie milion tabel zawierających tylko hasło i jakiś znak. To nie jest optymalne i w ogóle jest bez sensu. Powinieneś utworzyć jedną tabelę użytkowników i w niej zapisywać nazwę użytkownika, hasło i ów znak. Tabelę możesz stworzyć wcześniej, a skrypt tylko i aż dodaje, edytuje lub usuwa konkretne rekordy.


mysql_query('CREATE TABLE '.$user.'(password TEXT, znak TEXT, date TEXT, freq TEXT, mode TEXT, power TEXT, time_start TEXT, rst_sent TEXT, rst_rcvd TEXT, time_stop TEXT, qso_call TEXT, imie TEXT, city TEXT, code TEXT, qsl_sent TEXT, qsl_rcvd TEXT, komentarz TEXT(200))') or die ('Taki uzytkownik juz istnieje!');

wink.gif
Mephistofeles
Możesz nam wytłumaczyć po co chcesz tworzyć dla każdego usera osobną tabelę?
Saki
Cytat(Mephistofeles @ 26.02.2011, 17:19:00 ) *
Możesz nam wytłumaczyć po co chcesz tworzyć dla każdego usera osobną tabelę?


Bo chce zrobić QSO LogBook, i inaczej sie nie da, trzeba tworzyć dla każdego tabelkę smile.gif
Ale mój serwerek ma duży dysk więc nie ma problemu z miejscem smile.gif

A możesz mi pomóc przy logowaniu? smile.gif
mortus
Cytat(Saki @ 26.02.2011, 17:14:20 ) *
mysql_query('CREATE TABLE '.$user.'(password TEXT, znak TEXT, date TEXT, freq TEXT, mode TEXT, power TEXT, time_start TEXT, rst_sent TEXT, rst_rcvd TEXT, time_stop TEXT, qso_call TEXT, imie TEXT, city TEXT, code TEXT, qsl_sent TEXT, qsl_rcvd TEXT, komentarz TEXT(200))') or die ('Taki uzytkownik juz istnieje!');

wink.gif

Kolego wpisanie czegokolwiek do Twojego formularza stworzy Ci nową tabelę. Więc co z tego, że jeśli użytkownik krysia11 istnieje, to wywala błąd. Bo skoro krysia111 już nie ma własnej tabeli, to błędu nie wywali. Ile może być takich Kryś? Nawet dla żartu może Ci ktoś bazę danych zapchać.

Da się da i na pewno jest to inaczej zrobione.
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.