82 votes

Avis : Offset non défini : 0 dans

Je reçois cette erreur PHP, qu'est-ce que cela signifie ?

Notice: Undefined offset: 0 in 
C:\xampp\htdocs\mywebsite\reddit_vote_tut\src\votes.php on line 41

A partir de ce code :

<?php 
include("config.php"); 

function getAllVotes($id) 
{ 
    $votes = array(); 
    $q = "SELECT * FROM entries WHERE id = $id"; 
    $r = mysql_query($q); 
    if(mysql_num_rows($r)==1)//id found in the table 
    { 
        $row = mysql_fetch_assoc($r); 
        $votes[0] = $row['votes_up']; 
        $votes[1] = $row['votes_down']; 
    } 
    return $votes; 
} 

function getEffectiveVotes($id) 
{ 
        $votes = getAllVotes($id); 
        $effectiveVote = $votes[0] - $votes[1];    //ERROR THROWN HERE
        return $effectiveVote; 
} 

$id = $_POST['id']; 
$action = $_POST['action']; 

//get the current votes 
$cur_votes = getAllVotes($id); 

//ok, now update the votes 

if($action=='vote_up') //voting up 
{ 

    $votes_up = $cur_votes[0]+1;     //AND ERROR THROWN HERE

    $q = "UPDATE threads SET votes_up = $votes_up WHERE id = $id"; 
} 
elseif($action=='vote_down')
{ 
    $votes_down = $cur_votes[1]+1; 
    $q = "UPDATE threads SET votes_down = $votes_down WHERE id = $id"; 
} 

$r = mysql_query($q); 
if($r)
{ 
    $effectiveVote = getEffectiveVotes($id); 
    echo $effectiveVote." votes"; 
} 
elseif(!$r) //voting failed 
{ 
    echo "Failed!"; 
} 
?>

21 votes

Votre code est dangereux ! il peut être utilisé pour des injections sql !

0 votes

@Bernd Ott Comment faire pour régler ce problème ?

2 votes

Utiliser une couche de base de données qui autorise les paramètres de requête et/ou utiliser mysql_real_escape_string voir php.net/manual/de/function.mysql-real-escape-string.php il y a aussi de beaux échantillons.

0voto

Nick Points 2689

Dans mon cas, il s'agissait d'un simple type

$_SESSION['role' == 'ge']

Il me manquait la parenthèse fermante correcte

$_SESSION['role'] == 'ge'

0voto

Madhavi Khatal Points 41

Si vous utilisez dompdf/dompdf et que l'erreur se produit dans vendor/dompdf/dompdf/src/Cellmap.php alors Il semble que nous utilisions le mauvais identifiant de cadre dans la méthode update_row_group. Les premiers tests semblent le confirmer. Mais c'est peut-être parce qu'il s'agit strictement d'un problème de table paginée et que peu de documents de mon banc d'essai ont des tables paginées.

Pouvez-vous essayer de remplacer la ligne 800 par :

$r_rows = $this->_frames[$g_key]["rows"] ;
($g_key au lieu de $r_key)

https://github.com/dompdf/dompdf/issues/1295

0voto

Rapheal Enike Points 17

Utiliser la ligne mysql à la place

mysql_fetch_row($r)

En attendant, envisagez d'utiliser mysqli ou PDO

?>

0voto

Nam Sama Points 37

Essayez d'ensemencer les données à l'aide d'une commande : php artisan db:seed .

-3voto

Teerath Kumar Points 285

Il s'agit simplement d'un usage d'avertissement :

error_reporting(0);

Cela montre que l'on n'initialise pas le tableau et que l'on assigne directement des valeurs aux index.

somefunction{
$raja[0]="this";
$raja[1]="that";
}

au lieu de :

somefunction{
$raja=array(0=>'this',1='that');
//or
$raja=array("this","that");
}

il s'agit d'une simple notification, qui ne génère aucune erreur de sortie ni aucun résultat inattendu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X