Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z zapisem adresu IP do bazy danych
easyshare
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 16.09.2008

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


Kod
if (isset($_POST['submit'])) { // Obsługa formularza.
    if (eregi ("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$", stripslashes(trim($_POST['ip_address'])))) {
        $ip = $_POST['ip_address'];
    } else {
        $ip = FALSE;
        echo "WprowadĽ poprawny adres IP";
    }
}

echo "$ip";
if ($ip) {
    $query = "UPDATE users SET ipaccess=(172.16) WHERE user_id=$_SESSION[user_id]";
    $result = @mysql_query ($query);
    if (mysql_affected_rows() == 1 ) { // Jesli nie wyst±piły żadne problemy
        echo "Zmieniono ustawienia dostępu IP";
        header ("Location:  http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "panel.php");
    } else {
        echo "Ze względu na wystapienie błedu systemowego zmiana nie była możliwa";
    }
}


Adres IP w postaci xxx.xxx.xxx.xxx nie wchodzi, natomiast w postaci xxx.xxx tak :/ Proszę o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
_olo_1984
post
Post #2





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


ale nie wchodzi do bazy danych czy nie przechodzi tego warunku ?
Pokazż strukture i typy pol w tabel, zmien zapytanie na:
  1. <?php
  2. $query = "UPDATE users SET ipaccess='".$ip."' WHERE user_id=$_SESSION[user_id]";
  3. ?>


może to coś pomoże


--------------------
awake
Go to the top of the page
+Quote Post
easyshare
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 16.09.2008

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


nie wchodzi do bazy danych, żeby było ciekawej, jak wpisze do formularza 192.168 wchodzi, jak wpisze 192.168.1 już nie wchodzi, wynika z tego że problem jest z ilością " . " w zmiennej. Zapisane zapytanie tak jak podałeś również nie rozwiązuje problemu. Struktura tabeli

ipaccess varchar(16) latin1_swedish_ci

Ten post edytował easyshare 22.09.2008, 10:49:49
Go to the top of the page
+Quote Post
delfinium
post
Post #4





Grupa: Zarejestrowani
Postów: 90
Pomógł: 6
Dołączył: 30.06.2007
Skąd: Zielona Góra

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


No nie ma bata, żeby tamto zapytanie od _olo_1984 nie przeszło. Na pewno dodajesz cudzysłów przed i po zmiennej $ip? Bo coś mi się wydaje, że nie. Bo jeśli przechodzi Ci 192.168 a 192.168.1 już nie to znaczy, że nie dodajesz cudzysłowów a z jedną kropką do SQL traktuje to jako float i przepuszcza a z dwoma kropkami to już nie ma takiego typu i dlatego się wykrzacza i po to mają być tam cudzysłowy.
Go to the top of the page
+Quote Post
elmozaur
post
Post #5





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


To co napisales niema prawa sie zapisac w bazie

zrob tak:

  1. <?php
  2. $sesja=$_SESSION['user_id'];
  3. $query = "UPDATE users SET ipaccess='$ip' WHERE user_id='$sesja'";
  4. ?>


pozdro
Go to the top of the page
+Quote Post
easyshare
post
Post #6





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 16.09.2008

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


Kolejne schody :/ dodałem jeszcze jedną funkcję do resetowania IP ( wpisywania * do bazy ) i teraz cała strona się wykrzacz :/
Kod wygląda teraz tak
  1. <?php
  2. if (isset($_POST['submit'])) { // Obsługa formularza.
  3.    if (eregi ("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$", stripslashes(trim($_POST['ip_address'])))) {
  4.        $ip = $_POST['ip_address'];
  5.    } else {
  6.        $ip = FALSE;
  7.        echo "WprowadĽ poprawny adres IP";
  8.    }
  9. }
  10.  
  11.  
  12. if (isset($_POST['submit1'])) {
  13.    echo "Zresetowano";
  14.    $reset = "*";
  15.    $query = "UPDATE users SET ipaccess='".$reset."' WHERE user_id=$_SESSION[user_id]";
  16.    $result = @mysql_query($query);
  17.    if (mysql_affected_rows() = 1) {
  18.        header ("Locatio: htt://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "panel.php");
  19.    } else {
  20.        echo "Błąd. Odblokowanie dostepu niemożliwe.";    
  21.    }
  22. }
  23.  
  24. if ($ip) {
  25.    $query = "UPDATE users SET ipaccess='".$ip."' WHERE user_id=$_SESSION[user_id]";
  26.    $result = @mysql_query ($query);
  27.    if (mysql_affected_rows() == 1 ) { // Jesli nie wystąpiły żadne problemy
  28.        header ("Locatio:  htt://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "panel.php");
  29.    } else {
  30.        echo "Ze względu na wystapienie błedu systemowego zmiana nie była możliwa";
  31.    }
  32. }
  33. ?>

Szukam błędu ale go nie widze :/
Go to the top of the page
+Quote Post
dadexix
post
Post #7





Grupa: Zarejestrowani
Postów: 439
Pomógł: 21
Dołączył: 28.06.2007
Skąd: Bielsko-Biała

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


nie wiem czy można tak sobie dac * samo... może spróbuj zamiast gwaizdki dawac nie możliwy ip np. 0.0.0.0, 127.0.0.1


BTW.
czemu @ przed mysql_query? daje błędy? powiedz jakie!
czemu locatio a nie location? i czemy htt a nie http?
header ("Locatio: htt://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "panel.php");


--------------------
"Na przykład zmiennej $jestem_najlepszy przypisujemy wartość logiczną TRUE"
Ja: użyj funkcji[...]
Grins: mów normalnie do mnie a nie po polsku
Ja: normalnie to znaczy jak?
Grins: No w PHP... inaczej mój parser ledwo kuma:)
Go to the top of the page
+Quote Post
easyshare
post
Post #8





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 16.09.2008

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


W skrypcie jest wpisane prawidłowo Location i http .Przy dodawaniu na forum obcieło :/

Do tabeli musi być zapisana * , wymaga tego specyfikacja. Błędu nie otrzymuje przy wykonywaniu skryptu, poprostu strona się wykrzacza , dziwne, sprawdziłem wszystkie tagi html powinno być OK a nie jest

Błąd
  1. <?php
  2. if (mysql_affected_rows() = 1) {
  3. ?>


powinno być
  1. <?php
  2. if (mysql_affected_rows() == 1) {
  3. ?>


Ten post edytował easyshare 22.09.2008, 13:38:44
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 Aktualny czas: 19.08.2025 - 15:36