modification d'un script: trop dur pour moi...

Mammouth du PHP | 790 Messages

27 oct. 2011, 11:05

ce que je veux dire, c'est que j'ai une page php avec tout mon code et pour affiché le script de vote, j'ai un echo:
<td>Question 1 <?php echo rating_bar($donnees['id_chien'].'-1',$donnees['id_chien'],'1','10'); ?></td>	
et je pense qu'a aucun moment la session n'est présente dans ce script...

si non, l'utilisateur doit être enregistrer pour avoir accès aux votes...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2011, 11:33

oui, mais rien ne t'empêche de vérifier, à la validation s'il s'agit d'un utilisateur enregistré ou nom.

c'est juste du confort pour toi :) (si tu veux savoir qui vote quoi ^^)

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

27 oct. 2011, 11:38

oui, oui, ca c'est bon les sessions fonctionne, je te fait voir:
<?php
if(isset($_SESSION['username']))
{
?>


			<table width="100%">	
			<colgroup>
				<col span="1" width="50%"/>
				<col span="1" width="50%"/>			
			</colgroup>			
				<tr>
					<td>Question 1 <?php echo rating_bar($donnees['id_chien'].'-1',$donnees['id_chien'],'1','10'); ?></td>					
					<td>Question 6 <?php echo rating_bar($donnees['id_chien'].'-6',$donnees['id_chien'],'6','10'); ?></td>					
				</tr>
				<tr >
					<td colspan="2"><hr /></td>
				</tr>
				<tr>
					<td>Question 2 <?php echo rating_bar($donnees['id_chien'].'-2',$donnees['id_chien'],'2','10'); ?></td>					
					<td>Question 7 <?php echo rating_bar($donnees['id_chien'].'-7',$donnees['id_chien'],'7','10'); ?></td>					
				<tr>
				<tr >
					<td colspan="2"><hr /></td>
				</tr>				
				</tr>
					<td>Question 3 <?php echo rating_bar($donnees['id_chien'].'-3',$donnees['id_chien'],'3','10'); ?></td>					
					<td>Question 8 <?php echo rating_bar($donnees['id_chien'].'-8',$donnees['id_chien'],'8','10'); ?></td>					
				<tr>
				<tr >
					<td colspan="2"><hr /></td>
				</tr>				
				<tr>
					<td>Question 4 <?php echo rating_bar($donnees['id_chien'].'-4',$donnees['id_chien'],'4','10'); ?></td>					
					<td>Question 9 <?php echo rating_bar($donnees['id_chien'].'-9',$donnees['id_chien'],'9','10'); ?></td>					
				</tr>
				<tr >
					<td colspan="2"><hr /></td>
				</tr>				
				<tr>
					<td>Question 5 <?php echo rating_bar($donnees['id_chien'].'-5',$donnees['id_chien'],'5','10'); ?></td>					
					<td>Question 10 <?php echo rating_bar($donnees['id_chien'].'-10',$donnees['id_chien'],'10','10'); ?></td>					
				</tr>				
			</table>
			
<?php
}
else
{
?>
<br />
<center><font color="red">Le systeme de votes n'est ouvert qu'aux membres inscrits ! 
<br />
<a href="login.php">inscriptions gratuites</a></font></center>
<?php
}
?>
la tu as toutes mes questions et la session

je réalise que je fait peut etre fausse route, en haut de page, j'ai un requiere:
<?php require('_drawrating.php'); ?> qui contient ca:
<?php


function rating_bar($id, $chien='', $question='', $units='', $static='') { 

require('_config-rating.php');
	
$ip = $_SERVER['REMOTE_ADDR'];
if (!$units) {$units = 10;}
if (!$static) {$static = FALSE;}

// recherche d'informations sur les votes
$query=mysql_query("SELECT 
						  total_votes, 
						  total_value, 
						  used_ips FROM $rating_dbname.$rating_tableName 
						  WHERE id='$id' ")or die(" Error: ".mysql_error());


// insert si les champs n'existe pas
if (mysql_num_rows($query) == 0) {
$req1 = "INSERT INTO $rating_dbname.$rating_tableName (`id`,`id_chien`,`id_question`,`total_votes`, `total_value`, `used_ips`) VALUES ('$id','$chien','$question', '0', '0', '')";

$result = mysql_query($req1);
}

$numbers=mysql_fetch_assoc($query);


if ($numbers['total_votes'] < 1) {
	$count = 0;
} else {
	$count=$numbers['total_votes']; //combien de vote total
}
$current_rating=$numbers['total_value']; //le nombre total d'évaluer ajouté ensemble et conservé
$tense=($count==1) ? "vote" : "votes"; //votes/vote au pluriel

// déterminez si l'utilisateur a voté, donc nous savons comment tirer l'ul/li
$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='".$id."' ")); 

// now draw the rating bar
$rating_width = @number_format($current_rating/$count,2)*$rating_unitwidth;
$rating1 = @number_format($current_rating/$count,1);
$rating2 = @number_format($current_rating/$count,2);


if ($static == 'static') {

		$static_rater = array();
		$static_rater[] .= "\n".'<div class="ratingblock">';
		$static_rater[] .= '<div id="unit_long'.$id.'">';
		$static_rater[] .= '<ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">';
		$static_rater[] .= '<li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';
		$static_rater[] .= '</ul>';
		$static_rater[] .= '<p class="static">'.$id.'. Vote: <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.' cast) <em>This is \'static\'.</em></p>';
		$static_rater[] .= '</div>';
		$static_rater[] .= '</div>'."\n\n";

		return join("\n", $static_rater);


} else {

      $rater ='';
      $rater.='<div class="ratingblock">';

      $rater.='<div id="unit_long'.$id.'">';
      $rater.='  <ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth*$units.'px;">';
      $rater.='     <li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.' /'.$units.'</li>';

      for ($ncount = 1; $ncount <= $units; $ncount++) { // loop from 1 to the number of units
           if(!$voted) { // if the user hasn't yet voted, draw the voting stars
              $rater.='<li><a href="db.php?j='.$ncount.'&q='.$id.'&t='.$ip.'&c='.$units.'" title="'.$ncount.' out of '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
           }
      }
      $ncount=0; // resets the count

      $rater.='  </ul>';
      $rater.='  <p';
      if($voted){ $rater.=' class="voted"'; }
      $rater.='>Moyenne: <strong><font color="#26c41a"></strong>'.$rating1.'</font>/'.$units.' ('.$count.' '.$tense.')';
      $rater.='  </p>';
      $rater.='</div>';
      $rater.='</div>';
      return $rater;
 }
}
?>
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2011, 12:18

si je comprend bien la fonction "rating_bar" permet d'ajouter une question concernant un chien dans la table s'il n'existe pas et ensuite d'afficher les résultat des votes, le tout en fonction de l'id (id de quoi en fait ? de la personne qui vote ?).
d'après ce que je vois de l'utilisation l'id est un truc que tu gère toi même, ça ne devrait pas poser de soucis
le require est obligatoire sinon tu ne pourra pas utiliser ta fonction rating_bar, docn ça c'est bon.
je pense que c'est l'utilisation que tu souhaite en faire qui pose problème.

donc la, au final, je pige pas trop ce que tu souhaite faire, je suis perdu.

reprenons depuis le début.
ce que tu souhaite faire c'est afficher autrement les vote fait avec le script existant ?

si oui à tu besoin d'info en plus que celle déjà existante dans la table ?
si pas besoin il suffit "simplement" d'exploiter la table existante sans avoir une "copie" des données existantes
si non effectivement une nouvelle table qui va contenir une référence sur la table actuelle et les nouvelles infos.

Après dans la gestion actuelle tu doit ajouter une requête update des infos dont tu a besoin juste après l'update existant. Le principe est le même pour l'insertion.

voila je crois que décrire simplement et exhaustivement ce que tu souhaite pourrais nous permettre de mieux comprendre la chose :)

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

27 oct. 2011, 12:38

l'id dont tu parle est l'id de la question... en aucun cas je n'ai l'id du votant et ce que je veux faire, c'est remplacer l'adresse ip par l'id du votant (session), comme tu l'a dit l'ip c'est pas super...

si j'ai fait une 2 eme table c'est parce que sur la table d'origine c'est un UPDATE sur la ligne concernant l'id de la question avec recalcule des valeur et on ma conseiller de créer une ligne par vote et en aucun cas d'enregistrer les votes déjà recalculer...

ma 2eme table fonctionne et enregistre 1 ligne par vote comme je le veux mais je n’arrive pas a y ajouter l'id de session en cour...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

27 oct. 2011, 12:45

plus je réfléchi et c'est pas facile, plus je pense que si j'arrive a remplacer IP par ID de session mon problème sera résolu et je pense donc que je doit modifier ce script: <?php require('_drawrating.php'); ?> qui est le dernier code que j'ai montrer, j'ai essayé mais rien a faire... :non:
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2011, 14:33

enregistrer tout les votes plutôt que le résultat moyen, oui pourquoi pas cela peux te permettre beaucoup de chose (nombre vote par note etc).

Dans ce cas soit tu a effectivement deux tables mais tu utilise un trigger pour refaire le calcul lors d'une insertion dans la table qui stock tout les votes.
soit tu n'a qu'une seule table et avec la bonne requête tu récupère la moyenne arithmétique des bote (voir fonction avg dans la doc de mysql).

au quel cas tu n'a pas besoin d'update, dans la fonction, mais bien d'un insert.
il s'agit de celui que tu a indiqué sauf que, comme dans le exemple précédent, tu utilise l'id du votant (puisse que si j'ai bien compris seul les gens connecté peuvent voter ?). Cet id doit être dans la session ou récupérable via une info en session (cela dépend du fonctionnement de ton espace membre ;) )

je vois, dans ton code, un isset($_SESSION['username']) a tu autre chose dans $_SESSION ?
si non il faut une requete SQL avant l'insertion (ou une sous requete) pour avoir cet id.

exemple
<?php
$req = "INSERT INTO $rating_dbname.$rating_tableName_2 (id_question, id_votant, id_chien, note, signup_date) VALUES (".$question.",
select id  from tableUtilisateur where username='".mysql_real_escape_string($_SESSION['username'])."',
".$chien.",".$vote_sent.",".time().")";
?>
j'ai volontairement modifié le nom du champ id en id_votant pour que l'on soit sur de parler de la même chose ;)

est ce qu'une chose dans ce style est ce que tu cherche ? (en lieu et place du l'update montré au début).
pour ce qui est de l'affichage, soit garde deux tables et la tu n'a rien a faire, car elle permet d'insérer un couple question / chien / votant /réponse s'il n'existe pas et après permet l'affichage.
soit tu n'utilise qu'une seule table et tu modifie la requete pour avoir directement la moyenne des réponses par question (et par chien donc).

perso je pense qu'une seule table est suffisant les sgbd sachant faire le reste ;)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

27 oct. 2011, 14:48

voila mon fichier ini.php pour les sessions
<?php
//Cette page permet d'initialiser le site en verifiant par exemple si le membre est connecté
session_start();
header('Content-type: text/html;charset=UTF-8');
if(!isset($_SESSION['username']) and isset($_COOKIE['username'], $_COOKIE['password']))
{
	$cnn = mysql_query('select password,id from users where username="'.mysql_real_escape_string($_COOKIE['username']).'"');
	$dn_cnn = mysql_fetch_array($cnn);
	if(sha1($dn_cnn['password'])==$_COOKIE['password'] and mysql_num_rows($cnn)>0)
	{
		$_SESSION['username'] = $_COOKIE['username'];
		$_SESSION['userid'] = $dn_cnn['id'];
	}
}
?>
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

27 oct. 2011, 15:03

je garde les 2 tables, une qui UPDATE et calcul la moyenne et une qui enregistre vote par vote et dans les 2 je veux changer l'adresse IP en ID_votant qui est la session

la 1er affiche des résultats avec ajax, la je ne touche pas mais plus bas, j'affiche les votes des parents du chien en cours et la j'utilise la 2 eme table pour affiché les votes, celle de 1 vote par ligne et ainsi de suite pour les grands parents...
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2011, 16:22

ok

au vu de ton code tu doit utiliser $_SESSION['userid']

par contre j'en profite pour te dire que tu ne devrais pas mettre le mot de passe dans le cookie (même haché avec sha1).
à la limite utilise un hash qui fait référence à l'utilisateur dans la table couplé avec autre chose (par exemple le user-agent) me semble un peu mieux, même si le user-agent n'est pas fiable. La pour le coup je ne sais pas trop ce qui est le mieux.

donc remplacer l'ip par le userid est simple.
dans la fonction rating_bar l'ip est récupérée ainsi : $ip = $_SERVER['REMOTE_ADDR'];
dans la requete d'insertion cette adresse et figé vide
INSERT INTO $rating_dbname.$rating_tableName (`id`,`id_chien`,`id_question`,`total_votes`, `total_value`, `used_ips`) VALUES ('$id','$chien','$question', '0', '0', ''");

donc remplace ce vide par $_SESSION['userid'];

Par contre dans le système d'origine cette donnée n'a pas vraiment d'utilité puisse que dans ce champs il y a un tableau "sérialisé" qui contient les ip utilisée, ceci afin d'éviter un spam sur les votes. pour simuler cela il te faudrais mettre le userid, c'est tout a fait réalisable il te suffit à la ligne $ip = $_SERVER['REMOTE_ADDR']; remplacer $_SERVER['REMOTE_ADDR'] par $_SESSION['userid']. ceci dans le 1er code fournis.

bon après je ne sais pas ce qu'il y a dans $ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']); donc au pire tu peux virer le test && ($ip == $ip_num) avant l'update et le remplacer par un test pour savoir si l'id du votant est déja dans le tableaux $checkIP (avec simplement isset)).

ce serait plus mieux :)

ça devrait aller ?

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

27 oct. 2011, 18:38


Par contre dans le système d'origine cette donnée n'a pas vraiment d'utilité puisse que dans ce champs il y a un tableau "sérialisé" qui contient les ip utilisée, ceci afin d'éviter un spam sur les votes. pour simuler cela il te faudrais mettre le userid, c'est tout a fait réalisable il te suffit à la ligne $ip = $_SERVER['REMOTE_ADDR']; remplacer $_SERVER['REMOTE_ADDR'] par $_SESSION['userid']. ceci dans le 1er code fournis.

bon après je ne sais pas ce qu'il y a dans $ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']); donc au pire tu peux virer le test && ($ip == $ip_num) avant l'update et le remplacer par un test pour savoir si l'id du votant est déja dans le tableaux $checkIP (avec simplement isset)).

ce serait plus mieux :)

ça devrait aller ?

@+
désolé mais je ne comprend pas #-o
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Mammouth du PHP | 790 Messages

27 oct. 2011, 18:41

regarde, c 'est dans ce script, plus bas, j'ai un UPDATE, il fonctionne et juste apres j'ai un INSERT qui fonctionne aussi mais des que je met: $ip = $_SESSION['userid']; comme tu peux le voir, ca ne marche plus...
<?php
header("Cache-Control: no-cache");
header("Pragma: nocache");

require('_config-rating.php'); 

//création des valeur
$vote_sent = preg_replace("/[^0-9]/","",$_REQUEST['j']);
$id_sent = preg_replace("/[^0-9a-zA-Z-]/","",$_REQUEST['q']);
$ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']);
$units = preg_replace("/[^0-9]/","",$_REQUEST['c']);
$ip = $_SESSION['userid'];

// suprimer le script parce que les utilisateurs normaux ne le verront jamais.
if ($vote_sent > $units) die("Désolé, le vote a l'air d'être sans fondement."); 


//connexion
$query = mysql_query("SELECT id_question, id_chien, total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($query);
$checkIP = unserialize($numbers['used_ips']);
$count = $numbers['total_votes']; //votes total
$current_rating = $numbers['total_value']; //valeur calculées
$sum = $vote_sent+$current_rating; // ajoure la nouvelle valeur
$tense = ($count==1) ? "vote" : "votes"; //plural form votes/vote
$question = $numbers['id_question'];
$chien = $numbers['id_chien'];


// contrôle pour voir si le premier vote a été compté 
// ou augmentation du nombre actuel de votes
($sum==0 ? $added=0 : $added=$count+1);

// si c'est la table existe deja a déjà on ajoute les valeurs valeur
((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));
$insertip=serialize($checkIP);

//recherche ip sur les votes
$voted=mysql_num_rows(mysql_query("SELECT used_ips FROM $rating_dbname.$rating_tableName WHERE used_ips LIKE '%".$ip."%' AND id='".$id_sent."' "));
if(!$voted) {     //if the user hasn't yet voted, then vote normally...

	if (($vote_sent >= 1 && $vote_sent <= $units) && ($ip == $ip_num)) { // verification adresse ip
		$update = "UPDATE $rating_dbname.$rating_tableName SET total_votes='".$added."', total_value='".$sum."', used_ips='".$insertip."' WHERE id='$id_sent'";
		$result = mysql_query($update);	

		
		$req = "INSERT INTO $rating_dbname.$rating_tableName_2 (id_question, id, id_chien, note, signup_date) VALUES (".$question.",'1',".$chien.",".$vote_sent.",".time().")";
		$result = mysql_query($req);		

			
	} 
}
// mise a jour de l'affichage des valeurs
$newtotals = mysql_query("SELECT total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($newtotals);
$count = $numbers['total_votes'];//total des votes
$current_rating = $numbers['total_value'];//valeur calculées
$tense = ($count==1) ? "vote" : "votes"; 

// $new_back est ce qui est affiché sur la page après un vote de 'AJAX/Javascript' réussi

$new_back = array();

$new_back[] .= '<ul class="unit-rating" style="width:'.$units*$rating_unitwidth.'px;">';
$new_back[] .= '<li class="current-rating" style="width:'.@number_format($current_rating/$count,2)*$rating_unitwidth.'px;">Current rating.</li>';
$new_back[] .= '<li class="r1-unit">1</li>';
$new_back[] .= '<li class="r2-unit">2</li>';
$new_back[] .= '<li class="r3-unit">3</li>';
$new_back[] .= '<li class="r4-unit">4</li>';
$new_back[] .= '<li class="r5-unit">5</li>';
$new_back[] .= '<li class="r6-unit">6</li>';
$new_back[] .= '<li class="r7-unit">7</li>';
$new_back[] .= '<li class="r8-unit">8</li>';
$new_back[] .= '<li class="r9-unit">9</li>';
$new_back[] .= '<li class="r10-unit">10</li>';
$new_back[] .= '</ul>';
$new_back[] .= '<p class="voted">'.$id_sent.'. Moyenne: <strong><font color="red">'.@number_format($sum/$added,1).'</font></strong>/'.$units.' ('.$count.' '.$tense.') ';
$new_back[] .= '<span class="thanks"><strong>Merci !</strong</span></p>';

$allnewback = join("\n", $new_back);

// ========================

//name of the div id to be updated | the html that needs to be changed
$output = "unit_long$id_sent|$allnewback";
echo $output;
?>
toi, tu me parle bien de ce code ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 oct. 2011, 22:59

on parle bien du même, je pense que tu n'a pas shunté l'ipnum

je m'explique
j'ai réduit le code à l'essentiel de mon explication, c'est normal mais, bien sur, il ne faut supprimer les lignes manquantes c'est juste pour permettre simplement l'explication
<?php
$ip_num = preg_replace("/[^0-9\.]/","",$_REQUEST['t']);
$ip = $_SESSION['userid'];

//connexion
$query = mysql_query("SELECT id_question, id_chien, total_votes, total_value, used_ips FROM $rating_dbname.$rating_tableName WHERE id='$id_sent' ")or die(" Error: ".mysql_error());
$numbers = mysql_fetch_assoc($query);
$checkIP = unserialize($numbers['used_ips']);

// si c'est la table existe deja a déjà on ajoute les valeurs valeur
((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));
$insertip=serialize($checkIP);

         if (($vote_sent >= 1 && $vote_sent <= $units) && ($ip == $ip_num)) { /
?>
la première ligne prend un variable provenant de get/post ou cookie (on ne sais pas voir la doc pour plus d'info ;)), cette variable (t) est 'nettoyée' de tous ce qui n'est pas un chiffre ou un point (parce qu'une ip c'est que des chiffres et des points ex 192.168.1.2) donc tous ce qui n'est ni l'un l'autre est supprimé.
ensuite on affect la valeur du userid de la session à la variable $ip.
requete sql pour récupérer les infos de la tables.
arrive un truc un peu spécial $checkIP = unserialize($numbers['used_ips']); => qu'est ce que c'est que bazar ?

pour expliquer ce qu'est la serialisation je te renvoie a la doc des fonctions utilisée ici http://fr2.php.net/serialize

mais pour faire simple c'est le fait de transformer tout objet / tableau / variable en unse chaine de caractère qui pourra être réutiliser pour le reconstruire

ici on prend la table checkIP on le serialise, on le met dans la table.
Après on fait l'inverse et l'on a directement un tableau utilisable dans la variable checkIP.

((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num));
ça c'est un test qui permet de soit créer le tableau avec l'ip actuel soit ajouter l'ip actuel dans le tableau. Utilise pour différencier le cas 1er vote des autres (au 1ere vote y a pas de tableau donc il faut initialiser la chose ;) )).

ça c'est pour le stockage

après viens : ($ip == $ip_num)) et la c'est le drame :)

cette égalité ne peu être vérifiée car un id (entier) est comparée à un chaine de caractère (aucun n'entier ne peux être égale à 192.168.1.12 , par exemple :))

la il faut que tu enlève complètement cette condition qui n'a donc plus lieux d'être :)

bon par contre je ne comprend pas c'est que ces ip ne soit pas utilisées ^^

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 790 Messages

28 oct. 2011, 01:43


bon par contre je ne comprend pas c'est que ces ip ne soit pas utilisées ^^

@+
que veux tu dire, que moi je ne les utilise pas ou que le script ne les utilises pas ?
parce que le script les utilise, c'est sur car elle s'enregistre dans la bdd
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 oct. 2011, 10:27

ce que je veux dire c'est qu'il n'y a aucune comparaison de l'ip actuelle avec les ip dans la table, donc cette info inutile, on a juste une relation le vote et l'ip (et encore pas entre la note et l'ip ^^).

Donc pour moi cette info est inutile dans le sens où elle n'est pas exploitée (par exemple anti spam etc etc).

je me demande d'ailleurs s'il y a un pas truc avec la chose "informatique & libertés" (ou chose du genre, cnil etc) et le log des ip des visteurs.

enfin bref sur ce bout la je ne vois pas l'intérêt de la chose c'est tout :)

@+
Modifié en dernier par moogli le 29 oct. 2011, 12:13, modifié 1 fois.
Il en faut peu pour être heureux ......