• 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.

VPS Starter Arubacloud
0 głosów
269 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ź 390 wizyt
0 głosów
1 odpowiedź 282 wizyt
pytanie zadane 18 listopada 2018 w PHP przez marek90552 Początkujący (430 p.)
+2 głosów
1 odpowiedź 322 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...