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
kapslokk
post
Post #2





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


Raz używasz mysqli raz mysql_. Zdecyduj się (IMG:style_emoticons/default/smile.gif)
A co do samych zapytan to:
  1. mysql_query("UPDATE `uzytkownicy` SET `kod_aktywacyjny`='0'");
  2. mysql_query("UPDATE `uzytkownicy` SET `aktywacja`='1'");

Zaktualizuje Ci WSZYSTKIE rekordy, a nie tylko ten który chcesz. Poczytaj też o SqlInjection.

@edit
to w koncu jak masz? bo przed chwila bylo mysql_query a teraz juz $polaczenie->query

Ten post edytował kapslokk 18.02.2016, 12:09:56
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(kapslokk @ 18.02.2016, 12:08:59 ) *
Raz używasz mysqli raz mysql_. Zdecyduj się (IMG:style_emoticons/default/smile.gif)
A co do samych zapytan to:
  1. mysql_query("UPDATE `uzytkownicy` SET `kod_aktywacyjny`='0'");
  2. mysql_query("UPDATE `uzytkownicy` SET `aktywacja`='1'");

Zaktualizuje Ci WSZYSTKIE rekordy, a nie tylko ten który chcesz. Poczytaj też o SqlInjection.

@edit
to w koncu jak masz? bo przed chwila bylo mysql_query a teraz juz $polaczenie->query


te mysql dalłem do testów a z tym sql injection to się później zajmę
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: 16.10.2025 - 12:58