Bonjour,
J'ai un problème avec mon script. Si je me connecte avec User A et que je m'inscrit à un event, ma colonne event_subscriber qui contient la chaine de caractère des users inscrit à cet event se met bien à jour.
Mais dès que je me connecte avec User B et que je clique un lien subscribe pour un event, l'user écrase la chaîne de caractère et efface User A alors que j'aimerais que l'user se rajoute derrière avec une virgule.
J'ai relu la doc un peu partout depuis deux jours mais là je sèche. quelqu'un aurait une idée svp de mon erreur ?
Voici mon code, merci pour votre aide
Code PHP :
//Wordpress deprecated
ini_set('display_errors','off');
//Global Wordpress
global $wpdb;
if(!isset($wpdb))
{
require_once('../../../wp-config.php');
require_once('../../../wp-load.php');
require_once('../../../wp-includes/wp-db.php');
}
define('WP_CALENDAR_TABLE', $wpdb->prefix . 'calendar');
//Deal xmlHttpRequest
header('Content-type: text/html; charset=UTF-8');
//Methode post < XMLHTTPREQUEST >
$raid = $_POST["raid"];
$date = $_POST["date"];
$time = $_POST["time"];
$user = $_POST["user"];
//Ne pas faire confiance
function testDate( $date )
{
$temp = implode('-', array_reverse( explode('-',$date) ) ) ;
return preg_match( '`^\d{1,2}-\d{1,2}-\d{4}$`' , $temp ) ;
}
function testTime( $time )
{
$temp = ''.$time.'';
return preg_match( '`^\d{1,2}:\d{1,2}:\d{1,2}$`' , $temp ) ;
}
if(testTime( $time ) == false || testDate ( $date ) == false){
echo 'No banana, bad monkey.';
exit;
}
//Requête principale
$sql = $wpdb->query("SELECT event_subscriber FROM " . WP_CALENDAR_TABLE . " WHERE event_title='".$raid."' AND event_begin='".$date."' AND event_time='".$time."'");
if($sql == true)
{ // Verifier la colonne event_subscriber(S)
$temp = implode(",", $sql);
$verif = preg_match('#,'.$user.'#', $temp);
// Si user deja inscrit mettre à jour la chaine de caractères contenant les users inscrit (séparé par une virgule)
if($verif == false)
{
$update = explode(",", $temp);
array_push($update, ''.$user.'');
$users = implode(",", $update);
$sql = $wpdb->query("UPDATE " . WP_CALENDAR_TABLE . " SET event_subscriber='".$users."' WHERE event_title='".$raid."' AND event_begin='".$date."' AND event_time='".$time."'");
$date_fr = implode('-', array_reverse( explode('-',$date) ) ) ;
echo 'You subscribe for the event "' .$raid.'"';
echo ' of ' .$date_fr. '';
echo ' at '.$time.'';
echo ' with nicename "'.$user.'"';
}
else
{
echo 'Your are already registered for this raid "'.$raid.'"';
}
}
else
{
echo 'Bad request. Contact administrator of this site.';
}