Pregunta

Una parte de un guión de votación estoy trabajando en:. Estoy comprobando una tabla personalizada en mi base de datos de WP para ver si un usuario ya votó por una entrada por el control de la dirección IP y el ID del mensaje

Si IP del usuario ya existe para el puesto que votaron, quiero hacer eco "ya ha votado!" de lo contrario añadir el IP. Esto es lo que ocurrió con ..

global $wpdb;
$voter_ip = $_SERVER['REMOTE_ADDR']; 
$post_id = $_POST['post_id'];

if (!($wpdb->get_row("SELECT voter_ip FROM wp_voter_ips WHERE post_id = $post_id AND voter_ip = $voter_ip") ) ) { //if IP address for matching post id not found in wp_voter_ips table
$wpdb->insert( $wpdb->prefix . 'voter_ips', array( 'post_id' => $post_id, 'voter_ip' => $voter_ip ) ); //add IP and post_id
echo "voted!";
}
else //if IP already exists
{
echo "Already voted!";
}

Me triples comprobado para asegurarse de que las variables y los nombres de las columnas son correctos. Independientemente de la sentencia if, inserta los votantes IP incluso cuando ya existe.

¿Fue útil?

Solución

En su if(), debería ser así:

if (!($wpdb->get_row("SELECT voter_ip FROM " . $wpdb->prefix . "voter_ips WHERE post_id = $post_id AND voter_ip = '$voter_ip'")

Aviso de las comillas añadido en $voter_ip.

Licenciado bajo: CC-BY-SA con atribución
scroll top