Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Komunikat Problem z MySQL.
korey
post 17.08.2010, 20:17:58
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


To znowu ja po napisaniu walidiacji formularza przystąpiłem do przesyłania danych do bazy. myślę ze mój kod jest prawidłowy lecz niestety nie działa:
  1. /*
  2. .
  3. .
  4. sprawdzanie pol formularza
  5. jesli ok idziemy dalej
  6. .
  7. .
  8.  
  9. */
  10. // Wysyłamy zapytanie do bazy danych
  11. $zapytanie_register = "INSERT INTO `accounts` VALUES(NULL, '".$login."', '".sha1($haslo)."', '".$email."', '', '', '', '', '', '')";
  12. // '', = pola ktore wypełnia sie po zalogowaniu.
  13. // Odpowiedz
  14. $odpowiedz = mysql_query($zapytanie_register);
  15. if($odpowiedz > 0){
  16.  
  17. //funkcja ktorej zawartosc jest pobierana, konwertowana i wyswietlana z polskimi znakami
  18. polskie_znaki('Rojestracja przebiegła pomyślnie do końca.<br />
  19. <ul>
  20. <li>Login: '.$login.'</li>
  21. <li>Hasło: '.$haslo.'</li>
  22. <li>E-Mail: '.$email.'</li>
  23. Teraz Możesz pszejść do <a href="/">Logowania.</a>
  24. </ul>
  25. <br />');
  26.  
  27. }
  28. else{
  29. $pokaz_form=false;
  30. echo 'Problem z MySQL.';
  31. }

Dodam ze po usunięciu zapytania i if'a działało jak trzeba.
Połączenie z baza działa. testowalem to na localhoscie i na serwerze i cały czas "'Problem z MySQL."


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 19)
nospor
post 17.08.2010, 20:24:03
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie: if($odpowiedz > 0){
a: if($odpowiedz){

Masz blad zapytania. Wyswietl go. Tu masz napisane jak:
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korey
post 17.08.2010, 20:28:44
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


No tak, ale na mojej innej stronce mam tak samo i smiga jak trzeba


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 20:31:23
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Rety.... prosta komenda: wyswietl błąd zapytania! Niewazne ze gdzie indziej dziala. Wazne ze tu nie dziala wiec zrob o co proszę.
Oczywiscie ja wiem w czym problem, ale chcę byś sam do tej niesamowitej zagadki sam doszedl - na przyszlosc ci się przyda.

Dodatkowo wyswietl sobie wszystkie bledy. W linku co ci podalem masz to tez opisane jak zrobic. Pamietaj - to ty masz problem, wiec staraj się stosować do wskazowek


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korey
post 17.08.2010, 20:49:40
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


miałem 3 błędy i został tylko jeden..'
Notice: Undefined variable: wynik in C:\Program Files\WebServ\httpd-users\Servis\includes\funkcje\generator_kodu.php on line 7

  1. <?php
  2. function generator_code(){
  3. $liczby = range('0', '9'); //liczby 0-9
  4. shuffle($liczby); // tasowanie tablicy
  5. $liczba = array_splice($liczby, 0, 5);
  6. foreach ($liczba as $dane) {
  7. $wynik .= $dane; // <---- to ta linia ;/
  8. }
  9. echo '<input type="hidden" name="getcode" value="'.$wynik.'" />';
  10. echo $wynik;
  11. }
  12. ?>


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 21:07:02
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




przed foreach ma byc:
$wynik = '';


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korey
post 17.08.2010, 22:11:47
Post #7





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


teraz mam taki błądz z DB:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Program Files\WebServ\httpd-users\Servis\pages\page1.php on line 117
  1. --- poprawne dane - robmy z nimi co trzeba (zapisujemy do bazy danych itp.)
  2. $sql = 'INSERT INTO `accounts` VALUES(NULL, '.$login.', '.sha1($haslo).', '.$email.', '', '', '', '', '', '')'; -- linia 17 <<
  3. echo 'ZAPYTANIE:'.$sql;
  4. mysql_query($sql) OR die('BŁĄD:'.mysql_error());
tabela ma 10 kolumn i indeksy na acc_login, acc_www, acc_ip oraz na acc_email. moze to jakos przeszkadza


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 22:14:33
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




gdy uzywasz apostrofu jako oznaczenie tekstu, to nie mozesz potem w tekscie dac znowu ot tak sobie apostrof. Musisz uzyc \ czyli \'
Lektura obowiązkowa dla ciebie
http://pl.php.net/manual/pl/language.types.string.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korey
post 17.08.2010, 22:15:53
Post #9





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Yyy... tongue.gif Poproszę ze spolszczeniem ;p


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 22:18:07
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kurde.... odpisałes minutę po moim poscie. Nawet nie próbowałeś się wysilić...... a spolszczenie ci napisałem przecież!
Cytat
gdy uzywasz apostrofu jako oznaczenie tekstu, to nie mozesz potem w tekscie dac znowu ot tak sobie apostrof. Musisz uzyc \ czyli \'

Cytat
yy... tongue.gif Poproszę ze spolszczeniem ;p
Oczekujesz pomocy i pokazujesz język? Kultury trochę.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korey
post 17.08.2010, 22:26:37
Post #11





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 17.08.2010, 23:18:07 ) *
Oczekujesz pomocy i pokazujesz język? Kultury trochę.

tongue.gif <-- ten jezyk moze zrobić wiele dobrego biggrin.gif nie no zartuje taki nawyk.
powiedz no mi czy jak mam do wypełnienia tylko 4 kolumny na 10 to moze byćtak
  1. $sql ="....(NULL, $zmienna, $zmienna2, $zmienna3, $zmianna4)"; -- questionmark.gif




I czy ma jakies znaczenie ze dodałem indexy..?

Ten post edytował korey 17.08.2010, 22:29:35


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 22:52:45
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jesli w insert nie okreslisz kolumn jakich bedziesz uzywal (patrz manual mysql) to musisz podac wszystkie wartosci, nawet jesli są puste.Indexy nie mają tu nic do rzeczy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korey
post 17.08.2010, 23:04:04
Post #13





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Na kombinowałem się troszkę i osiągnąłem efekt z takim kodem:

  1. error_reporting(E_ALL);
  2. ini_set('display_errors','1');
  3. //poprawne dane - robmy z nimi co trzeba (zapisujemy do bazy danych itp.) // Wysyłamy zapytanie do bazy danych
  4. $sql = "INSERT INTO `accounts` VALUES(NULL, '".$login."', '".sha1($haslo)."', '".$email."', '', '', '', '', '', '')";
  5. mysql_query($sql) or die('<br /><br /><b>ZAPYTANIE:</b> '.$sql.polskie_znaki('<b>BŁĄD:</b> '.mysql_error()));

powiedz co o tym myślisz.? nie ma żadnego błędu a jest nie co inaczej niz ty mowiles.

Ten post edytował korey 17.08.2010, 23:11:50


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 23:12:16
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




moze byc i tak.
Mi chodzilo o cos takiego: 'bla \'bla\' bla'
ty zrobiles tak:"bla 'bla' bla"
obie metody są dozwolone

ps: zakładam ze słyszałes o sqlinjection i jestes w stanie zabezpieczyc kod przed tym?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
korey
post 17.08.2010, 23:24:26
Post #15





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Tak słyszałem o tym ale tak szczeze to nie wiem jak zabezpieczyć.. :/
PS to z \ \ to nie działało mi


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
IceManSpy
post 17.08.2010, 23:32:30
Post #16





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. $sql = "INSERT INTO `accounts` VALUES(NULL, '".$login."', '".sha1($haslo)."', '".$email."', '', '', '', '', '', '')";
Po co tak?
Jak chcesz zrobić inserta z $login itd to zrób tak:
  1. $hasło= sha1($haslo);
A potem:
  1. $sql = "INSERT INTO `accounts` VALUES(NULL, '$login.', '$haslo', '$email', '', '', '', '', '', '')";

Poza tym po co tak wypełniać puste pola? Zrób sobie takiego inserta, że jakąś zmienną wkłada do jakiejś kolumny:
  1. INSERT INTO table_name (column1, column2, column3,...)VALUES (value1, value2, value3,...)

Tylko jako robisz inserta w mój sposób, to stringi mają być w apostrofach np '$login' a liczby mają być bez nich np $cyferka.

O zabezpieczeniu poczytaj o funkcjach: htmlspecialchars, addslashes i stripslashes .

Ten post edytował IceManSpy 17.08.2010, 23:39:48


--------------------
Go to the top of the page
+Quote Post
korey
post 17.08.2010, 23:36:10
Post #17





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


te funkcje to ja znam tongue.gif


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post
Ramzaa
post 18.08.2010, 08:16:41
Post #18





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

Ostrzeżenie: (0%)
-----


IceManSpy, jak lubisz zużywać cenny czas wykonywania skryptu, to nikt Ci nie zabrania tak robić, ale innych nie pociągaj za sobą, bo złe nawyki potrafią nieźle namieszać, przez co później powstają bezsensowne tematy, że strona wolno się ładuje, że coś mi nie działa.
  1. $sql = "INSERT INTO `accounts` VALUES (NULL, '$login', '".sha1($haslo)."''')";

To jest jak najbardziej prawidłowe rozwiązanie i na pewno bardziej optymalne od Twojego.

A co do problemu autora, to rozwiązanie jest kilka postów wyżej smile.gif

Ten post edytował Ramzaa 18.08.2010, 08:17:18
Go to the top of the page
+Quote Post
IceManSpy
post 18.08.2010, 08:56:06
Post #19





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Ale na czym polega wolność skryptu? Że wcześniej do jakiejś zmiennej przypisujesz wynik z sha1? Poza tym co do zapytania, to sam autor wypełniał wszystkie kolumny pustymi znakami, zamiast określić do jakich kolumn ma wsadzić dane. A poniżej podałem mu sposób, jak dać do poszczególnych kolumn wartości.

Ten post edytował IceManSpy 18.08.2010, 09:01:57


--------------------
Go to the top of the page
+Quote Post
korey
post 18.08.2010, 16:52:18
Post #20





Grupa: Zarejestrowani
Postów: 122
Pomógł: 2
Dołączył: 14.08.2009
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Jak dla mnie rozwiązanie jakie osiągnołem przy drobnej pomocy kubusia jest w pałni dobre, przetestowane i jak najbardziej dla mnie optymalne.

Temaz uważam za zamknięty. smile.gif

pozdro By Korey


--------------------
”Jestem nędzarzem, mam tylko marzenia.
Rozsyłam je u twych stóp,
Stąpaj lekko, gdyż stąpasz po mych marzeniach„
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 21:07