• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

mysql+php. UPDATE i fereign key.

Object Storage Arubacloud
0 głosów
277 wizyt
pytanie zadane 22 października 2016 w PHP przez Raster22 Obywatel (1,640 p.)
edycja 23 października 2016 przez HaKIM

Cześć. Mam bazę danych z paroma tabelami + stronkę w php która ma różne funkcje z nią związane. Chciałbym teraz wiele rzeczy zrobić ale kompletnie nie wiem jak. Więc tak:

1.W tej chwili robię na stronie opcję zmiany hasła. Przycisk>formularz z wpisaniem hasła>skrypt php


$user = $_SESSION["user"];
    $haslo = $_POST["haslo"];
    
    $haslomd = md5($haslo);

    
    
    
    $zmien='UPDATE uzytkownicy SET imie = "$haslo" WHERE login = "$user"';
    $wyslij = $polaczenie->query($zmien);
    if(!$polaczenie->query($zmien)){
        echo "Coś jest nie tak"."</br>"."</br>".$polaczenie->error;
        header('refresh: 4; url=zmiana_hasla.php');
    }
    else {
        echo "Hasło zostało zmienione";
        header('refresh: 3; url=panel.php');
    }


Pisze mi "hasło zostało zmienione" ale jednak nie zmienia się nic. Zmieniam tak samo z hasła w kodzie sql na imię i też nie zmienia. Wiecie może gdzie robię błąd ?

2.Są dwie tabele. x - Posiada PrimaryKey y- Posiada Foreign key tabeli x . Gdy chce usunąć wiersz w tabeli x to musze usunac wiersz w tabeli y z tym foreign keyem. Wiecie może jak zrobić by tak nie było i za foreign w tabeli y było np null ?

Bardzo proszę o pomoc,z góry dziękuje !

komentarz 23 października 2016 przez Szymon Lisowiec Mądrala (7,150 p.)
1. Do bazy powinieneś powinieneś zapisać hash hasła.
2. Gdzie filtrowanie danych otrzymanych przez POST?

Po $wyslij = $polaczenie->query($zmien); spróbuj dać var_dump($polaczenie->error); i sprawdź co wyświetli (usuń tymczasowo przekierowanie).
1
komentarz 23 października 2016 przez xandros Nałogowiec (29,450 p.)
edycja 23 października 2016 przez xandros
md5 -> http://php.net/manual/en/function.password-hash.php : http://php.net/manual/en/function.password-verify.php

Jeśli używasz systemu sesyjnego, errory mozesz dodawać do sesji jako flash messages:

http://mikeeverhart.net/php-flash-messages/ ( 1 link z google )

Sesja raczej powinna przechowywać user_id, a nie login usera. Tym samym mógłbyś aktualizować dane po id usera, a nie jego imieniu.

Odnośnie sprawy:

Włącz obsługe wyjątków w mysqli, usuń redirecty (header()) i zobacz, czy nie zwraca ci jakis błędów.

PS zmieniasz haslo w komórce o nazwie kolumny "imie"
komentarz 23 października 2016 przez Raster22 Obywatel (1,640 p.)
Oke, to juz naprawilem i co dziwne. Zamieniłem "" na ' i ' na "". A co odnośnie tabel z foreign keyem ? i odnoście przechowywania nazw usera poprzez id. Jak to zrobić ?
komentarz 23 października 2016 przez HaKIM Szeryf (87,590 p.)

Xandros, ja bym md5 nie polecał.

Zostało złamane już w 2004 roku, a to o czymś świadczy.

Data złamania 2004

Złamany przez Xiaoyun Wang, Dengguo Fen, Xuejia Lai i Hongbo Yu

https://pl.wikipedia.org/wiki/MD5

Stosowałbym raczej password_hash();

http://php.net/manual/en/ref.password.php

komentarz 23 października 2016 przez Raster22 Obywatel (1,640 p.)
Panowie, chcecie porozmawiać na pw ja tu mam problemy życiowe :D
komentarz 23 października 2016 przez xandros Nałogowiec (29,450 p.)
> Xandros, ja bym md5 nie polecał.

A co ja, ****, napisałem?
komentarz 23 października 2016 przez HaKIM Szeryf (87,590 p.)

 

md5 -> http://php.net/manual/en/function.password-hash.php

To wygląda jakbyś odwoływał do funkcji w manualu, bynajmniej związanej z password_hash();

Na swoją obronę mogę powiedzieć, że strzałki w naszym społeczeństwie nie oznaczają coś, co ma kierować do drogi innej, niżeli podanej przed/nad treścią.

Bynajmniej nie oznacza „Leżakowanie”, a tam dopisek dlaczego przygody są złe.

Nie sądzisz?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

–1 głos
1 odpowiedź 391 wizyt
0 głosów
1 odpowiedź 283 wizyt
pytanie zadane 18 listopada 2018 w PHP przez marek90552 Początkujący (430 p.)
+2 głosów
1 odpowiedź 325 wizyt

92,536 zapytań

141,376 odpowiedzi

319,451 komentarzy

61,920 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...