2017-06-09 13 views
-2

PHP/MySQLのギャラリーの問題ページとギャラリーの問題

私はPHPでギャラリーを作ってきました。インデックスページから "inname"パラメータを受け取ります。ギャラリーがページを通過するたびに、同時に2つのパラメータを送信することはできません。データベース "idtext" のUnparameter 過ち

enter code here 

のindex.php

Lista de Acontecimientos<Br /> 
<?php 
$conexion = mysqli_connect("localhost", "root", "") or trigger_error(mysql_error(),E_USER_ERROR); 
mysqli_select_db($conexion,"db674013292"); 
$consulta="Select * from textos where clase=1 "; 
$result=mysqli_query($conexion,$consulta); 
?> 
<?php 
while($fila=mysqli_fetch_row($result)){ 
    echo "<a href=\"H.php?inombre='".$fila['0']."'\">".$fila['1']."</a><br>"; } 
?> 

Gallery.php

にコメントを
$inombre=$_GET['inombre']; 

    $objConnect = mysql_connect("localhost","root","") or die(mysql_error()); 
    $objDB = mysql_select_db("db674013292"); 

    $strSQL = "SELECT * FROM galeriadecidiendo where idtexto =$inombre "; 

    $objQuery = mysql_query($strSQL); 
     $Num_Rows = mysql_num_rows($objQuery); 

     $Per_Page = 8; // Per Page 

     @$Page = $_GET["Page"]; 
     if([email protected]$_GET["Page"]) 
     { 
      $Page=1; 
     } 

     $Prev_Page = $Page-1; 
     $Next_Page = $Page+1; 

     $Page_Start = (($Per_Page*$Page)-$Per_Page); 
     if($Num_Rows<=$Per_Page) 
     { 
      $Num_Pages =1; 
     } 
     else if(($Num_Rows % $Per_Page)==0) 
     { 
      $Num_Pages =($Num_Rows/$Per_Page) ; 
     } 

     else 
     { 
      $Num_Pages =($Num_Rows/$Per_Page)+1; 
      $Num_Pages = (int)$Num_Pages; 
     } 

     $strSQL .=" order by idgaleriatexto ASC LIMIT $Page_Start , $Per_Page"; 
     $objQuery = mysql_query($strSQL); 


     echo"<table border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\"><tr>"; 
     $intRows = 0; 
     while($objResult = mysql_fetch_array($objQuery)) 
     { 
      echo "<td>"; 
      $intRows++; 
    ?> 
<img with="150" height="150" src="<?=$objResult["url"]; ?>"><br>     
    <?PHP 
      echo"</td>"; 
      if(($intRows)%4==0) 
      { 
       echo"</tr>"; 
      } 
     } 
     echo"</tr></table>"; 
    ?> 
     <br> 
    <span class="paguinas">Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :</span> 


       <?PHP 
     if($Prev_Page) 
     { 
      echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&$inombre=idtexto'><< Back</a> "; 
     } 

     for($i=1; $i<=$Num_Pages; $i++){ 
      if($i != $Page) 
      { 
       echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&$inombre=idtexto'>$i</a> ]"; 
      } 
      else 
      { 
       echo "<b> $i </b>"; 
      } 
     } 
     if($Page!=$Num_Pages) 
     { 
      echo " <a href ='$_SERVER[SCRIPT_NAME]?Page=$Next_Page$Prev_Page&$inombre=idtexto'>Next>></a> "; 
     }`enter code here` 
     ?> 


    <?PHP 
mysql_close($objConnect); 
?> 




</body> 
</html> 
+0

あなたのコードは[** SQLインジェクションの脆弱性であることを送るよう* *](https://en.wikipedia.org/wiki/SQL_injection)の攻撃。 [** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https://secure.php.net/)を使用してください。 manual/en/pdo.prepared-statements.php)は、[** this post **](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql - インジェクション - イン - php)。 –

+0

'mysql_ *'関数を使わないでください。それらはv5.5(2013年6月)から廃止され、v7.0(2015年12月)以降削除されました。代わりに[** mysqli _ ***](https://secure.php.net/manual/en/book.mysqli.php)または[** PDO **](https://secure.php.net/** ** prepared statements **](https://secure.php.net/manual/en/pdo.prepare.php)と[**バインドされたパラメータ** ](https://secure.php.net/manual/en/pdostatement.bindparam.php)。 –

答えて

0

感謝を教えてください。

私はすでにmysqliのようにコードを変更しましたが、私は間違ってパラメータinnameを毎回送信するので、問題が解決し、そのページのステップしてください、私は

<html><head></head><body> 
<?php 

$inombre=$_GET['inombre']; 
$objConnect = mysqli_connect("localhost","root","") or die(mysql_error()); 
$objDB = mysqli_select_db($objConnect,"db674013292");  
$strSQL = "SELECT * FROM galeriadecidiendo where idtexto =$inombre "; 
$objQuery = mysqli_query($objConnect,$strSQL); 
$Num_Rows = mysqli_num_rows($objQuery); 

$Per_Page = 8; 
?> 
     @$Page = $_GET["Page"]; 
     if([email protected]$_GET["Page"]) 
     { 
      $Page=1; 
     } 

     $Prev_Page = $Page-1; 
     $Next_Page = $Page+1; 

$Page_Start = (($Per_Page*$Page)-$Per_Page); 
if($Num_Rows<=$Per_Page) 
     {$Num_Pages =1;} 
     else if(($Num_Rows % $Per_Page)==0) 
     { 
      $Num_Pages =($Num_Rows/$Per_Page) ; 
     } 
     else 
     { 
      $Num_Pages =($Num_Rows/$Per_Page)+1; 
      $Num_Pages = (int)$Num_Pages; 
     } 


     $strSQL .=" order by idgaleriatexto ASC LIMIT $Page_Start , $Per_Page"; 
     $objQuery = mysqli_query($objConnect,$strSQL); 


     echo"<table border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\"><tr>"; 
     $intRows = 0; 
     while($objResult = mysqli_fetch_array($objQuery)) 
     { 
      echo "<td>"; 
      $intRows++; 

    <img with="150" height="150" src="<?=$objResult["url"]; ?>"><br>     

       echo"</td>"; 
       if(($intRows)%4==0) 
       { 
        echo"</tr>"; 
       } 
      } 
      echo"</tr></table>"; 


     <span class="paguinas">Total <?= $Num_Rows;?> Record : <?=$Num_Pages;?> Page :</span> 



      if($Prev_Page) 
      { 
       echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&$inombre=idtexto'><< Back</a> "; 
      } 

      for($i=1; $i<=$Num_Pages; $i++){ 
       if($i != $Page) 
       { 
        echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page&$inombre=idtexto'>$i</a> ]"; 
       } 
       else 
       { 
        echo "<b> $i </b>"; 
       } 
      } 
      if($Page!=$Num_Pages) 
      { 
    echo " <a href ='$_SERVER[SCRIPT_NAME] Page=$Next_Page$Prev_Page&$inombre=idtexto'>Next>></a> "; 
      } 
    mysqli_close($objConnect); 
関連する問題