SQL - izpis
 
wssrpnc 25. feb 2014 16:00:56 Pridružen od:
22. feb 2011
1022 objav
762 169 20
#1

Tole kodo spodaj naložim pred headerjem (verjetno nima veze), zdaj me pa zanima, kako bi v samem contentu izpisal tole vrstico, kjer ima zapis vrednost $verify, ki jo podam v url-ju.



SELECT vem kako narediti, ampak sintakse ne "zadanem"..



Poskusil sem <?php echo SELECT field1,field2,field3 FROM wpposts WHERE postcontent = '$verify'"; ?>



Hvala za pomoč.



Tole naložim pred headerjem:

<?php

$mysqli = new mysqli("host", "user", "pass", "xxx");

$verify = $mysqli->realescapestring($_GET['verify']); // escape GET var



$query = "SELECT * FROM wpposts WHERE postcontent = '$verify'"; // Build query



if ($result = $mysqli->query($query)) { // Check return query


while ($row = $result->fetch_assoc()) { // Fetch Row
$query = "UPDATE wp_posts SET post_status = 'publish' WHERE post_content = '$verify'"; // Update query

$mysqli->query($query); // Run
}

$result->close(); // free result set

}

?>



mogoče tale vrstica nagaja: $result->close(); // free result set ?


všeč(0) ni všeč(0) spam(0)
 
sikmajnd 25. feb 2014 16:14:56 Pridružen od:
11. nov 2013
89 objav
156 9 1
#2

Glede na to, da maš WP, bi za začetek raje uporabil WP classe za ta job:

https://codex.wordpress.org/Class_Reference/wpdb



Drugače pa izpiši si zgeneriran sql stavek z verify kodo in jo prilepi v phpmyadmin. Tam ti bo izpisalo, če je napaka kje v queryu.


všeč(1) ni všeč(0) spam(0)
 
wssrpnc 25. feb 2014 18:11:10 Pridružen od:
22. feb 2011
1022 objav
762 169 20
#3

Hvala, bom probal preuredit.


všeč(0) ni všeč(0) spam(0)
 
wssrpnc 2. mar 2014 15:28:21 Pridružen od:
22. feb 2011
1022 objav
762 169 20
#4

Še eno vprašanje. Kako pa je to iz varnostnega vidika?



Trenutno je takole, uporabnik odda formo (Contact form 7), na mejl dobi link (koda v prvem postu) in ko ga klikne, se postu spremeni status iz pending v published.



Je možno, da preko forme nekdo vnese kakšno kodo, ki bi npr. pobrisala bazo wordpress-a? Če ja, kaj bi bil najboljši način, da se to prepreči? Stripslashes? Hvala


všeč(0) ni všeč(0) spam(0)
 
sikmajnd 2. mar 2014 15:55:34 Pridružen od:
11. nov 2013
89 objav
156 9 1
#5

Paziti moraš na spremenljivke, ki jih dobiš od uporabnika in se uporabljajo za buildanje querya. V prvem postu si se pravilno lotil (realescapestring), v primeru, da uporabljaš WP classe lahko uporabiš metodo prepare:



https://codex.wordpress.org/ClassReference/wpdb#ProtectQueriesAgainstSQLInjectionAttacks

https://codex.wordpress.org/ClassReference/wpdb#RunAnyQueryontheDatabase



Dodatno se lahko zavaruješ še tako, da preveriš tipe vseh podanih spremenljivk. Recimo, da je tvoj "verify" vedno 6 mestno celo število. V tem primeru vedno preverjaš, če je to res.



Predvidi čim več in nikoli ne zaupaj uporabniku (:


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se