come inviare 2 variabili con get

migo80

Utente Attivo
25 Apr 2013
224
3
18
devo passare due variabili tramite link per inviarli ad uno script di eliminazione record
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
se non ho capito male:
il link
HTML:
<a href="pinco.php?var_a=111&var_b=222">clicca</a>
e la ricezione
PHP:
<?php
$a=$_GET['var_a'];
$b=$_GET['var_b'];
//.......
?>
per tre variabili
HTML:
<a href="pinco.php?var_a=111&var_b=222&var_c=333">clicca</a>
cioè tra una e l'altra il simbolo &
......
 

migo80

Utente Attivo
25 Apr 2013
224
3
18
ciao si esatto l' esempio è giusto, devo passare questi 2 valori per eliminare un record ma lo script non mi elimina nulla.
PHP:
<?php

$pos=$_GET['pos'];
$nome=$_GET['nome'];

	 
 $host='localhost';
$user='cl';
$pass='cl';
$db='my_test';

$conn= mysql_connect($host, $user, $pass);
mysql_select_db($db,$conn);	

if(!$conn)die("Errore di connessione".mysql_error());

$query ="DELETE FROM $pos  WHERE {$nome}";

$rs = mysql_query($query,$conn);

if ( mysql_affected_rows()==1)
{
echo "record eliminato";
header("refresh:2; url=admin.php");
exit; 
}else{
	echo "record non eliminato";
header("refresh:2; url=admin.php");
exit;

}


?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
$query ="DELETE FROM $pos WHERE {$nome}";??
non so come si chiami il campo, ma correggi in
PHP:
$query ="DELETE FROM $pos  WHERE nome='$nome'";
$pos è il nome della tabella?
dimenticavo è importante validare i valori che provengono dal get, corri il riscio che qualcuno ti cancelli tutto il db
 
Ultima modifica:

migo80

Utente Attivo
25 Apr 2013
224
3
18
si pos è la tabella.....
si ma per ora sono ancora in locale e quindi in fase di test in fase finale adotterò tutte le precauzioni del caso :fonzie: ora provo se va!!!!
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
dimenticavo è importante validare i valori che provengono dal get, corri il riscio che qualcuno ti cancelli tutto il db
scusa se intervengo ma leggevo in giro ed ho letto questa frase ed anche se non uso praticamente mai le GET ultimamente lo 0sto usando ma perlopiù lo uso per dare degli input del tipo

www.miosito.com/index.php?var=1

PHP:
if($var==1){
echo "fai questo";
}else{
echo "fai altro";
}
penso che cosi non si possa far niente ma proprio questi giorni sto cimentandomi in uno script dove ho l'esigenza dia vere una variabile nel link che poi mi serve recuperare epr il database.

cosa significa validare i valori? e quali precauzioni vanno adottate?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, poniamo di aver uno script cosi:
PHP:
$query = "DELETE from tabella WHERE id = " . $_GET['id'];
finchè ti arriva l'id ok ma su qualcuno dovesse passarti una stringa simile
PHP:
$_GET['id'] = "1 || 1=1";
la tua query diventerebbe
Codice:
DELETE from tabella WHERE id = 1 || 1=1
di conseguenza la tua tabella verrebbe svuotata
per questo è consigliato verificare qualsiasi tipo di dato che arriva sia in get che in post
in questo caso visto che ci aspettiamo un intero puo essere un inizio verificare che sia numerico
PHP:
if (is_numeric($_GET['id'])) {
    $query = "DELETE from tabella WHERE id = " . $_GET['id'];
} else {
    die("parametro non valido");
}
questo tipo di esempio cmq è molto pericoloso perche potrei richiamare facilmente la tua pagina in un ciclo passandoti continuamente id diversi
non essere mai avaro sui controlli perche in giro c'è gente che se ne sbatte dsel lavoro degli altri , dipende poi cosa ci devi fare