Attivare funzione con un link

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Ciao a tutti mi chiedevo se si potesse attivare una funzione php cliccando su un link, esempio:
PHP:
<?php
function elimina_record($ids)
{
	// verifico che almeno un id sia stato selezionato
	if(count($ids) < 1)
	{
		$messaggio = urlencode("Nessun record selezionato!");
		header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
		exit;
	}

	// per precauzione converto gli ID in interi
	$ids = array_map('intval',$ids);

	// creo una lista di ID per la query
	$ids = implode(',',$ids);

	// preparo la query
	$query = "DELETE FROM prodotti WHERE id IN ($ids)";

	// invio la query
	$result = mysql_query($query);

	// controllo l'esito
	if (!$result) {
		die("Errore nella query $query: " . mysql_error());
	}

	// conto il numero di record cancellati
	$num_record = mysql_affected_rows();

	// chiudo la connessione a MySQL
	//mysql_close();

	//$messaggio = urlencode("Numero record cancellati: $num_record");
	//header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
?>

poi vorrei richiamarla nella pagina con un include e poi così:

PHP:
//Tabellazione


echo '
<center><table width="900" border="0" cellpadding="5" cellspacing="10">
	<tr>
		<th bgcolor="#CEECF5" width=60><center>Azione</center></th>
	</tr></center>';

while ($row = mysql_fetch_assoc($result)) {
	$link2 = elimina_record($ids);



	echo "<tr>
			<td bgcolor='#EFF5FB'><center><a href=\"$link\"><img src=images/bottone_cancella.png></a></center></td>
		</tr>";
}

echo '</table>';
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Devi organizzare la struttura in un altro modo, non devi passare la funzione ma il link ad una pagina che eseguirà la funzione adoperando controlli su ciò che gli arriva


es. nel while
PHP:
echo "<tr> 
            <td bgcolor='#EFF5FB'><center><a href=\"elimina.php?ids=".urlencode(join(',',$ids))."\"><img src=images/bottone_cancella.png></a></center></td> 
        </tr>";

es. in elimina.php
PHP:
if(!empty($_GET['ids'])) elimina_records(explode(',',urldecode($_GET['ids'])));

edit: ho fatto alcune modifiche in modo che cosi dovrebbe eliminare tutto insieme, inoltre non ho capito il senso del while se devi fare una sola azione


Infine ti segnalo una possibile XSS
PHP:
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);

Senza controlli l'utente potrebbe far stampare ciò che vuole, anche codice html malevolo
 
Ultima modifica:

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Grazie tante per la risposta, domani provo ;) cmq per il while ovviamente ci sono altri dati che non ho scritto per utilità (praticamente ogni riga ha il suo id così elimino solo quella e non tutto) ;)
 
Ultima modifica:

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Grazie tante per la risposta, domani provo ;) cmq per il while ovviamente ci sono altri dati che non ho scritto per utilità (praticamente ogni riga ha il suo id così elimino solo quella e non tutto) ;)

Beh allora ricorreggo il codice

nel while
PHP:
echo "<tr> 
            <td bgcolor='#EFF5FB'><center><a href=\"elimina.php?id=$row[id]\"><img src=images/bottone_cancella.png></a></center></td> 
        </tr>";

elimina.php
PHP:
//ovviamente aggiungi eventualmente un else o altri controlli
if(!empty($_GET['id'])) mysql_query("DELETE FROM prodotti WHERE id=".(int)$_GET['id']) or die(mysql_error());
 
Discussioni simili
Autore Titolo Forum Risposte Data
ivarello Attivare funzione Javascript con Jquery jQuery 0
T [Javascript] funzione per attivare analytics... dov'è l'errore? Javascript 14
I Attivare funzione da link in altra pagina Javascript 7
I attivare funzione su link al caricamento della pagina Javascript 6
felino [Windows 8.1 Pro] Impossibile attivare/avviare Windows Defender Windows e Software 3
A [PHP] Attivare / Disattivare utenze PHP 8
M attivare snmp su fedora php PHP 7
otto9due GDPR 25 Maggio - script per attivare analytics, facebook ecc.. dopo il consenso. jQuery 14
ecosito [PHP] Attivare il form mail di un template PHP 2
E [Javascript] SpryMenuBar da attivare con click Javascript 0
O Attivare compressione e caching del browser Web Server 6
F Problema attivare/disattivare immagine calendario datepicker da select jQuery 1
Licantropo Come attivare la posta su un server Aruba? Posta Elettronica 14
L [JS] Disattivare / Attivare - Input Text Javascript 8
A Attivare bottone solo dopo il riempimento di una JTextField Java 2
W Attivare un alert di un app Sviluppo app per Android 1
S Attivare APC su Apache (Windows x86) Apache 2
J attivare sezioni sito scroll jQuery 1
C Attivare un suono dello smartphone attraverso web app jQuery 5
C Non riesco ad attivare il sito in locale (nè in rete) - PHP / EasyPHP PHP 4
S dreamwever attivare comandi per gallerie fotografiche HTML e CSS 2
P Non riesco ad attivare l'account PHP 44
D attivare permalink wordpress solo a post e pagine WordPress 2
K Attivare scrollbar del browser Flash 2
G Disattivare-Attivare swf Flash 0
A attivare file dmg Supporto Mr.Webmaster 0
S Disattivare/Attivare musica pag web Javascript 1
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Variabile non risconosciuta dentro una funzione PHP 1
P Implementazione funzione FileReader Javascript 0
P Funzione copia multipla. Javascript 2
P Funzione jQuery Ajax invio file a php jQuery 1
A Funzione read URL PHP 6
F Funzione Glob - ricerca file contenente una parola PHP 1
A Mail con funzione mail() riconosciute come spam PHP 9
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
A funzione iconv () non mi funziona PHP 4
D Come usare funzione php PHP 6
Y verificare condizione dopo esecuzione della funzione Programmazione 0
IClaude Funzione Javascript Javascript 8
A Funzione share come modificarla Social Media Marketing 0
L funzione onclik con seno e coseno non va Javascript 3
L funzione onclick non va Javascript 26
G modifica corretta funzione da eregi() a preg_match() PHP 3
Shyson Modificare funzione php PHP 15
L pdo (stampare un valore con ritorno a funzione) PHP 0
elpirata Funzione conversione da minuti in ore Javascript 0
@ [MS Access] Funzione Iif..is null... Database 0
F Funzione deprecata in PHP7 PHP 1
G [MS Access] Funzione ARROTONDA non definita nell'espressione MS Access 1

Discussioni simili