Jump to content
php.lv forumi

Kas šeit ir nepareizi?


Artenis

Recommended Posts

	<?php 
$c=0;
while($c<$num_c){
$id=mysql_result($r_aptauja_c,$c,"id");
$c++;
}
$a_idd = $id+1;
$a=1; $i=0; while($i<$_POST['skaits']){ ?>
<tr class="up_2">
<td></td>
	<td style="padding-left: 30px;">» <?php echo $a; ?>. aptaujas atbilde</td>	
	<td><input name="atbilde[<?php echo $a; ?>]" type="text" value=""></td>
<input type="hidden" name="a_id[<?php echo $a; ?>]" value="<?php echo $a_idd ?>" >
</tr>
<?php 
$a++; 
$i++; 
} 
?>

Ieraksts izskatās šādi:

foreach($_POST['a_id'] as $v) {
mysql_query("INSERT INTO $tb12 (a_id,atbilde) VALUES ('".$_POST['a_id'][$v]."','".$_POST['atbilde'][$v]."')");
echo $_POST['a_id'][$v].'<br>';
}

Nekādu informāciju neieraksta, ieraksta tikai konkrēo daudzumu tukšo lauku....

Kāds var palabot, kādēļ man neieraksta...

Link to comment
Share on other sites

array(3) { [1]=> string(2) "17" [2]=> string(2) "17" [3]=> string(2) "17" }

 

array(3) { [1]=> string(2) "17" [2]=> string(2) "17" [3]=> string(2) "17" }

 

array(3) { [1]=> string(2) "17" [2]=> string(2) "17" [3]=> string(2) "17" }

Tipa tā?

Link to comment
Share on other sites

array(4) { ["jautajums"]=> string(9) "Jautajums" ["ip"]=> string(9) "127.0.0.1" ["atbilde"]=> array(3) { [1]=> string(9) "atbilde_1" [2]=> string(9) "atbilde_2" [3]=> string(9) "atbilde_3" } ["a_id"]=> array(3) { [1]=> string(2) "20" [2]=> string(2) "20" [3]=> string(2) "20" } }

 

array(4) { ["jautajums"]=> string(9) "Jautajums" ["ip"]=> string(9) "127.0.0.1" ["atbilde"]=> array(3) { [1]=> string(9) "atbilde_1" [2]=> string(9) "atbilde_2" [3]=> string(9) "atbilde_3" } ["a_id"]=> array(3) { [1]=> string(2) "20" [2]=> string(2) "20" [3]=> string(2) "20" } }

 

array(4) { ["jautajums"]=> string(9) "Jautajums" ["ip"]=> string(9) "127.0.0.1" ["atbilde"]=> array(3) { [1]=> string(9) "atbilde_1" [2]=> string(9) "atbilde_2" [3]=> string(9) "atbilde_3" } ["a_id"]=> array(3) { [1]=> string(2) "20" [2]=> string(2) "20" [3]=> string(2) "20" } }

 

Ko var no tā izsecināt?

Edited by Artenis
Link to comment
Share on other sites

Daudz neiedziļinoties jau pirmajā rakstā tā "foreach($_POST['a_id'] as $v) {" vieta izskatās aizdomīga, kur iekš loopa tiek ņemti $_POST['a_id'][$v]

Visdrīzāk tajās vietās vajadzīgs tikai $v, jo tas jau ir value.

 

Ja rakstītu foreach($_POST['a_id'] as $k=>$v) { } tad varētu izmantot $_POST['a_id'][$k], lai atgrieztu posta saturu, bet ērtāk uzreiz ņemt $v.

echo $v.'<br>';

 

Vispār izskatās, ka tev tieši tas $k ir vajadzīgs, tur kur ir $_POST['atbilde'][$k] mysql querijā

 

foreach($_POST['a_id'] as $k=>$v) {
mysql_query("INSERT INTO $tb12 (a_id,atbilde) VALUES ('".$v."','".$_POST['atbilde'][$k]."')");
echo $v.'<br>';
}

 

Tik neaizmirsti iztīrīt posta values pirms inserto tabulā.

Edited by indoom
Link to comment
Share on other sites

Vēl viens ieteikums, kurš te ļoti bieži tiek pieminēts, saistībā ar aizsardzību pret SQL injekcijām.

Nepadod pa tiesho $_POST, $_GET mainīgo uz datubāzi bez jebkādas apstādes, vismaz mysql_real_escape_string() vai mysql_escape_string() izmanto stringiem un intval() veseliem skaitlļem.

Link to comment
Share on other sites

×
×
  • Create New...