Modifica Cancella Record tramite Form PHP Mysql

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi sa che hai magic quotes sono abilitate
infatti mettendo addslahes dovrebbe darti
\"eee\"
e non
\\\"eee\\\"'
prova a togliere l'addslshes e mettere
PHP:
$evento = mysql_real_escape_string($_POST['evento']);
$luogo = mysql_real_escape_string($_POST['luogo']);
lascia il var_dump e fai la stessa prova
 

freddie24

Utente Attivo
21 Ott 2011
56
0
0
ciao
mi sa che hai magic quotes sono abilitate
infatti mettendo addslahes dovrebbe darti
\"eee\"
e non
\\\"eee\\\"'
prova a togliere l'addslshes e mettere
PHP:
$evento = mysql_real_escape_string($_POST['evento']);
$luogo = mysql_real_escape_string($_POST['luogo']);
lascia il var_dump e fai la stessa prova

fatto,


Nella pagina eventi viene stampato : Evento di prova \"evento di prova\" .
______________________________________

string(149) "UPDATE eventi SET data='2000-03-01', evento='Evento di prova \\\"evento di prova\\\"', luogo='Evento di prova \\\"evento di prova\\\"' WHERE ID='499'"

______________________________________

Voglio precisare che se :

inserisco l'evento tramite il form "inserisci.php" , l'evento mi viene scritto bene ... anche con il contenuto dentro le virgolette.

Mentre invece se voglio modificare un contenuto già inserito, tramite il form "modifica_cancella.php", tutto ciò che sta tra virgolette scompare.
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
forse (e dico forse) ho trovato l'inghippo, vai sul form di modifica (vedi dove ho messo //***)

PHP:
<form method="POST" name="test" enctype="multipart/form-data"  action="modifica_cancella.php">         
<input type='hidden' name='id' value='$id'/>
Seleziona  la  DATA : <br> <input type="text" name="data" id="data" value="<?php echo $data;?>" size="50" ><input type="reset" value=" Calendario "
onclick="return showCalendar('data', '%Y-%m-%d');">
    <tr>
     <br><br>
    Modifica il TITOLO EVENTO:
    <tr><br>
    <tr><input name="evento" size="100" type="text" id="evento" value="<?php echo stripslashes($evento);//***?>" maxlength="50">
    <tr><br><br>
    Modifica il LUOGO:
    <tr><br>
  <tr><input name="luogo" size="100" type="text" id="luogo" value="<?php echo stripslashes($luogo);//***?>">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form>
lascia il mysql_real_escape_string e il var_dump e riverifica.
penso che l'inghippo sia li in quanto leggi il valore proveniente dal db e che ha quindi gia gli slash, quindi se non li togli ne aggiunge ancora
mai ha dato il suggerimento quello che hai detto "con insert ok, con up ko"
 

freddie24

Utente Attivo
21 Ott 2011
56
0
0
Ciao,

forse io non ho spiegato bene la situazione.

1) apro inserisci_evento.php

scrivo la data : 23-03-2013 .
scrivo l'evento : Congresso Nazionale di Avellino "Il cuore oggi e domani".
scrivo il luogo : Hotel Avellino "Excelsior".

2) apro la pagina degli eventi:

e mi compare :
Data : 23-03-2013
Evento : Congresso Nazionale di Avellino "Il cuore oggi e domani".
luogo : Hotel Avellino "Excelsior".

Fin qui tutto ok!


3) Vorrei modificare l'evento...

apro modifica.php

e nel form di modifica mi compaiono i seguenti dati:

Data : 23-03-2013
Evento : Congresso Nazionale di Avellino
luogo : Hotel Avellino
__________________________________________________________

Ad inserire gli eventi ... tutto apposto...

è quando li voglio modificare che nel form non mi compare il testo tra le virgolette precedentemente inserito.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ciao
forse gli apici doppi ti chiudono il value
PHP:
value="<?php echo $evento; ?>"
prova con apici singoli
PHP:
value='<?php echo $evento; ?>'
eventualmente dovrai ripulire la stringa dagli apici singoli magari trasormandoli in doppi
PHP:
value='<?php echo str_replace("'", "\"", $evento); ?>'
 

freddie24

Utente Attivo
21 Ott 2011
56
0
0
ciao
forse gli apici doppi ti chiudono il value
PHP:
value="<?php echo $evento; ?>"
prova con apici singoli
PHP:
value='<?php echo $evento; ?>'
eventualmente dovrai ripulire la stringa dagli apici singoli magari trasormandoli in doppi
PHP:
value='<?php echo str_replace("'", "\"", $evento); ?>'


Fatto e risolto...

Allora voglio spiegarvi :

la prima modifica è stata quella di sostutuire le virgolette con gli apici singoli...

Risultato: Mi compariva il testo tra le virgolette ... ma se nelle stesse virgolette c'era un apostrofo ... dopo di esso non si visualizzava più niente.

Esempio :

Data : 23-03-2013
Evento : Congresso Nazionale di Avellino " Il cuore nell'uomo anziano".
luogo : Hotel Avellino "Excelsior dell'anno".

In fase di modifica compariva:

Data : 23-03-2013
Evento : Congresso Nazionale di Avellino " Il cuore nell'
luogo : Hotel Avellino "Excelsior dell'

________________________________________

infine ho usato questi codici:

value='<?php echo str_replace("'", "\"", $evento); ?>'
value='<?php echo str_replace("'", "\"", $luogo); ?>'


e tutto funziona a meraviglia!

Grazie Grazie Grazie a tutti!
 

freddie24

Utente Attivo
21 Ott 2011
56
0
0
Ciao a tutti!

a distanza di tempo mi ritrovo sullo stesso progetto (il quale è stato abbandonato per un lungo periodo) e purtroppo ci sono ancora problemi di codice.




Se inserisco un evento, tutto ok! (Tramite la pagina inserisci_evento.php)

Se invece lo voglio modificare fa i capricci. (Tramite il form modifica_cancella.php)




vi spiego meglio:




Mettiamo il caso che io tra i miei eventi ne ho già uno ERRONEAMENTE chiamato così:


index.php pagina di stampa degli eventi
__________________________________________________________
Data : 11-11-2013

Evento: EVENTO e Corso 11 Novembre - Azienda \"IV° CONGRESSO dell\'ASSOCIAZIONE \" PRESIDENTE .Dottore Pinco Pallino.

Luogo : ROMA COLOSSEO
__________________________________________________________

Naturalmente i codici \" e \' non piacciono a nessuno, ne tantomeno a me.

Quindi cosa faccio???



Clicco su "modifica" e mi compare un form di modifica con già i dati all'interno pronti ad essere modificati:

(notate come è cambiato il contenuto dell'evento da index.php a modifica_cancella.php)


modifica_cancella.php pagina di modifica
__________________________________________________________
Data : 11-11-2013

Evento: EVENTO e Corso 11 Novembre - Azienda "IV° CONGRESSO dell"ASSOCIAZIONE " PRESIDENTE .Dottore Pinco Pallino.

Luogo : ROMA COLOSSEO
__________________________________________________________







e correggo l'evento così:


__________________________________________________________
Data : 11-11-2013

Evento: EVENTO e Corso 11 Novembre - Azienda "IV° CONGRESSO dell'ASSOCIAZIONE" PRESIDENTE .Dottore Pinco Pallino.

Luogo : ROMA COLOSSEO
__________________________________________________________


Salvo le modifiche...




e nella pagina degli eventi (index.php) NON è cambiato assolutamente niente e compare così:

__________________________________________________________
Data : 11-11-2013

Evento: EVENTO e Corso 11 Novembre - Azienda \"IV° CONGRESSO dell\'ASSOCIAZIONE \" PRESIDENTE .Dottore Pinco Pallino.

Luogo : ROMA COLOSSEO
__________________________________________________________



Vi posto i codici :

inserisci_evento.php

PHP:
<?php

include ("config.php");
include ("connect.php");
$data_ = addslashes(ltrim(rtrim(strip_tags(stripslashes($_POST['data'])))));
 if ( !empty ($data_)) { $data = addslashes(ltrim(rtrim(strip_tags(stripslashes($_POST['data'])))));}
 elseif (empty ($data_)){die ( "<p style=\" font-weight:bold; text-align:center;\">Errore nella compilazione dei dati. <br />Non hai indicato la data.<br /><br />
<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>");}
 

$evento_ = addslashes(ltrim(rtrim(strip_tags(stripslashes($_POST['evento'])))));
 if ( !empty ($evento_)) { $evento = addslashes(ltrim(rtrim(strip_tags(stripslashes($_POST['evento'])))));}
 elseif (empty ($evento_)){die ( "<p style=\"font-weight:bold; text-align:center;\">Errore nella compilazione dei dati. <br />Non hai indicato l'evento.<br /><br />
<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>");}  


$luogo_ = addslashes(ltrim(rtrim(strip_tags(stripslashes($_POST['luogo'])))));
 if ( !empty ($luogo_)) { $luogo = addslashes(ltrim(rtrim(strip_tags(stripslashes($_POST['luogo'])))));
 
 
 }
 elseif (empty ($luogo_)){die ( "<p style=\"font-weight:bold; text-align:center;\">Errore nella compilazione dei dati. <br />Non hai indicato il luogo.<br /><br />
<a href=\"javascript:history.go(-1)\" title=\"Torna indietro\">Torna indietro.</a></p>");}
   
 
   
   
htmlentities ( $data, $evento, $luogo,   ENT_NOQUOTES );
 
$strsql = "INSERT INTO eventi (data, evento, luogo) VALUES ('$data', '$evento', '$luogo')";
$rs=@mysql_query ("$strsql") or die ("Errore di Connessione" .mysql_error());
header("location: ./index.php");  

echo "<meta http-equiv='Refresh' content='3; URL=./index.php'>";

?>


____________________________________________________________

modifica_cancella.php

PHP:
<?php    
include_once("config.php");   
include_once("connect.php");   
if(isset($_POST['mod'])){//se hai premuto il submit del form mod   
     		  $id=$_POST['id'];   
              $data=$_POST['data'];   
              $evento = mysql_real_escape_string($_POST['evento']); 
              $luogo = mysql_real_escape_string($_POST['luogo']);    
              $q="UPDATE eventi SET data='$data', evento='$evento', luogo='$luogo' WHERE ID='$id'";    
              var_dump($q); 
              $ris=mysql_query($q);  
             echo "<h4>Il record $id e' stato modificato con successo!</h4>";   
             //qui il ritorno automatico alla pag stampa_eventi.php  
             echo "<meta http-equiv='Refresh' content='3; URL=./index.php'>";   
}   
//***********   
if(isset($_GET['mod'])){//hai cliccato su mod   
    $id=addslashes(htmlspecialchars($_GET['mod']));//con un po' di protezione al get  
    $q="SELECT * FROM eventi  WHERE ID='$id'";   
    $ris=mysql_query($q);   
    $riga=mysql_fetch_array($ris);   
    $data=$riga['data'];//in che modo inserisci la data? io usalmente uso il timestamp    
    $evento=stripslashes($riga['evento']);  // qui    
    $luogo=stripslashes($riga['luogo']);  // qui   
    //e qui il form di mod (entro e esco da php ma poi se vuoi puoi renderlo tutto php)   
    //nei campi di input si visualizza il valore originale   
?>   


<body >
<br /><br />
<div align="center">


<form method="POST" name="test" enctype="multipart/form-data"  action="modifica_cancella.php">
                  
<input name="id" type="hidden" id="id" value="<?php echo $id;?>">

Seleziona  la  DATA : <br> <input type="text" name="data" id="data" value="<?php echo $data;?>" size="50" ><input type="reset" value=" Calendario "
onclick="return showCalendar('data', '%Y-%m-%d');">



    <tr>
     <br><br>
    Modifica il TITOLO EVENTO:
    <tr><br>
    <tr><input name="evento" size="200" type="text" id="evento" value='<?php echo str_replace("'", "\"", $evento); ?>' maxlength="300">
    <tr><br><br>
    Modifica il LUOGO:
    <tr><br>
  <tr><input name="luogo" size="200" type="text" id="luogo" value='<?php echo str_replace("'", "\"", $luogo); ?>' maxlength="300">  
  </p>  
  <p>  
    <input name="mod" type="submit" id="mod" value="modifica">  
</p>  
</form> 

<!-- se vuoi qui puoi mettere un link per uscire senza passare dall'uppaggio  
<a href="stampa_eventi.php">[esci]</a> -->

<!-- eventualmente anche qui con una conferma --> 
<a href="./index.php" onClick="return(confirm('ATTENZIONE: le eventuali modifiche non verranno salvate'))" >[ESCI senza salvare le modifiche]</a> 
 
<?php   
}elseif(isset($_GET['del'])){//hai cliccato su ELIMINA   
    ($_GET['del']);//**** primo  
    $id=addslashes(htmlspecialchars($_GET['del']));//con un po' di protezione al get  
    $q="DELETE FROM eventi WHERE ID='$id'"; 
    ($q);//**** secondo  
    $ris=mysql_query($q); 
     ($ris);//**** terzo  
    echo "<h4>Il record $id e' stato cancellato con successo!</h4>";   
    //qui il ritorno automatico alla pag stampa_eventi.php  
    echo "<meta http-equiv='Refresh' content='2; URL=./index.php'>";   
}
?>


_____________________________________________________________

index.php

PHP:
<?php 
include_once ("config.php");  
include_once ("connect.php");  
// Get all the data from the "example" table 
$result = mysql_query("SELECT * FROM eventi ORDER BY data DESC")  
or die(mysql_error());   

echo "<table width='100%' border='1' align='center' >"; 
echo "<tr> <th>Data<br>AAAA - MM - GG</th> <th>Evento</th> <th>Luogo</th><th>MODIFICA</th><th>CANCELLA</th></tr>"; 
// keeps getting the next row until there are no more to get 
while($row = mysql_fetch_array( $result )) { 
    // lettura dell'id è indispensabile 
    $id=$row['ID'];//ti serve quando dai il modifica o il delete 
    // Print out the contents of each row into a table 
    //***semplifica*** 
	
	
	echo "<tr><td width='10%'>". $row['data'] . "</td><td>". $row['evento'] . "</td><td>". $row['luogo'] . "</td>";
	
    //e qui le ultime due celle con i link per modificare o aliminare 
    echo "<td align='center'><a href=\"modifica_cancella.php?mod=$id\">[modifica]</a></td>"; 
    echo"<td><a href=\"modifica_cancella.php?del=$id\" onclick=\"return(confirm('stai eliminando evento del ".$row['data']."'))\" >[cancella]</a></td></tr>"; 
    //ti ho messo la data nella conferma perche evento può essere pericoloso 
    //es se hai evento = l'onomastico di pinco l'apostrofo interferisce e ti fa casino, mentre nelle date non hai mai l'apostrofo 
}  
echo "</table>"; 
?>



Aiutatemi voi! :crying::crying::crying:
 
Ultima modifica:

freddie24

Utente Attivo
21 Ott 2011
56
0
0
Ciao,

precisamente quello che non va l'ho scritto qui : #67



In sintesi lo script modifica_cancella.php non funziona come dovrebbe...
 
Discussioni simili
Autore Titolo Forum Risposte Data
D Jquery - modifica elemenento onlick jQuery 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
JeiMax Modifica codice php personalizzato PHP 2
P Pagina modifica record che non funziona PHP 0
L Modifica file upload in ASP Classic ASP 2
P modifica colore A Hover link website . WordPress 2
P Modifica con PHP di un node in una sitemap xml PHP 0
C Software modifica sitoweb in tempo reale WordPress 12
G Modifica immagine di sfondo attraverso un bottone PHP 18
L modifica dati. PHP 1
G modifica corretta funzione da eregi() a preg_match() PHP 3
R Modifica codice per l'upload di più file PHP 1
G Modifica testo Photoshop 3
felino Excel: popolare una cella con la data di modifica della riga a cui appartiene Windows e Software 3
felino [Wordpress] Modifica main color del template WordPress 8
M [PHP] Modifica account PHP 3
S [OFFRO] Creazione di programmi per la modifica automatizzata di testi Offerte e Richieste di Lavoro e/o Collaborazione 0
S [OFFRO] Rimozione o aggiunta di Password ai file PDF e opzionalmente loro modifica Offerte e Richieste di Lavoro e/o Collaborazione 2
F [PHP] modifica del body email con checked PHP 8
G Modifica da sito statico HTML a dinamico in Wordpress SEO e Posizionamento 1
Cosina Modifica script textarea jQuery 0
M [PHP] Calcolare costi su modifica orari PHP 4
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
F modifica recensione google Discussioni Varie 2
C Photoshop CS 6 salvare una modifica Photoshop 0
L [PHP] Modifica in tabella ultimo id PHP 5
C Pagina fb notifica modifica post Social Media Marketing 1
Q Notice: Undefined index: codice in C:\xampp\htdocs\STAGE\calendario\modifica.php on line 10 PHP 8
C [Joomla] [HTML] Modifica codice per adattamento app Joomla 18
Daniele_Carrara [Javascript] Modifica input date Javascript 5
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
Emix [PHP] Ricerca e modifica su due tabelle PHP 26
M [PHP] Tabella datagrid con icona di modifica che cambia in base a parametro PHP 0
Andrea1981 [WordPress] [HTML] Help modifica credits nel footer.Tema Customizr. WordPress 5
K [Visual Basic] Stampa e modifica record non funziona più Visual Basic 0
K [ASP.Net] Problema stampa e modifica ms sql ASP.NET 0
K stampa e modifica tabella in php e ms sql PHP 2
Michaelweb93 [WordPress] [HTML] Modifica sezione - pagina sito web WordPress 1
A [PHP] [RISOLTO] Modifica record db da form PHP 11
T [PHP] piccola modifica a script (non mio...) PHP 8
P Cerco programmatore per modifica sito wordpress Offerte e Richieste di Lavoro e/o Collaborazione 4
Z Modifica ricorsiva file html HTML e CSS 3
Trapano [PHP] modifica simultanea di più campi nel db PHP 1
K [CERCO] Programmatore per modifica tema wp Offerte e Richieste di Lavoro e/o Collaborazione 2
U modifica sender-receiver email Posta Elettronica 4
W modifica firma Supporto Mr.Webmaster 20
M Modifica parametro mysql_result($result, $i, 'id') Deprecato dal 5.5 PHP 10
X modifica contemporanea di record MS Access 6
J [WP] Chiarimenti modifica campo WordPress 0
A Form per modifica record database PHP 9

Discussioni simili