Pulsante cancella immagini

Monumentale

Utente Attivo
14 Nov 2009
79
0
0
Ciao a tutti, grazie ai vosti precedenti aiuti, ho aggiunto al mio sito "agenzia immobiliare" il form di caricamento immagini che popola una tabella MySQL con i riferimenti e copia le immagini e le loro miniature in apposite cartelle.
Adesso vorrei fare comparire a fianco di tutte le miniature che vedo mentre inserisco anche un pulsante "cancella" capace sia di cancellare la riga del db, ma anche le relative immagini.

Sicuramente ne avrete già discusso ma non ho trovato.
Ho visto che non posso utilizzare il controllo "onclick" associato ad una funzione perché mi da fatal error, dunque penso che la strada giusta sia quella di associare al pulsante un "document.location.href" con file php che faccia il duro lavoro.

Ciao
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
HTML non può interagire direttamente con PHP, ma può avvenire solo il contrario. Il parametro onclick serve per definire la funzione da chiamare quando si clicca su un elemento. Se vuoi fare la stessa cosa con PHP, io ti consiglierei di usare un link o un'immagine, che puoi linkare direttamente. Esempio:
PHP:
<?php
// supponendo che tu sia in un ciclo
// e che $id rappresenti l'ID dell'immagine
echo "<a href=\"cancella.php?id={$id}\">Cancella</a>";
?>
Poi nella pagina cancella.php ti basterà selezionare la relativa riga dal database, cancellare l'immagine e successivamente cancellare anche il record nella tabella.
 

Monumentale

Utente Attivo
14 Nov 2009
79
0
0
Ho in parte risolto (in parte perché ci sono ancora alcuni dettagli che vorrei migliorare) ma vorrei tuoi/vostri consigli
Innanzitutto ad ogni immagine associo un pulsante così
PHP:
echo "<input type=\"button\" name=\"img\" value=\"cancella\" 
		onclick=\"document.location.href('cancella_immagine.php?act=delete&id=".$id ."');\"> <br />";
    echo "<a href=\"" . $path . "/" . $nome . "\"targhet=\"_blank\">";//collegamento ipertestuale all'immagine
    echo "<img src=\"" . $path . "/tb_" . $nome . "\" border=\"0\"></a>";
il file a cui si fa riferimento è quello sotto riportato, che concludo con una chiamata a tornare alla pagina d'origine condervando l'id dell'immobile (campo codice)
PHP:
<?php
if($_GET['act'] == "delete") 
{   include 'config.php';
    $id = (int)$_GET['id']; 
	$query = "SELECT * FROM immagini WHERE id = '$id' ";
	$risultato = mysql_query($query);
		if ($risultato) 
		{
		$riga = mysql_fetch_array($risultato);
		$codice =stripslashes($riga['codice']);
		$path = stripslashes($riga['path']);
		$nome = stripslashes($riga['nome']);
		unlink($path . "/". $nome ); //cancello l'immagine principale
		unlink($path . "/tb_" . $nome ); //cncello la sua miniatura
		}
		
	
    if($id > 0)   
        { mysql_query("DELETE FROM immagini WHERE id=".$id); }
    else 
       { echo "Id errato"; }
} 
header("Location:Inserisci_Immagine.php?codice=$codice");
//tutto l'altro 
?>
con questo file vado a cancellare in un colpo solo sia la riga della tabella db che i due file immagine e miniatura.
Fatemi sapere cosa ne pensate perché io sono talmente inesperto ed ignorante che magari sto percorrendo strade tortuose senza motivo.
P.S.: ho già scritto un certo numero di pagine in php che lavorano sul db e provando tutto in locale sembra funzionare, non è che portando in remoto ci saranno problemi?
come faccio a copiare la struttura locale di una tabella (phpmyadmin) e ricrearla identica in remoto?

Ciao
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Mi sembra che il tuo script non presenti nessun errore di logica. L'unica cosa che farei è controllare se l'immagine ancora esiste con file_exists. Dovresti dare per scontato che esista, ma non si sa mai. Sarebbe meglio evitare che l'utente legga informazioni sensibili.

Per quanto riguarda il trasferimento dello script su un server remoto, non penso che ci siano particolari problemi, a meno che il tuo software non usi funzionalità presenti solo in una determinata versione di PHP che il tuo server non supporta, ma non mi sembra.

Per trasferire una tabella sul server remoto, devi entrare in phpMyAdmin, selezionare il tuo database, cliccare sulla tabella e selezionare la scheda Esporta, quindi cliccare su Esegui. Poi in remoto basterà selezionare il database, cliccare sulla scheda Importa, selezionare il file precedentemente generato e cliccare su Esegui.
 

Monumentale

Utente Attivo
14 Nov 2009
79
0
0
Mi sembra che il tuo script non presenti nessun errore di logica. L'unica cosa che farei è controllare se l'immagine ancora esiste con file_exists. Dovresti dare per scontato che esista, ma non si sa mai. Sarebbe meglio evitare che l'utente legga informazioni sensibili.

Scusa l'ignoranza, la la verifica la devo fare quando inserisco o quando cancello l'immagine?
Inoltre quando dici che sarebbe meglio evitare che l'utente legga informazioni sensibili, a cosa ti riferisci e come proponi di risolvere?

Infine, che ti risulti ci sono limiti nel numero di campi di una mysql_query("insert into...") VALUES....
perché arrivato al 23° campo non c'è verso che vada a buon fine e mi da sempre:
problema query insert
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'long, descrizione) VALUES (NULL, 'ohlkjd', 'Residenziale', 'Vendita', 'Altro', '' at line 1

Se non c'è soluzione metto gli ultimi 2 campi in una tabella separata, però volevo evitare...

Ciao e grazie
 

Monumentale

Utente Attivo
14 Nov 2009
79
0
0
Per quanto riguarda l'errore ho risolto, un pò a fortuna, mi sono accorto che il problema altro non era nel nome che avevo dato ai campi 'lat' e 'long' o alla lunghezza di 'lat' che è di soli 3 caratteri. Ho sostituito i nomi e tutto funziona
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
La verifica, chiaramente, la devi fare quando l'utente prova a cancellare l'immagine. Sarebbe utile anche in fase di inserimento, magari eventualmente rinominandola, ma è difficile che due immagini abbiano lo stesso nome.

Per "informazioni sensibili" intendevo proprio quelle che l'utente potrebbe leggere se lo script tenta di cancellare un'immagine inesistente.
 

Monumentale

Utente Attivo
14 Nov 2009
79
0
0
Non mi è ancora molto chiaro, comunque non ci sono problemi perché le modifiche ai dati del db le posso fare solo io od un mio collaboratore.
Gli utenti si limitano ad accedere al sito ed a interpellare il db per leggere le disponibilità

P.S.: off topic, ho aggiunto la pagina di modifica tabella per quanto riguarda la parte descrittiva (per le foto già risolto), caricando il form di inserimento ma dando come valore quello letto nel db.
Modifico e poi attraverso submit eseguo query UPDATE. Va tutto benissimo, solo che dopo aver premuto il tasto del form, la pagina viene ricaricata con tutti gli errori dovuti al fatto che adesso le variabili usate per le option value sono indefiniti.
La cosa più comoda sarebbe, finito il codice PHP andare ad un'altra pagina, ho provato con head location ma mi da errore:book:
 

Monumentale

Utente Attivo
14 Nov 2009
79
0
0
Bene, ho risolto anch questo problema, con degli if che verificano l'esistenza di queste variabili e, in caso contrario le settano a "". Poi ho preso un'altra strada ancora più radicale, dopo avere premuto submit e modificato il record della tabella db, la variabile "codice" si svuota. Con un controllo ad inizio pagina dico: se "codice"==vuoto stampa messaggio "modifica eseguita con successo" e permetti di tornare all'elenco immobili.

Ho invece un nuovo problemuccio (non so se solo perché lavoro in locale), tutti i pulsanti creati nelle pagine, ad eccezione di quelli di submit all'interno dei form, funzionano solo con IE e non con FF. Per risolver dovrei sostituirli con delle icone associate a href.
Posto il frammento di codice che non va con FF
PHP:
<input name="inserisci" type="button" value="inserisci immobile" onclick="document.location.href('Inserisci_Immobile.php');" />
<input name="elenco" type="button" value="elenco inseriti" onclick="document.location.href('elenco_immobili.php');" />

Luca
 

Monumentale

Utente Attivo
14 Nov 2009
79
0
0
Ciao Alessandro1997,
scusa se mi faccio vivo solo adesso, volevo ringraziarti perché col tuo suggerimento funiona tutto a dovere:)
 
Discussioni simili
Autore Titolo Forum Risposte Data
SolidSnake4 pulsante cancella PHP 9
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
Y Pulsante avanti XML 0
J disabilitare pulsante Java 4
A pulsante di update campo mysql con javascript Javascript 2
D Pulsante aggiungi al carrello nello slider prodotti in offerta WordPress 4
F Passare variabile a pulsante in finestra modale PHP 2
D un pulsante salva per ogni ID jQuery 10
S spostare il pulsante menu dropdown HTML e CSS 8
A Come creare pulsante donazione PayPal HTML e CSS 5
Cosina Aggiungere pulsante pause/play a slideshow Javascript 0
M [MS Access] Pulsante su maschera che esegue azioni su altra maschera MS Access 3
M [PHP] [HTML] Centrare in verticale un pulsante in una tabella PHP 3
S [Javascript] click su pulsante Javascript 1
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
M [MS Access] pulsante inattivo MS Access 10
C [PHP] Aggiungere pulsante paypal PHP 2
C [PHP] Creare un Pulsante che ricopia valori di un campo in altro record PHP 4
L [Javascript]Aprire div con click e chiuderlo con altro pulsante Javascript 2
spider81man [PHP] Pulsante SUBMIT per download diretto dei file PHP 9
Francesco Oliviero Aggiungere comando a pulsante HTML HTML e CSS 1
V Ciclo for per Pulsante in JavaScript Javascript 7
ste80 [MS Access] Impossibile aprire una maschera da pulsante MS Access 2
A [Javascript] Alert su Pulsante Esci Javascript 0
L php - pulsante premuto che mostra #div PHP 3
D [HTML] come Creare questo pulsante a 3 strisce? HTML e CSS 2
X Wordpress woocommerce non compare pulsante acquista prodotto WordPress 1
M Creare tabella da pulsante php PHP 6
Occhioverde [PHP] Incrementare variabile al click di un pulsante PHP 5
B [WordPress] inserire pulsante like per ogni post WordPress 2
T [HTML] Problema pulsante scroll down su ecommerce CMS (Content Management System) 0
D [WordPress] [PHP] Pulsante per auto riempire i campi in un modulo WordPress 1
S [PHP] Abilitare un pulsante dopo scelta file... PHP 3
Z [PHP] Informazione al pulsante REFRESH PHP 2
webmachine [WOOCOMMERCE][WORDPRESS] Cambiare testo pulsante Acquista E-Commerce 0
L [Javascript] pulsante form "salva come" in acrobat Javascript 1
R [HTML] Pulsante con effetto dissolvenza (fading) HTML e CSS 10
deejayr Creare un link URL ad un pulsante di una pagina web. Javascript 4
A [Javascript] Pulsante condivisone Javascript 0
G Ciclo if php per far comparire un pulsante solo nel caso in cui una variabile sia 0 PHP 2
G Problema php relativo a funzione di un pulsante PHP 8
O cambio destinazione pulsante indietro del browser. HTML e CSS 0
D Creare pulsante cliccabile wordpress con lista a discesa WordPress 0
C pulsante like stile facebook Ajax 3
M Pulsante modifica HTML e CSS 20
M Creare pulsante condividi di fb alla propria pagina web Social Media Marketing 1
V Jquery non nasconde pulsante jQuery 1
E php problema incremento e decremento di 2 variabili con click da pulsante PHP 0
O Pulsante Share per Facebook PHP 0
A pulsante salva in pagina php PHP 5

Discussioni simili