Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Problem z update
jaca121212
post
Post #1





Grupa: Zarejestrowani
Postów: 256
Pomógł: 16
Dołączył: 21.12.2014

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


Tak jak w temacie.
Problem polega na tym że jak ktoś wpiszę np. 123 lub cokolwiek to i tak potwierdzi mu konto.
Dodam że kod aktywacyjny przychodzi na maila.
Chce przerobić ten skrypt tak aby sprawdzało mi jaki kod podał użytkownik i czy jest zgodny z kodem w bazie.
Ewentualnie myślałem o przerobieniu tego kodu tak aby użytkownik najpierw wpisał ten kod potwierdzający a następnie mógł by się już normalnie zalogował na swoje utworzone konto. Tylko nie wiem jak zrobić właśnie porównanie czy kod w bazie i kod wpisany zgadzają się ze sobą .
  1. <form method="POST">
  2. <p class="nazwa"><i class="icon-person">Potwiedzenie rejestracji.</i></br></p>
  3. <input type="text" class="btn_input" name="potwierdz" placeholder="Kod potwierdzający" />
  4. <input type="submit" class="btn" name="pot" value="Potwierdź!"/>
  5. </form>
  6. <?php
  7. require_once "polaczenie.php";
  8. $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
  9. if ($polaczenie->connect_errno != 0) {
  10. echo "Error: " . $polaczenie->connect_errno . "Opis: " . $polaczenie->connect_error;
  11. die();
  12. }
  13. $potwierdzenie=$_post['potwierdz'];
  14. if(isset($_POST['pot']) && !empty($_POST['potwierdz']))
  15. {
  16. $result=$polaczenie->query("Select kod_aktywacyjny from uzytkownicy where kod_aktywacyjny='{$_post['potwierdz']}'");
  17. $wiersz = mysqli_fetch_array($result);
  18.  
  19. if($wiersz['kod_aktywacyjny'] == $_post['potwierdz']){
  20. $aktualizacja = $polaczenie->query(sprintf("UPDATE uzytkownicy SET aktywacja='aktywne' where id=(%d)",
  21. $_SESSION['id']));
  22. }
  23. echo"Konto aktywne";
  24. echo $wiersz['kod_aktywacyjny'];
  25. }else{
  26. echo"Nieaktywne konto";
  27. }
  28. ?>

Ktoś nakieruje mnie jak to zrobić.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gorden
post
Post #2





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


Po pierwsze, nazwy zmiennych są case sensitive.
Po drugie, na jakiej zasadzie działa Twój formularz? Użytkownik jest zalogowany? Jeśli tak, to szukaj w bazie jego kodu potwierdzającego i porównuj z tym wpisanym w formularzu. W tym momencie szukasz po wpisanym kodzie, a nie po użytkowniku.
Jeśli koniecznie chcesz zostać przy swoim zapytaniu (czego nie polecam, bo wtedy ktokolwiek może aktywować jakiekolwiek konto), to nie używaj porównania z wynikiem, tylko sprawdzaj, czy select znalazł jakiś wiersz.
Go to the top of the page
+Quote Post
jaca121212
post
Post #3





Grupa: Zarejestrowani
Postów: 256
Pomógł: 16
Dołączył: 21.12.2014

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


Cytat(gorden @ 17.02.2016, 21:40:15 ) *
Po pierwsze, nazwy zmiennych są case sensitive.
Po drugie, na jakiej zasadzie działa Twój formularz? Użytkownik jest zalogowany? Jeśli tak, to szukaj w bazie jego kodu potwierdzającego i porównuj z tym wpisanym w formularzu. W tym momencie szukasz po wpisanym kodzie, a nie po użytkowniku.
Jeśli koniecznie chcesz zostać przy swoim zapytaniu (czego nie polecam, bo wtedy ktokolwiek może aktywować jakiekolwiek konto), to nie używaj porównania z wynikiem, tylko sprawdzaj, czy select znalazł jakiś wiersz.

OK rozumiem,

założenie miałem na początku takie:

Na podany adres e-mail przychodził kod aktywacyjny. Zanim użytkownik zaloguje się na konto, powinien potwierdzić rejestrację dlatego w formularzu podaje kod aktywacyjny a skrypt sprawdza czy taki kod istnieje w bazie. Jeśli znajdzie taki kod to w kolumnie aktywacja zmieni na "1".

W jaki sposób sprawdzić czy dany kod istnieje w bazie ?
ewentualnie jak zrobić taki link z potwierdzeniem
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 17.10.2025 - 00:52