Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z INSERT
Wieczny
post 13.07.2008, 10:17:52
Post #1





Grupa: Zarejestrowani
Postów: 191
Pomógł: 1
Dołączył: 21.03.2007

Ostrzeżenie: (60%)
XXX--


Nie dodaje nowego rekordu ;(
  1. <?php
  2. include('cfg.php');
  3. if($_POST['creat'] == 1 )
  4. {
  5.  
  6.  
  7. $login = addslashes($_POST['login']);
  8. $pw = addslashes($_POST['password']);
  9. $email = addslashes($_POST['email']);
  10.  
  11.  
  12.  $query = ("INSERT INTO user (id, login, pw, email, date) 
  13. VALUES ('', '".$_POST['login']."', '".$_POST['password']."', '".$_POST['email']."', '')");
  14.  
  15. echo "DODANE !";
  16.  
  17.  }
  18.  
  19.  
  20.  
  21. echo "
  22.  <link rel='Stylesheet' type='text/css' href='style.css'>
  23.  ( Znaki specjalne tkj. $/^&$#@!&*() nie dzialają )
  24.  <form action='register.php' method=POST>
  25.  <input class='input' type='text' name='login' maxlength='12'> - Nazwa użytkownika <br /> <br />
  26.  <input class='input' type='password' name='password' maxlength='8'> - Haslo <br /> <br />
  27.  <input class='input' type='text' name='email'> - Adres email <br /> <br />
  28.  <input class='input' type='submit' value='Rejestruj'>
  29.  <input type='hidden' name='creat' value='1'>
  30.  </form>
  31.  ";
  32.  
  33.  
  34. ?>
Go to the top of the page
+Quote Post
Cysiaczek
post 13.07.2008, 10:23:14
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Ja bym się zaczął martwić, gdyby to dodało rekord...
Gdzie niby wywołujesz zapytanie? Ja tylko widzę, że je tworzysz.

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
-Query-
post 13.07.2008, 10:31:28
Post #3





Goście







Czemu uzyles ( i ) przed i po " ?
Teraz po zapytaniu
  1. <?php
  2. mysql_query($query);
  3. ?>
Go to the top of the page
+Quote Post
hacek
post 13.07.2008, 10:39:17
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 8.06.2008

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


Prawidłowo ten kod wygląda:

  1. <?php
  2. include('cfg.php');
  3. if($_POST['creat'] == 1 )
  4. {
  5.  $_POST['login'] = mysql_real_escape_string($_POST['login']);
  6.  $_POST['password'] = mysql_real_escape_string($_POST['password']);
  7.  $_POST['email'] = mysql_real_escape_string($_POST['email']);
  8. mysql_query('INSERT INTO user (id, login, pw, email, date) VALUES 
  9. (''''.$_POST['login'].''''.$_POST['password'].''''.$_POST['email'].'''')') or die(mysql_error());
  10.  echo 'DODANE !';
  11. }
  12. //...
  13. ?>


I na przyszłość, jak już tworzysz bez potrzebne zmienne to chociaż je używaj!

Ten post edytował hacek 13.07.2008, 10:41:09
Go to the top of the page
+Quote Post
Wieczny
post 13.07.2008, 10:55:53
Post #5





Grupa: Zarejestrowani
Postów: 191
Pomógł: 1
Dołączył: 21.03.2007

Ostrzeżenie: (60%)
XXX--


To teraz pytanie mogę zrobić to tak żeby błąd wyskakiwał w momencie gdy użytkownik podaje nie właściwie znaki który mogą być atakiem SQL Bo robi sie syf w bazie jak ktoś stara się hackować ;
Go to the top of the page
+Quote Post
-Query-
post 13.07.2008, 10:56:41
Post #6





Goście







  1. <?php
  2. $query = "INSERT INTO user (id, login, pw, email, date) 
  3. VALUES ('', '$_POST[login]', '$_POST[password]', '$_POST['email']', '')";
  4.  
  5. if(mysql_query($query)) echo "DODANE !";
  6. ?>
Go to the top of the page
+Quote Post
Wieczny
post 13.07.2008, 11:05:42
Post #7





Grupa: Zarejestrowani
Postów: 191
Pomógł: 1
Dołączył: 21.03.2007

Ostrzeżenie: (60%)
XXX--


Gość to nie ma sensu w przypadku gdy używam mysql_real_escape_string bo nie ma tutaj żadnego warunku odnoszącego się do sprawdzania błędu a zapytanie się zawsze wykonuje czy jest błąd czy nie ^^
Go to the top of the page
+Quote Post
hacek
post 13.07.2008, 14:34:02
Post #8





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 8.06.2008

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


Użyj sobie PHPIDS, i ustaw wysyłanie na email i log do pliku i będziesz happy biggrin.gif Albo naucz się wyrażeń regularnych lub ich szukania w google.pl
Go to the top of the page
+Quote Post
bmL
post 13.07.2008, 14:40:26
Post #9





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Cytat(Wieczny @ 13.07.2008, 12:05:42 ) *
Gość to nie ma sensu w przypadku gdy używam mysql_real_escape_string bo nie ma tutaj żadnego warunku odnoszącego się do sprawdzania błędu a zapytanie się zawsze wykonuje czy jest błąd czy nie ^^

Najlepiej chyba funkcją eregi
Przykład dla maila (pisane z palca ale chyba dobrze tongue.gif):
  1. <?php
  2. if (!eregi("^[a-zA-Z0-9._-]{1,30}@[a-zA-Z0-9._-]{1,30}.[a-zA-Z0-9._-]{1,30}$", $_POST[email]))
  3.  echo 'blad zły format adresu email';
  4. else
  5.  //[...]
  6. ?>


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
Cysiaczek
post 13.07.2008, 17:28:06
Post #10





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Teraz jest coś takiego:
  1. <?php
  2. if(filter_var($email, FILTER_VALIDATE_EMAIL))
  3. {
  4. print 'email is valid';
  5. }
  6. ?>

Nie trzeba bawić się w regexy smile.gif
Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
bmL
post 13.07.2008, 18:25:56
Post #11





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


O dzięki na pewno się przyda rozumiem, że doszło to w php5. smile.gif


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
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: 2.07.2025 - 16:47