[PHP] link su tabella a pagina riepilogo

  • Creatore Discussione Creatore Discussione ICTSM
  • Data di inizio Data di inizio

ICTSM

Nuovo Utente
19 Giu 2017
16
0
1
34
Roma
www.stefanomammoliti.it
ciao a tutti,
ho una tabella di un magazzino con giacenze e devo inserire un link alla voce modello per essere riportato alla pagina di riepilogo. Anch'essa una tabella con le giacenze 1 per 1 del modello ricercato.

Per il link della tabella non credo di commettere errori con questo codice:

PHP:
include ("config.php");
$sql  = "SELECT * FROM desktop ";
$result = $mysqli->query($sql);

while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
{
    
    echo "
        <tr class='odd gradeX'>
<td>{$row['id_desktop']}</td>
<td>{$row['categoria']}</td>
<td>{$row['marca']}</td>
<td><a href='pagina_dettaglio.php?modello={$row['modello']}'</a>{$row['modello']}</td>
<td>{$row['giacenza']}</td>
</tr>

";
                
}


No riesco però a richiamare nella pagina riepilogo.php il {$row['modello']}

Ho trovato anche questa discussione ma non riesco a capire....
https://forum.mrw.it/threads/problemi-link-in-tabella-php.41234/
 
Ciao l'errore c'è invece proprio sulla riga del collegamento <a href> ti posto il codice corretto:
HTML:
<td><a href='pagina_dettaglio.php?modello={$row['modello']}'>{$row['modello']}</a></td>
 
ok, il parametro sembra passare:

l'url mi sembra corretto (pagina_dettaglio.php?modello=THINK%20CENTRE%20M900)

nella pagina di richiamo non mi viene restituito nessun errore ma secondo me non passa il valore.

ecco il codice della chiamata:

PHP:
     <?php


include ("config.php");

$modello = mysql_real_escape_string(isset($_GET['modello']));
$sql="SELECT * FROM codici WHERE modello = $modello";
$result = $mysqli->query($sql);

while($row = mysqli_fetch_array($result, MYSQL_ASSOC))
{
    
    echo "
        <tr class='odd gradeX'>
<td>{$row['modello']}</td>
<td>{$row['seriale']}</td>
<td>{$row['note']}</td>
</tr>

";
                
}


?>
 
inserisci un var_dump(); dopo la query e vedi se il parametro è recuperato correttamente, cambia il codice in :
Codice:
$sql="SELECT * FROM codici WHERE modello = '$modello'";
 
Inserisci var_dump(); dopo la query e puoi vedere se la variabile modello è popolata correttamente
 
PHP:
<?php

include ("config.php");

$modello = trim(strip_tags(stripslashes($_GET['modello'])));

$sql = "SELECT * FROM codici WHERE modello = '$modello'";
$result = $mysqli->query($sql);

while($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {

echo "
<tr class='odd gradeX'>
<td>{$row['modello']}</td>
<td>{$row['seriale']}</td>
<td>{$row['note']}</td>
</tr>
";
              
}

?>
 
Quella stringa filtra le variabili in ingresso aggiungendo eventuali slash "/" a caratteri dannosi cosi da evitare quindi attacchi SQL Inject. Se invece passi ID numerici ti consiglio di usare: $id = (int)$_GET['id']; - in questo caso il sistema si aspetta solo numeri ed elimina tutti gli altri caratteri potenzialmente dannosi. Se ti sono stato utile usa il tasto "Mi piace" :)
 
  • Like
Reactions: ICTSM

Discussioni simili