Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Aiuto: SQL condizioni

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216

    Aiuto: SQL condizioni

    salve a tutti
    ho un problema con una query...
    vi spiego brevemente cosa dovrei fare:

    avendo nella pagina x.php
    una casella di testo(name:testo) un elenco/testo(name:categoria) e un pulsante

    inviate i dati alla pagina y.php e far visualizzare tutti i prodotti secondo questa query:

    SELECT *
    FROM prodotti
    WHERE descrizione LIKE %testo% AND categoria = cat

    ovviamente cat è una variabile gia creata in precedenza.

    fin qui nessun problema
    i problemi iniziano nel momento in cui la query deve diventare di questo genere:

    IF (cat=="Qualsiasi")
    SELECT *
    FROM prodotti
    WHERE descrizione LIKE %testo%
    ESLE
    SELECT *
    FROM prodotti
    WHERE descrizione LIKE %testo% AND categoria = cat

    come posso far diventare una cosa del genere in sql o in php????

    vi posto anche il codice della pagina(che ovviamente non funziona) cosi vedete un pò il casino che ho fatto:

    <?php require_once('Connections/con_IH.php'); ?>
    <?php require_once('Connections/Con_IH.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
    }

    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

    switch ($theType) {
    case "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "long":
    case "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case "double":
    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
    break;
    case "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return $theValue;
    }
    }

    $currentPage = $_SERVER["PHP_SELF"];

    $maxRows_RS_prodotti = 7;
    $pageNum_RS_prodotti = 0;
    if (isset($_GET['pageNum_RS_prodotti'])) {
    $pageNum_RS_prodotti = $_GET['pageNum_RS_prodotti'];
    }
    $startRow_RS_prodotti = $pageNum_RS_prodotti * $maxRows_RS_prodotti;

    $colname_RS_prodotti = "-1";
    if (isset($_GET['testo'])) {
    $colname_RS_prodotti = $_GET['testo'];
    }
    $cat_RS_prodotti = "-1";
    if (isset($_GET['categoria'])) {
    $cat_RS_prodotti = $_GET['categoria'];
    }
    $costo_RS_prodotti = "-1";
    if (isset($_GET['costo'])) {
    $costo_RS_prodotti = $_GET['costo'];
    }

    mysql_select_db($database_con_IH, $con_IH);
    $query = "";
    if(strcasecmp($cat,"Qualsiasi")==0) {
    $query = "SELECT * FROM prodotti WHERE (descrizione LIKE %colname% OR nome LIKE %colname% OR marca LIKE %colname% OR categoria LIKE %colname%)";
    } else {
    $query = "SELECT *
    FROM prodotti WHERE (descrizione LIKE %colname% OR nome LIKE %colname% OR marca LIKE %colname% OR categoria LIKE %colname%) AND categoria = '".$cat."' AND prezzo<=".$costo;
    }
    $result = mysql_query($query);

    if (isset($_GET['totalRows_RS_prodotti'])) {
    $totalRows_RS_prodotti = $_GET['totalRows_RS_prodotti'];
    } else {
    $all_RS_prodotti = mysql_query($result);
    $totalRows_RS_prodotti = mysql_num_rows($all_RS_prodotti);
    }
    $totalPages_RS_prodotti = ceil($totalRows_RS_prodotti/$maxRows_RS_prodotti)-1;

    $queryString_RS_prodotti = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
    $params = explode("&", $_SERVER['QUERY_STRING']);
    $newParams = array();
    foreach ($params as $param) {
    if (stristr($param, "pageNum_RS_prodotti") == false &&
    stristr($param, "totalRows_RS_prodotti") == false) {
    array_push($newParams, $param);
    }
    }
    if (count($newParams) != 0) {
    $queryString_RS_prodotti = "&" . htmlentities(implode("&", $newParams));
    }
    }
    $queryString_RS_prodotti = sprintf("&totalRows_RS_prodotti=%d%s", $totalRows_RS_prodotti, $queryString_RS_prodotti);
    ?>
    <?php
    // *** Validate request to login to this site.
    if (!isset($_SESSION)) {
    session_start();
    }

    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($_GET['accesscheck'])) {
    $_SESSION['PrevUrl'] = $_GET['accesscheck'];
    }

    if (isset($_POST['username'])) {
    $loginUsername=$_POST['username'];
    $password=$_POST['password'];
    $MM_fldUserAuthorization = "livello_utente";
    $MM_redirectLoginSuccess = $_SERVER['HTTP_REFERER'];
    $MM_redirectLoginFailed = $_SERVER['HTTP_REFERER'];
    $MM_redirecttoReferrer = false;
    mysql_select_db($database_Con_IH, $Con_IH);

    $LoginRS__query=sprintf("SELECT id_clienti, nome, livello_utente FROM clienti WHERE id_clienti=%s AND nome=%s",
    GetSQLValueString($loginUsername, "int"), GetSQLValueString($password, "text"));

    $LoginRS = mysql_query($LoginRS__query, $Con_IH) or die(mysql_error());
    $loginFoundUser = mysql_num_rows($LoginRS);
    if ($loginFoundUser) {

    $loginStrGroup = mysql_result($LoginRS,0,'livello_utente');

    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;

    if (isset($_SESSION['PrevUrl']) && false) {
    $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
    }
    header("Location: " . $MM_redirectLoginSuccess );
    }
    else {
    header("Location: ". $MM_redirectLoginFailed );
    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <?php
    function TagliaStringa($stringa, $max_char){
    if(strlen($stringa)>$max_char){
    $stringa_tagliata=substr($stringa, 0,$max_char);
    $last_space=strrpos($stringa_tagliata," ");
    $stringa_ok=substr($stringa_tagliata, 0,$last_space);
    return $stringa_ok."...";
    }else{
    return $stringa;
    }
    }

    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Index</title>

    <link href="style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    <!--
    function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }

    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    //-->
    </script>
    </head>

    <body onload="MM_preloadImages('images/categorie_blue.jpg','images/profilo_blue.jpg','images/home_blue.jpg','images/prodotti_blue.jpg','images/contattaci_blue.jpg','images/registrati_blue.jpg')">
    <div id="contenitore">
    <div id="carrello">
    <table width="100%" border="0">
    <tr>
    <td width="55%">
    <form METHOD="POST" name="login" action="<?php echo $loginFormAction; ?>">


    USER <input type="text" size="15" name="username" /> PASSWORD
    <input type="password" size="15" name="password" />
    <input type="submit" value="Entra" /></p>
    </form>
    </td>
    <td width="45%">carrello</td>
    </tr>
    </table>
    </div>
    <div id="logo"></div>
    <div id="inutile"></div>
    <div id="testataDx"></div>
    <div id="pulsantiera">
    <div id="home">[img]images/home.jpg[/img]</div>
    <div id="prodotti">[img]images/prodotti.jpg[/img]</div>
    <div id="categorie">[img]images/categorie.jpg[/img]</div>
    <div id="profilo">[img]images/profilo.jpg[/img]</div>
    <div id="contattaci">[img]images/contattaci.jpg[/img]</div>
    <div id="registrati">[img]images/registrati.jpg[/img]</div>
    </div>
    <div id="testata"></div>
    <div id="menu">
    </div>
    <div id="sinusoide"> </div>
    <div id="corpo">
    <?php if ($totalRows_RS_prodotti > 0) { // Show if recordset not empty ?>
    <h3 align="right">Risultati da <?php echo ($startRow_RS_prodotti + 1) ?> A <?php echo min($startRow_RS_prodotti + $maxRows_RS_prodotti, $totalRows_RS_prodotti) ?> su <?php echo $totalRows_RS_prodotti ?></h3>
    <?php do { ?>
    <table width="100%" border="0">
    <tr>
    <td width="30%" rowspan="2">[img]<?php echo $row_RS_prodotti['foto']; ?>[/img]</td>
    <td width="34%" bgcolor="#CCCCCC"><?php echo $row_RS_prodotti['nome']; ?></td>
    <td colspan="2" bgcolor="#CCCCCC"><?php echo $row_RS_prodotti['marca']; ?></td>
    </tr>
    <tr>
    <td colspan="3">
    <?php $row_RS_prodotti['descrizione'];
    $stringa = $row_RS_prodotti['descrizione'];
    $stringa_tagliata = TagliaStringa($stringa, 200);
    echo $stringa_tagliata?>

    </td>
    </tr>
    <tr>
    <td bgcolor="#FFFFFF">Disponibilità: [img]<?php echo $row_RS_prodotti['qnt']; ?>[/img]</td>
    <td bgcolor="#CCCCCC"><?php echo $row_RS_prodotti['prezzo']; ?></td>
    <td width="12%" bgcolor="#CCCCCC"></td>
    <td width="24%" bgcolor="#CCCCCC"></td>
    </tr>
    </table>


    <?php } while ($row_RS_prodotti = mysql_fetch_assoc($RS_prodotti)); ?>
    <table border="0" align="center">
    <tr>
    <td><?php if ($pageNum_RS_prodotti > 0) { // Show if not first page ?>
    ">[img]./First.gif[/img]
    <?php } // Show if not first page ?></td>
    <td><?php if ($pageNum_RS_prodotti > 0) { // Show if not first page ?>
    ">[img]./Previous.gif[/img]
    <?php } // Show if not first page ?></td>
    <td><?php if ($pageNum_RS_prodotti < $totalPages_RS_prodotti) { // Show if not last page ?>
    ">[img]./Next.gif[/img]
    <?php } // Show if not last page ?></td>
    <td><?php if ($pageNum_RS_prodotti < $totalPages_RS_prodotti) { // Show if not last page ?>
    ">[img]./Last.gif[/img]
    <?php } // Show if not last page ?></td>
    </tr>
    </table>
    <?php } /* Show if recordset not empty */ else {?>
    spiacenti nessun risultato trovato
    <?php } ?>
    </div>
    <div id="contOfferta">
    <div id="publicita"></div>


    <div id="offerta"></div>
    </div>
    <div id="footer"></div>
    </div>

    </body>
    </html>
    <?php
    mysql_free_result($RS_prodotti);
    ?>

  2. #2
    Praticamente hai postato tutta una serie di codice che non serve!
    Scherzo e passo subito a risponderti.

    Suppongo tu stia creando una specie di motore di ricerca, in cui puoi restringere i risultati in base alla categorie merceologica o meno.
    Devi creare una stringa di query dinamica.
    Mi spiego meglio.

    Alla pagina che riceve i dati dalla form, devi scrivere una cosa del genere:
    Codice PHP:
    $sql "
    SELECT *
    FROM prodotti
    WHERE descrizione LIKE %testo%
    "
    ;

    if(isset(
    $_POST['cat']) && $_POST['cat'] != "") {
       
    $sql .= " AND categoria = ".$_POST['cat'];
    // occhio a lasciare uno spazio prima della parola AND

    Se la variabile è stata valorizzata in qualche modo (dalla select) allora alla stringa SQL viene concatenata quella che vedi nell'if.
    Ricordati che nella select, per la prima OPTION (o comunque per quella che permette di cercare in tutte le categorie) devi inserire o una stringa vuota (come nell'IF che ho scritto io) oppure un valore a te noto, con il quale vai a fare il controllo nella IF di cui sopra.

    Ultima annotazione.
    Una query SQL di questo genere (senza un minimo di controlli sugli input) è oro colato per gli hacker!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    ciao ti ringrazio della risposta.
    alscolta; non ho capito bene quello che devo fare;
    ma per quanto riguarda la struttura della query, agli attachi hacker ci ho pensato dopo che ho scritto il post e quindi mi è venuta fuori una cosa del genere:

    mysql_select_db($database_con_IH, $con_IH);
    $query_RS_prodotti = sprintf("SELECT * FROM prodotti WHERE (descrizione LIKE %s OR nome LIKE %s OR marca LIKE %s OR categoria LIKE %s) AND categoria = %s AND prezzo<= %s", GetSQLValueString("%" . $colname_RS_prodotti . "%", "text"),GetSQLValueString("%" . $colname_RS_prodotti . "%", "text"),GetSQLValueString("%" . $colname_RS_prodotti . "%", "text"),GetSQLValueString("%" . $colname_RS_prodotti . "%", "text"),GetSQLValueString($cat_RS_prodotti, "text"),GetSQLValueString($costo_RS_prodotti, "int"));
    $query_limit_RS_prodotti = sprintf("%s LIMIT %d, %d", $query_RS_prodotti, $startRow_RS_prodotti, $maxRows_RS_prodotti);
    $RS_prodotti = mysql_query($query_limit_RS_prodotti, $con_IH) or die(mysql_error());
    $row_RS_prodotti = mysql_fetch_assoc($RS_prodotti);


    if (isset($_GET['totalRows_RS_prodotti'])) {
    $totalRows_RS_prodotti = $_GET['totalRows_RS_prodotti'];
    } else {
    $all_RS_prodotti = mysql_query($query_RS_prodotti);
    $totalRows_RS_prodotti = mysql_num_rows($all_RS_prodotti);
    }
    $totalPages_RS_prodotti = ceil($totalRows_RS_prodotti/$maxRows_RS_prodotti)-1;

    quindi cosi doverei aver risolto un parte del problema....
    ora però come addatto questo che ho foatto con quello che mi hai consigliato?????

  4. #4
    Allora.
    Regola numero 1 (del forum): quando si posta del codice, si prega di utilizzare gli appositi marcatori ([ CODE ] o [ PHP ]) al fine di rendere più leggibili i propri script agli sfortunati che vorrebbero dare una mano!

    Regola numero 2 (della programmazione): prima di andare a complicare le cose, è sempre consigliabile arrivare per step successivi ad uno script funzionante.
    Non ti offendere, ma se non riesci a far concatenare una semplice stringa, o meno sfruttando un IF, usare sprintf() con un complicato passaggio di variabili, per filtrare dei dati (peraltro in modo secondo me errato), beh.... è proprio un errore in partenza!

    Ma torniamo al tuo post.
    Tu hai uno script per un motore di ricerca che riceve due parametri: la chiave di ricerca ed un parametro opzionale, che si riferisce alla categoria su cui restringere l'eventuale ricerca degli utenti del tuo sito.
    Quindi... il metodo di lavoro che devi seguire è:
    [list=1][*]recuperare le due variabili[*]verificare se la seconda è valorizzata o meno[*]se la seconda variabile è valorizzata, inserire un pezzo di stringa in quella SQL[/list=1]
    Partendo da questo concetto, lo script lo componi più o meno così:
    Codice PHP:
    // 1 - recupero le variabili
    $chiave $_POST['chiave'];
    $cat $_POST['cat'];

    /* 
    QUI INSERISCI I CONTROLLI  
    DI SICUREZZA SuLLE VARIABILI
    */

    $sql 
    SELECT * 
    FROM prodotti 
    WHERE descrizione LIKE '%
    $chiave%'
    "


    // 2 - verifico se la seconda è valorizzata o meno
    if (isset($cat) && $cat != "") { 
       
    $sql .= " AND categoria = ".$_POST['cat']; 
    // occhio a lasciare uno spazio prima della parola AND 
    }
    // se valorizzata aggiungo una parte di testo
    // alla stringa inizialmente creata 
    Questo è quanto.
    Questa è la prima parte dello step: controlli se le variabili arrivano e come viene stampata la query (con un semplice echo $sql).
    STOP.
    I controlli di sicurezza sulle variabili, li aggiungi in un secondo momento!
    Non so cosa tu intenda fare con la tua funzione GetSQLValueString(), ma ti consiglio caldamente di vedere come si preparano i parametri prima dell'inserimento in un DB, con i metodi descritti nella Guida sicurezza di PHP presente in questo sito!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    Ciao alcio74
    ho provato a fare come dici tu ma il risultato non è stato dei migliori, tuttaltro!!!
    cmw ti posto il codice e... vedi un po te!!!

    Codice PHP:
    <?php require_once('Connections/con_IH.php'); ?>
    <?php 
    require_once('Connections/Con_IH.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function 
    GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
    {
      if (
    PHP_VERSION 6) {
        
    $theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }

      
    $theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

      switch (
    $theType) {
        case 
    "text":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;    
        case 
    "long":
        case 
    "int":
          
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case 
    "double":
          
    $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case 
    "date":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;
        case 
    "defined":
          
    $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
          break;
      }
      return 
    $theValue;
    }
    }

    $currentPage $_SERVER["PHP_SELF"];

    $maxRows_RS_prodotti 2;
    $pageNum_RS_prodotti 0;
    if (isset(
    $_GET['pageNum_RS_prodotti'])) {
      
    $pageNum_RS_prodotti $_GET['pageNum_RS_prodotti'];
    }
    $startRow_RS_prodotti $pageNum_RS_prodotti $maxRows_RS_prodotti;

    $colname_RS_prodotti "-1";
    if (isset(
    $_GET['testo'])) {
      
    $colname_RS_prodotti $_GET['testo'];
    }
    $cat_RS_prodotti "-1";
    if (isset(
    $_GET['categoria'])) {
      
    $cat_RS_prodotti $_GET['categoria'];
    }
    $costo_RS_prodotti "-1";
    if (isset(
    $_GET['costo'])) {
      
    $costo_RS_prodotti $_GET['costo'];
    }
    //----------Questa è la parte che ho modificato----------------------------------------
    mysql_select_db($database_con_IH$con_IH);

    $query_RS_prodotti sprintf("SELECT * FROM prodotti WHERE descrizione LIKE %s "
    GetSQLValueString("%" $colname_RS_prodotti "%""text"),GetSQLValueString($cat_RS_prodotti"text"),GetSQLValueString($costo_RS_prodotti"int"));
    $query_limit_RS_prodotti sprintf("%s LIMIT %d, %d"$query_RS_prodotti$startRow_RS_prodotti$maxRows_RS_prodotti);
    $RS_prodotti mysql_query($query_limit_RS_prodotti$con_IH) or die(mysql_error());
    $row_RS_prodotti mysql_fetch_assoc($RS_prodotti);


    if (isset(
    $_GET['totalRows_RS_prodotti']) AND (isset($cat) && $cat != "Qualsiasi")) {
      
    $totalRows_RS_prodotti $_GET['totalRows_RS_prodotti'];
      
    $query_RS_prodotti .= " AND categoria = ".$_GET['cat'];
    } else {
       
      
    $all_RS_prodotti mysql_query($query_RS_prodotti);
      
    $totalRows_RS_prodotti mysql_num_rows($all_RS_prodotti);
      
    }
    //--------------------------------------------------------
    $totalPages_RS_prodotti ceil($totalRows_RS_prodotti/$maxRows_RS_prodotti)-1;

    $queryString_RS_prodotti "";
    if (!empty(
    $_SERVER['QUERY_STRING'])) {
      
    $params explode("&"$_SERVER['QUERY_STRING']);
      
    $newParams = array();
      foreach (
    $params as $param) {
        if (
    stristr($param"pageNum_RS_prodotti") == false && 
            
    stristr($param"totalRows_RS_prodotti") == false) {
          
    array_push($newParams$param);
        }
      }
      if (
    count($newParams) != 0) {
        
    $queryString_RS_prodotti "&" htmlentities(implode("&"$newParams));
      }
    }
    $queryString_RS_prodotti sprintf("&totalRows_RS_prodotti=%d%s"$totalRows_RS_prodotti$queryString_RS_prodotti);
    ?>
    <?php
    // *** Validate request to login to this site.
    if (!isset($_SESSION)) {
      
    session_start();
    }

    $loginFormAction $_SERVER['PHP_SELF'];
    if (isset(
    $_GET['accesscheck'])) {
      
    $_SESSION['PrevUrl'] = $_GET['accesscheck'];
    }

    if (isset(
    $_POST['username'])) {
      
    $loginUsername=$_POST['username'];
      
    $password=$_POST['password'];
      
    $MM_fldUserAuthorization "livello_utente";
      
    $MM_redirectLoginSuccess $_SERVER['HTTP_REFERER'];
      
    $MM_redirectLoginFailed $_SERVER['HTTP_REFERER'];
      
    $MM_redirecttoReferrer false;
      
    mysql_select_db($database_Con_IH$Con_IH);
          
      
    $LoginRS__query=sprintf("SELECT id_clienti, nome, livello_utente FROM clienti WHERE id_clienti=%s AND nome=%s",
      
    GetSQLValueString($loginUsername"int"), GetSQLValueString($password"text")); 
       
      
    $LoginRS mysql_query($LoginRS__query$Con_IH) or die(mysql_error());
      
    $loginFoundUser mysql_num_rows($LoginRS);
      if (
    $loginFoundUser) {
        
        
    $loginStrGroup  mysql_result($LoginRS,0,'livello_utente');
        
        
    //declare two session variables and assign them
        
    $_SESSION['MM_Username'] = $loginUsername;
        
    $_SESSION['MM_UserGroup'] = $loginStrGroup;          

        if (isset(
    $_SESSION['PrevUrl']) && false) {
          
    $MM_redirectLoginSuccess $_SESSION['PrevUrl'];    
        }
        
    header("Location: " $MM_redirectLoginSuccess );
      }
      else {
        
    header("Location: "$MM_redirectLoginFailed );
      }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     <?php 
         
    function TagliaStringa($stringa$max_char){
            if(
    strlen($stringa)>$max_char){
                
    $stringa_tagliata=substr($stringa0,$max_char);
                
    $last_space=strrpos($stringa_tagliata," ");
                
    $stringa_ok=substr($stringa_tagliata0,$last_space);
                return 
    $stringa_ok."...";
            }else{
                return 
    $stringa;
            }
        } 
        
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Index</title>

    <link href="style.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript">
    <!--
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }

    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    //-->
    </script>
    </head>

    <body onload="MM_preloadImages('images/categorie_blue.jpg','images/profilo_blue.jpg','images/home_blue.jpg','images/prodotti_blue.jpg','images/contattaci_blue.jpg','images/registrati_blue.jpg')">
     <div id="contenitore">
      <div id="carrello">
        <table width="100%" border="0">
          <tr>
            <td width="55%">
                <form METHOD="POST" name="login" action="<?php echo $loginFormAction?>">
                        

    USER <input type="text" size="15" name="username" /> PASSWORD 
                        <input type="password" size="15" name="password" />
                        <input type="submit" value="Entra" /></p>
                </form>
            </td>
            <td width="45%">carrello</td>
          </tr>
        </table>
      </div>
      <div id="logo"></div>
      <div id="inutile"></div>
      <div id="testataDx"></div>
      <div id="pulsantiera">
        <div id="home">[url="#"][img]images/home.jpg[/img][/url]</div>
        <div id="prodotti">[url="#"][img]images/prodotti.jpg[/img][/url]</div>
        <div id="categorie">[url="#"][img]images/categorie.jpg[/img][/url]</div>
        <div id="profilo">[url="#"][img]images/profilo.jpg[/img][/url]</div>
        <div id="contattaci">[url="#"][img]images/contattaci.jpg[/img][/url]</div>
        <div id="registrati">[url="#"][img]images/registrati.jpg[/img][/url]</div>
      </div>
      <div id="testata"></div>
      <div id="sinusoide"> </div>
      <div id="corpo">
      <?php if ($totalRows_RS_prodotti 0) { // Show if recordset not empty ?> 
      <h3 align="right">Risultati da <?php echo ($startRow_RS_prodotti 1?> A <?php echo min($startRow_RS_prodotti $maxRows_RS_prodotti$totalRows_RS_prodotti?> su <?php echo $totalRows_RS_prodotti ?></h3>
    <?php do { ?>
          <table width="100%" border="0">
            <tr>
              <td width="30%" rowspan="2">[img]<?php echo $row_RS_prodotti['foto']; ?>[/img]</td>
              <td width="34%" bgcolor="#CCCCCC"><?php echo $row_RS_prodotti['nome']; ?></td>
              <td colspan="2" bgcolor="#CCCCCC"><?php echo $row_RS_prodotti['marca']; ?></td>
            </tr>
            <tr>
              <td colspan="3">  
                <?php $row_RS_prodotti['descrizione'];     
    $stringa $row_RS_prodotti['descrizione'];
    $stringa_tagliata TagliaStringa($stringa200);
    echo 
    $stringa_tagliata?>
                
              </td>
            </tr>
            <tr>
              <td bgcolor="#FFFFFF">Disponibilità: [img]<?php echo $row_RS_prodotti['qnt']; ?>[/img]</td>
              <td bgcolor="#CCCCCC"><?php echo $row_RS_prodotti['prezzo']; ?></td>
              <td width="12%" bgcolor="#CCCCCC"></td>
              <td width="24%" bgcolor="#CCCCCC"></td>
            </tr>
          </table>
          

          <?php } while ($row_RS_prodotti mysql_fetch_assoc($RS_prodotti)); ?>
          <table border="0" align="center">
            <tr>
              <td><?php if ($pageNum_RS_prodotti 0) { // Show if not first page ?>
                  [url="<?php printf("]">[img]./First.gif[/img][/url]
              <?
    php // Show if not first page ?></td>
              <td><?php if ($pageNum_RS_prodotti 0) { // Show if not first page ?>
                  [url="<?php printf("]">[img]./Previous.gif[/img][/url]
              <?
    php // Show if not first page ?></td>
              <td><?php if ($pageNum_RS_prodotti $totalPages_RS_prodotti) { // Show if not last page ?>
                  [url="<?php printf("]">[img]./Next.gif[/img][/url]
              <?
    php // Show if not last page ?></td>
              <td><?php if ($pageNum_RS_prodotti $totalPages_RS_prodotti) { // Show if not last page ?>
                  [url="<?php printf("]">[img]./Last.gif[/img][/url]
              <?
    php // Show if not last page ?></td>
            </tr>
          </table>
            <?php /* Show if recordset not empty  */ else {?>  
      spiacenti nessun risultato trovato
      <?php ?>
      </div>
      <div id="contOfferta">
        <div id="publicita"></div>
        

        <div id="offerta"></div>
      </div>
      <div id="footer"></div>
    </div>

    </body>
    </html>
    <?php
    mysql_free_result
    ($RS_prodotti);
    ?>
    in teoria nell'ulr quando la variabile cat è = a "Qualsiasi" non dovrebbe passare invece passa cmq....

    senti fai una cosa modifica te il codice e poi lo provo...

  6. #6
    Amico mio: così è troppo facile.
    Sono sempre stato contrario a chi vuole la pappa pronta!
    Se cerchi collaborazione c'è un forum apposito!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    216
    nessuno a chiesto la pappa pronta solo che sbagliando s'impara...
    anche magari vedendo gli altri...
    come ho imparato a programmare fino adesso posso imparare a trovare soluzioni sugli insegnamenti degli altri.
    cmq ci riprovo e poi ti faccio sapre....

  8. #8
    Originariamente inviato da rare
    senti fai una cosa modifica te il codice e poi lo provo...
    Se questo non è chiedere la pappa pronta, allora il forum di la non serve a nulla!
    Comunque, ti ho dato moltissime indicazioni.
    Ti ho insegnato come ragionare per step successivi e ti ripresenti con la stessa vagonata di codice (a prima vista peraltro assolutamente ridondate) già presentato nei primi post, senza neanche specificare quali siano stati i problemi riscontrati con il codice semplificato che ti ho segnato io.
    Torno a ripetere: se non togli il superfluo dal tuo codice (tipo il controllo sulla versione di PHP che tornerà sempre < 6), di progressi ne farai pochi.
    Anche tutti i controlli con la funzione GetSQLValueString(), secondo me sono inutili.
    Peraltro: hai letto il link alla guida che ti avevo segnalato??
    Lì trovi davvero spunto per crearti delle funzione che realmente ti rendono a prova di hacker!
    L'assegnazione delle variabili GET alle variabili del codice, poi, non capisco come le fai.
    Ti avevo detto di non usare sprintf() per la query, ma di filtrare a dovere gli input in precendeza.... non vedo l'ombra di modifiche!
    Insomma, se dovessi mettere le mani io al tuo codice, lo rifarei da capo.... quindi, perché dovrei fartelo io?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.