Sprawdzenie i usunięcie rekordu z bazy

0

Witam. Próbuję zrobić aktywację kodem SMS na stronie postawionej na wordpressie. Mam utworzoną tabelę, w której przechowuję wygenerowane 100 kodów. Tabela nazywa się kody_sms.
╔════╦══════════════╦
║ id ║ kody ║
╠════╬══════════════╬
║ 1 ║ XDGHF ║
║ 2 ║ TYFHF ║
║ 3 ║ GJCJD ║
║ 4 ║ RUDJD ║
╚════╩══════════════╩
Na stronie mam wstawiony input dla wpisania kodu:

<label for="kod_aktywacji">Wpisz kod SMS:</label>
<input type="text" name="kod_aktywacji" id="kod_aktywacji" class="regular-text" required placeholder="Podaj kod" maxlength="5"></input>
<input type="submit" name="submit_formm" value="Dodaj" />

I teraz moje pytanie, jak zrobić to tak, by po wpisaniu kodu, sprawdzało, czy istnieje taki w bazie, jeśli tak to przepuszcza dalej i usuwa go z bazy.
Na razie mam tylko coś takiego sprawdzania, czy istnieje

global $wpdb;
$znajdz_kod = $wpdb->get_results("SELECT kody,id FROM kody_sms WHERE kody = '$kod_aktywacji'");
	foreach ( $znajdz_kod as $kod) {
		$id_kodu = $kod->id;
		}	
if ($_POST['kod_aktywacji'])
	{
}
1

Pobierasz id kodu z bazy na podstawie jego wartości podanej przez usera. Jak ten id będzie większy od 0 zapuszczasz DELETE i nie ma problemu.

1

Dobrze by było uniknąć sql injection
zamiast

$znajdz_kod = $wpdb->get_results("SELECT kody,id FROM kody_sms WHERE kody = '$kod_aktywacji'");

zastosować

$sql = $wpdb->prepare("SELECT kody,id FROM kody_sms WHERE kody = %s", $kod_aktywacji);
$znajdz_kod = $wpdb->get_results($sql);
0

Poradziłem sobie :) Dzięki za rady :) Co do SQL Injection, to popróbuje później :)
Poczytałem trochę i zmieniłem kod:

if ($_POST['kod_aktywacji']){
$cd=$_POST['kod_aktywacji'];

global $wpdb;

$check_code = $wpdb->get_results("SELECT id FROM kody_sms WHERE kody = '$cd'");
foreach ( $check_code as $uzytkownikid) {
		$id_user = $uzytkownikid->id;
		
		}
	if (($_POST['kod_aktywacji'])&&(!$id_user)) 
	{
	
	
	echo '<div id="message_position_capreg"><p class="error_form"><font color="red">Kod SMS, który podałeś jest nieprawidłowy! Spróbuj ponownie.</font></p></div>'; 
	}
	else { 
	



$wpdb->delete( 'kody_sms', array( 'kody' => $cd ) );

if ( isset( $_POST["submit_formm"] ) && $_POST["company_nip"]...

1 użytkowników online, w tym zalogowanych: 0, gości: 1