Eliminare dato da un database tramite bottone?

hackersatifal

Utente Attivo
9 Ago 2012
238
0
0
Salve a tutti,
ho scritto in php una pagina che permette di eliminare un post da una bacheca tramite il bottone 'elimina', ma tutto ciò non viene eseguito. Il sumbit avviene e anche la query viene elaborata, ma non viene eseguita sul database, nel senso che non si elimina nulla. Mi potreste aiutare a capire dove sbaglio per favore?
Ecco il codice php:
PHP:
<?php   
session_start();   
include('connessione.php');   
if($_SESSION['utente'] == ""){   
echo("Non sei autorizzato ad entrare!");   
exit();   
}   
?>   
<html xmlns="http://www.w3.org/1999/xhtml">   
<head>   
<style type="text/css">   
p.bacheca {color:grey; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:3%; margin-top:3%; margin-left:3%}   
label.messaggio{color:black; font-size:110%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:3%; margin-top:3%; margin-left:3%}   
label.barradistanziatrice {color:grey; font-size:110%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:3%; margin-top:3%; margin-left:4%}   
div.postbacheca {border-bottom:1px solid grey; margin-left:2%; margin-right:2%} 
</style>   
<title>Visualizzazione bacheca</title>   
</head>   
<body>   
<?php   
$ora_attuale = time();   
$query = "SELECT * FROM bacheca WHERE Nome='".$_SESSION['utente']."'";   
$result = mysql_query($query) or die(mysql_error());   
while($riga = mysql_fetch_array($result)){   
$mss = stripslashes($riga['Messaggio']);   
$ora = date("d/n/Y g:i:s A", $riga['Data']);   
print "<div class='postbacheca'><p class='bacheca'>$ora <label class='barradistanziatrice'> |</label> <label class='messaggio'> $mss </label>";    

if(!isset($_POST['elimina'])){ ?>  
               
  <form method="post" action="#" id="eliminapost" style="alignment-adjust:central">   
<input type="submit" name="elimina" id="elimina" value="elimina" style="width:7%; height:6%; color:black; background-color:white; border:1px solid black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%" />  
  </form>           
<?php    } else {   
                        // Invia dati alla tb bacheca 
                        $query="DELETE FROM bacheca WHERE Nome='".$_SESSION['utente']."' AND Data='".$ora."'";    
$inviautente=mysql_query($query) or die(mysql_error());   
header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}#");   
}  
   
print "</p></div>";   
}   
mysql_close($db);   
?>   
</body>   
</html>
Grazie a tutti in anticipo per il vostro aiuto.:D
Saluti,
hackersatifal.
 
Ultima modifica:
ciao
per prima cosa verifica come viene la query

PHP:
//......
// Invia dati alla tb bacheca 
$query="DELETE FROM bacheca WHERE Nome='".$_SESSION['utente']."' AND Data='".$ora."'"; 
var_dump($query); //cosa restituisce?
//.....

edit

ho notato una cosa.
qui fai
$ora = date("d/n/Y g:i:s A", $riga['Data']);
da cui arguisco che in tabella il campo Data è un timestamp.
da cui risulta che $ora è espresso in formato umano d/n/y ecc...
ora nella query ti fai il confronto
....AND Data='".$ora."'";
ma, se non ho arguito male, stai confrontando una data "umana" con un timestamp quindi la qery non troverà mai il record da eliminare
 
Ultima modifica:
ciao
per prima cosa verifica come viene la query

PHP:
//......
// Invia dati alla tb bacheca 
$query="DELETE FROM bacheca WHERE Nome='".$_SESSION['utente']."' AND Data='".$ora."'"; 
var_dump($query); //cosa restituisce?
//.....

edit

ho notato una cosa.
qui fai
$ora = date("d/n/Y g:i:s A", $riga['Data']);
da cui arguisco che in tabella il campo Data è un timestamp.
da cui risulta che $ora è espresso in formato umano d/n/y ecc...
ora nella query ti fai il confronto
....AND Data='".$ora."'";
ma, se non ho arguito male, stai confrontando una data "umana" con un timestamp quindi la qery non troverà mai il record da eliminare

Facendo il var_dump mi dà questi risultati diversi in base al post:
PHP:
string(76) "DELETE FROM bacheca WHERE Nome='(il nome utente senza parentesi)' AND Data='07/8/2012 1:00:10 PM'"
, ma non mi esegue la query.
 
ciao
ma come è il valore de campo Data? se è (ma non l'hai detto) in timestamp il suo valore è del tipo 123456789321 e quindi NON saràmai uguale a 07/8/2012 1:00:10 PM
guarda per fare una verifica, ma sono quasi sicuro che ti dia resuoce metti

PHP:
//......
$result = mysql_query($query) or die(mysql_error()); 
var_dump($result);  
while($riga = mysql_fetch_array($result)){   
//.....
se, come credo, ti da resuoce e non bool(false) vuol dire che la query viene eseguita, ma non come vuoi tu.
ricordati il principio basilare della programmazione "uno script non fa quello che vorresti che facesse, ma quello che gli dici di fare"
 
ciao
ma come è il valore de campo Data? se è (ma non l'hai detto) in timestamp il suo valore è del tipo 123456789321 e quindi NON saràmai uguale a 07/8/2012 1:00:10 PM
guarda per fare una verifica, ma sono quasi sicuro che ti dia resuoce metti

PHP:
//......
$result = mysql_query($query) or die(mysql_error()); 
var_dump($result);  
while($riga = mysql_fetch_array($result)){   
//.....
se, come credo, ti da resuoce e non bool(false) vuol dire che la query viene eseguita, ma non come vuoi tu.
ricordati il principio basilare della programmazione "uno script non fa quello che vorresti che facesse, ma quello che gli dici di fare"

L'ora è un int(30). Di preciso in quale parte del codice devo inserirlo?
 
ciao
sto riguardando quello che hai scritto, ma mi stanno venendo notevoli dubbi, non vorrei dire una pu.....ta, ma secondo me se la query funzia al primo submit ti cancella tutti i post dell'utente.
do un occhio meglio e ti so dire
 
ciao
sto riguardando quello che hai scritto, ma mi stanno venendo notevoli dubbi, non vorrei dire una pu.....ta, ma secondo me se la query funzia al primo submit ti cancella tutti i post dell'utente.
do un occhio meglio e ti so dire

Allora hai controllato il codice e, se lo hai fatto, mi aiuteresti a modificarlo in maniera corretta???
 
ciao
un po' aggiustato e buttato giu di corsa, provalo e se non funzia dimmi che errori ti da

PHP:
<?php   
session_start();   
if(!isset($_SESSION['utente'])){//immagino che venga da un log, quindi se il log non è giusto la sessione non deve esistere  
	header("location: pagina_che_vuoi.php"); 
	exit();   
}   
?>  
<!-- tralascio l'html --> 
<?php   
//io metteri qui i dati di connessione, ma con il require_once "connessione.php";
require_once "connessione.php";
if(!isset($_POST['elimina'])){
	$ora_attuale = time();//a che ti serve?
	$query = "SELECT * FROM bacheca WHERE Nome='".$_SESSION['utente']."'";   
	$result = mysql_query($query) or die(mysql_error());   
	while($riga = mysql_fetch_array($result)){   
		$mss = stripslashes($riga['Messaggio']);   
		$ora = date("d/n/Y g:i:s A", $riga['Data']);
		$ora_ts=$riga['Data'];//è questo che devi dare al where della query
		print "<div class='postbacheca'><p class='bacheca'>$ora <label class='barradistanziatrice'> |</label> <label class='messaggio'> $mss </label>";    
?>  
<form method="post" action="#" id="eliminapost" style="alignment-adjust:central">   
<input type="submit" name="elimina" id="elimina" value="<?php echo $ora_ts;?>" style="width:7%; height:6%; color:black; background-color:white; border:1px solid black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%" />  
</form>           
<?php
		print "</p></div>"; 
	}
} else {   
	// Invia dati alla tb bacheca 
	$query="DELETE FROM bacheca WHERE Nome='".$_SESSION['utente']."' AND Data='".$_POST['elimina']."'";    
	$inviautente=mysql_query($query) or die(mysql_error());   
	header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}");   
}
//mysql_close($db);//non serve ci pensa automaticamente php 
?>
 
ciao
un po' aggiustato e buttato giu di corsa, provalo e se non funzia dimmi che errori ti da

PHP:
<?php   
session_start();   
if(!isset($_SESSION['utente'])){//immagino che venga da un log, quindi se il log non è giusto la sessione non deve esistere  
	header("location: pagina_che_vuoi.php"); 
	exit();   
}   
?>  
<!-- tralascio l'html --> 
<?php   
//io metteri qui i dati di connessione, ma con il require_once "connessione.php";
require_once "connessione.php";
if(!isset($_POST['elimina'])){
	$ora_attuale = time();//a che ti serve?
	$query = "SELECT * FROM bacheca WHERE Nome='".$_SESSION['utente']."'";   
	$result = mysql_query($query) or die(mysql_error());   
	while($riga = mysql_fetch_array($result)){   
		$mss = stripslashes($riga['Messaggio']);   
		$ora = date("d/n/Y g:i:s A", $riga['Data']);
		$ora_ts=$riga['Data'];//è questo che devi dare al where della query
		print "<div class='postbacheca'><p class='bacheca'>$ora <label class='barradistanziatrice'> |</label> <label class='messaggio'> $mss </label>";    
?>  
<form method="post" action="#" id="eliminapost" style="alignment-adjust:central">   
<input type="submit" name="elimina" id="elimina" value="<?php echo $ora_ts;?>" style="width:7%; height:6%; color:black; background-color:white; border:1px solid black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%" />  
</form>           
<?php
		print "</p></div>"; 
	}
} else {   
	// Invia dati alla tb bacheca 
	$query="DELETE FROM bacheca WHERE Nome='".$_SESSION['utente']."' AND Data='".$_POST['elimina']."'";    
	$inviautente=mysql_query($query) or die(mysql_error());   
	header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}");   
}
//mysql_close($db);//non serve ci pensa automaticamente php 
?>

Ti ringrazio con tutto il cuore per l'aiuto che mi hai dato.
Saluti,
hackersatifal.:D
 
Ti ringrazio con tutto il cuore per l'aiuto che mi hai dato.
Saluti,
hackersatifal.:D
Posso chiederti un'altra cosa?
Praticamente tramite un form di ricerca si esegue una ricerca degli utenti all'interno del database e poi si visualizza la sua pagina di profilo. Ho un problema: non si specifica l'utente da visualizzare, quindi non si vede la sua pagina di profilo che contiene degli iframe con le informazioni, la sua bacheca, foto ecc.
Potresti controllare questi codici e vedere dove sbaglio, se lo farai te ne sarà grato per tutta la vita.

Pagina result_search2.php:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
p.saluto{margin-top:10%; margin-left:25%; color:white; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:200%; font-weight:bold}
a.chatcomune {text-decoration:none; margin-left:30%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:150%; color:white}
div.sidebar1 {float: left; width:25%; height:100%; background-color:#0165B6; border:1px solid #48aed1; margin-top:-50%; margin-left:3%}
div.sidebar2 {width:71%; height:100%; background-color:#0165B6; border:1px solid #48aed1; margin-top:1%; margin-left:29%}
p.username {text-decoration:none; color:white; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:5%; margin-top:5%}
p.noresult {color:white; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:5%; margin-top:5%}
p.bacheca {color:black; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:5%; margin-top:5%}
::-webkit-input-placeholder {font-size:90%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif}
img {max-width:52%;max-height:52%; margin-top:-21%; border: 1px solid black; padding: 2%; background-color:white}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>KnowEveryone</title>
</head>
<body style="background-color:#036">
<div id="barra" style="height: 8%; position: fixed; top: 0px; bottom: 0; left: 0; width: 100%; background-color: #006699; border-bottom: 1px solid #133783; position:fixed !important">
<p style="margin-top:1%; margin-bottom:1%; margin-left:1%; color:#FFF; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:150%; font-weight:bold; text-align:left">KnowEveryone <a href="profile2.php" style="text-decoration:underline; color:white"><?php session_start(); print "({$_SESSION['utente']})";?></a><a href="login2.php?azione=logout" style="text-decoration:none; color:#FFF; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:100%; font-weight:bold; margin-right:1%; margin-left:2%"> Esci</a></p>
</div>
<?php
include 'header.php'; 
session_start();
error_reporting(E_ALL);
$username = (!empty($_GET['id'])) ? $_GET['id'] : 'Niente';
print "<p class='saluto'>$username</p>";
?>
<div class="sidebar2">
<iframe name="visualizza" width="100%" height="80%" frameborder="1" src="bacheca_visualizza2.php?id=$username" style="background-color:white; border:1px solid white" scrolling="yes"></iframe>
</div>
<div class="sidebar1">
<center>
<?php
error_reporting(E_ALL);
$dati = mysql_query("SELECT foto FROM utenti WHERE username='$username'");
$risultato= mysql_fetch_array($dati);
echo '<img src="'.$risultato['foto'].'">';
?>
<iframe name="visualizza" width="65%" height="20%" frameborder="1" src="infopersonali2.php?id='$username'" style="margin-top:10%; background-color:white; border:1px solid black"></iframe>
<p style="margin-top:5%"><a href="modifica_dati2.php" style="text-decoration:none; color:white; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif">[modifica dati]</a></p>
<iframe name="visualizza" width="65%" max-height="25%" frameborder="1" src="statoprofilo2.php?id=$username" style="background-color:white; border:1px solid black"></iframe>
</div>
<center><p style="font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:150%; color:white">KnowEveryone: una produzione di Giuseppe Ferrara</p></center>
</body> 
</html>

bacheca_visualizza2.php:

PHP:
<?php
session_start();
include('connessione.php');
if($_SESSION['utente'] == ""){
echo("Non sei autorizzato ad entrare!");
exit();
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
p.bacheca {color:grey; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:3%; margin-top:3%; margin-left:3%}
label.messaggio{color:black; font-size:110%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:3%; margin-top:3%; margin-left:3%}
label.barradistanziatrice {color:grey; font-size:110%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:3%; margin-top:3%; margin-left:4%}
</style>
<title>Visualizzazione bacheca</title>
</head>
<body>
<?php
$username = (!empty($_GET['id'])) ? $_GET['id'] : 'Niente';
$ora_attuale = time();
$query = "SELECT * FROM bacheca WHERE Nome='$username'";
$result = mysql_query($query) or die(mysql_error());
while($riga = mysql_fetch_array($result)){
$mss = stripslashes($riga['Messaggio']);
$ora = date("d/n/Y g:i.s A", $riga['Data']);
print "<p class='bacheca'>$ora <label class='barradistanziatrice'> |</label> <label class='messaggio'> $mss </label> <br/></p>";
}
mysql_close($db);
?>
</body>
</html>

infopersonali2.php:

PHP:
<html>
<head>
<style type="text/css">
p.informazioni {color:black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%}
p.altreinfo {color:black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%}
</style>
</head>
<body>
<center><?php
include 'header.php'; 
session_start();
error_reporting(E_ALL);
$username = (!empty($_GET['id'])) ? $_GET['id'] : 'Niente';
$dati = mysql_query("SELECT scuola, sesso, situazionesentimentale, cittanatale FROM utenti WHERE username='$username'");
$risultato= mysql_fetch_array($dati);
print "<p class='informazioni'><b class='invariabili'>Scuola:</b> $risultato['scuola']</p>";
print "<p class='altreinfo'><b class='invariabili'>Sesso:</b> $risultato['sesso']</p>";
print "<p class='altreinfo'><b class='invariabili'>Situazione sentimentale:</b> $risultato['situazionesentimentale']</p>";
print "<p class='altreinfo'><b class='invariabili'>Citt&agrave natale:</b> $risultato['cittanatale']</p>";
?></center>
</body>
</html>

statoprofilo2.php

PHP:
<html>
<head>
<style type="text/css">
p.statoprofilo {color:black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%}
</style>
</head>
<body>
<center><?php
include 'header.php'; 
session_start();
error_reporting(E_ALL);
$username = (!empty($_GET['id'])) ? $_GET['id'] : 'Niente';
$dati = mysql_query("SELECT post FROM utenti WHERE username='".$_GET['id']."'");
$risultato= mysql_fetch_array($dati);
$_GET['post'] = $risultato['post'];
print "<p class='statoprofilo'><b>Il mio stato:</b> {$_GET['post']}</p>";
?></center>
</body>
</html>

Infine questa è la pagina di profilo dalla quale si effettua la ricerca:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
p.saluto{margin-top:10%; margin-left:25%; color:white; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:200%; font-weight:bold}
a.chatcomune {text-decoration:none; margin-left:30%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:150%; color:white}
div.sidebar1 {float: left; width:25%; height:100%; background-color:#0165B6; border:1px solid #48aed1; margin-top:-50%; margin-left:3%}
div.sidebar2 {width:71%; height:100%; background-color:#0165B6; border:1px solid #48aed1; margin-top:1%; margin-left:29%}
p.username {text-decoration:none; color:white; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:5%; margin-top:5%}
p.noresult {color:white; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:5%; margin-top:5%}
p.bacheca {color:black; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; margin-bottom:5%; margin-top:5%}
::-webkit-input-placeholder {font-size:90%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif}
img {max-width:52%;max-height:52%; margin-top:-21%; border: 1px solid black; padding: 2%; background-color:white}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>KnowEveryone</title>
</head>
<body style="background-color:#036"> 
<div id="barra" style="height: 8%; position: fixed; top: 0px; bottom: 0; left: 0; width: 100%; background-color: #006699; border-bottom: 1px solid #133783; position:fixed !important"> 
<p style="margin-top:1%; margin-bottom:1%; margin-left:1%; color:#FFF; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:150%; font-weight:bold; text-align:left">KnowEveryone <a href="profile2.php" style="text-decoration:underline; color:white"><?php session_start(); print "({$_SESSION['utente']})";?></a><a href="login2.php?azione=logout" style="text-decoration:none; color:#FFF; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:100%; font-weight:bold; margin-right:1%; margin-left:2%"> Esci</a></p> 
</div> 
<?php 
include 'header.php';  
session_start(); 
error_reporting(E_ALL); 
print "<p class='saluto'>{$_SESSION['utente']}</p>"; 
print "<a href='prechat.html' class='chatcomune'>Vai alla chat comune!</a>"; 
?> 
<div class="sidebar2"> 
<iframe name="visualizza" width="100%" height="80%" frameborder="1" src="bacheca_visualizza.php" style="background-color:white; border:1px solid white" scrolling="yes"></iframe> 
<center><iframe name="visualizza" width="100%" height="10%" frameborder="1" src="bacheca_input.php" style="background-color:white; border:1px solid #CCCCCC; background-color:#0165B6" scrolling="no"></iframe></center> 
</div> 
<div class="sidebar1"> 
<center> 
<?php 
error_reporting(E_ALL); 
$dati = mysql_query("SELECT foto FROM utenti WHERE username='".$_SESSION['utente']."'"); 
$risultato= mysql_fetch_array($dati); 
$_SESSION['foto'] = $risultato['foto']; 
echo '<img src="'.$risultato['foto'].'">'; 
?> 
<iframe name="visualizza" width="65%" height="20%" frameborder="1" src="infopersonali.php" style="margin-top:10%; background-color:white; border:1px solid black"></iframe> 
<p style="margin-top:5%"><a href="modifica_dati2.php" style="text-decoration:none; color:white; font-size:120%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif">[modifica dati]</a></p> 
<iframe name="visualizza" width="65%" max-height="25%" frameborder="1" src="statoprofilo.php" style="background-color:white; border:1px solid black"></iframe> 
<?php  


            if(!isset($_POST['post'])){ ?> 
             
                <form method="post" action="#" id="modificastato" style="alignment-adjust:central"> 
                     
                    <ul> 
                        <label for="post" style="font-size:120%; color:white; margin-left:-11%; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif">Inserisci il tuo stato:</label> 
                        <br> 
                            <input type="text" name="post" id="post" style="width:65%; height:120%; font-size:120%; border:1px solid black; margin-left:-12%; margin-top:5%" /><br> 
                            </ul> 
                        <input type="submit" name="invia" id="salva" value="Salva" style="width:20%; height:9%; color:black; background-color:white; border:1px solid black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%; margin-bottom:5%" /> 
                </form>         
    <?php    } else { 
                                 
                // Valori del form 
                 
                $post = mysql_real_escape_string($_POST['post']); 
                 
                        // Invia dati alla tb utenti 
                         
                        $query="UPDATE utenti SET post='".$post."' WHERE  username='".$_SESSION['utente']."'";  
$inviautente=mysql_query($query) or die(mysql_error()); 
header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}#"); 
                         
                         
                        } 
    ?> 
<?php 
            if(!isset($_POST['cerca'])){ ?> 
             
                <form method="post" action="#" id="formricerca" style="alignment-adjust:central"> 
                     
                    <input type="text" name="username" id="username" style="margin-bottom:5%; width:65%; height:9%; font-size:120%; border:1px solid black"; placeholder="Cerca una persona qui"/> 
                    <input type="submit" name="cerca" id="cerca" value="Cerca" style="width:20%; height:9%; color:black; background-color:white; border:1px solid black; font-family:'Palatino Linotype', 'Book Antiqua', Palatino, serif; font-size:110%; margin-bottom:5%"/> 
                </form>         
    <?php    } else { 
                                 
                        $username = mysql_real_escape_string($_POST['username']); 
                        if($username == ""){ 
                     
                        echo "Attenzione, devi compilare tutti i campi"; 
                     
                        } else { 
                         
                        $recuperadati = mysql_query("SELECT * FROM utenti WHERE username= '$username'"); 
                                  
                                $verificadati = mysql_num_rows($recuperadati);  
                                  
                                if($verificadati == 1){  
                                  
                                    echo "<a href='result_search2.php?id=$username' class='username'>$username</a>"; 
                                     
                                    } else {  
                                  
                                    echo "<p class='noresult'>Nessun risultato trovato! Aggiorna la pagina per eseguire una nuova ricerca.</p>";  
                                    }  
                              
                            }  
                          
                        }  
                      
?> 

</div>
</body>  
</html>

Grazie in anticipo per l'aiuto che mi darai e ancora grazie per quello che mi hai dato!!!:D :D :D
 
ciao
bisogna un pochettino rivoluzionare un po il tutto, quello era l'unico ssistema per far capire alla query quale record eliminare,
eventualmente se hai pazienza ti posto come faccio io (tra l'altro non utilizzo il form)
 
ciao
bisogna un pochettino rivoluzionare un po il tutto, quello era l'unico ssistema per far capire alla query quale record eliminare,
eventualmente se hai pazienza ti posto come faccio io (tra l'altro non utilizzo il form)

Se potessi sarebbe fantastico e te ne sarei per sempre grato.
Grazie,
hacksatifal.
 
ciao
intanto per il delete
io faccio in questo modo (se leggi i commenti dovrebbe essere chiaro)

poi importante: un problema => un post

PHP:
<?php
if(!isset($_SESSION)){session_start()}  
if(!isset($_SESSION['utente'])){//immagino che venga da un log, quindi se il log non è giusto la sessione non deve esistere  
    header("location: pagina_che_vuoi.php"); 
    exit();   
} 
//queste le uso perche quando si usa GET può essere pericoloso, i valori si vedono, in questo modo è più difficile
//che un malintenzionato riesca ad individuare l'id (o quello che c'è nella querystringa) e di trasmetterlo
function codifica_q($g){//camuffo
	$prima=rand(100,999);//genero un numero casuale compreso tra 100 e 999
	$q_p=strlen($prima);//questi servono nel caso cambiassi il numero delle cifre rand
	$dopo=rand(10,99);//c.s. tra 10 e 99
	$q_d=strlen($dopo);//questi servono nel caso cambiassi il numero delle cifre rand
	return $q_p.$prima.$g.$dopo.$q_d;
}
function decodifica_q($g){//scamuffo
	$num_prima=$g[0]+1;
	$num_dopo=$g[(strlen($g)-1)]+1;
	$num_id_orig=strlen($g)-$num_prima-$num_dopo;
	return substr($g,$num_prima,$num_id_orig);
}
?>
<!-- tralascio l'html , consiglio: usa i css esterni-->  
<?php
require_once "connessione.php";
if(isset($_GET['id'])){//hai cliccato su DEL e hai confermato
	//scamuffo l'id
	$id=decodifica_q($_GET['id']);
	$query="DELETE FROM bacheca WHERE Nome='".$_SESSION['utente']."' AND id='$id'";
	//utilizzando l'id del record non ti servirebbe qui nemmeno la  $_SESSION['utente']
    $inviautente=mysql_query($query) or die(mysql_error());   
    header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}");    
}
//altro piccolo consiglio: usa solo le minuscole per nomi campi e variabili, si evitano errori di digitazione
$query = "SELECT * FROM bacheca WHERE Nome='".$_SESSION['utente']."' ORDER BY Nome, Data";//ti conviene metterli in ordine di nome
//oppure  ORDER BY Data, Nome in ordine di data
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result)==0){
	echo "non ci sono messaggi da eliminare";
	//e qui metti un link per andare dove vuoi
}else{}
	//a me piace vedere i dati ordinati quindi te li metto in una tabella, che poi puoi formattare con i css
	echo "<table><tr><th>data</th><th>nome</th><th>messaggio</th><th>eliminare</th></tr>";
	while($riga=mysql_fetch_array()){
		//qui poi puoi semplificare
		$id=$riga['id'];//qui verifica come hai chiamato l'id del record, è meglio trasmettere l'id che la data per identificare il record
		$data=date("d/n/Y g:i:s A", $riga['Data']);
		$mss = stripslashes($riga['Messaggio']);
		echo "<tr>";
		echo "<td>$data</td>";
		echo "<td>$mss</td>";
		//il prossimo link puoi poi formattarlo come vuoi con i css
		//essendo l'eliminazione pericoloso ti ho messo un alert di conferma
		echo "<td><a href=\"?id=".codifica_q($id)."\" onclick=\"return(confirm('stai eliminando il messaggio del $data CONFERMA'))\">DEL</a></td>";
		//se vai a vedere sorgente pagina vedrai che l'id è camuffato
		echo "</tr>";
	}
	echo "</table>";
}
?>
se ti va bene, provalo (verifica perchè posso aver fatto degli errori di digitazione)

p.s.
se vuoi al posto dell'id puoi comunque trasmettere la data, però ricordati che non puoi trametterla in formato umano ,ma in timestamp altrimenti la query non trova il record da eliminare
 
ciao
intanto per il delete
io faccio in questo modo (se leggi i commenti dovrebbe essere chiaro)

poi importante: un problema => un post

PHP:
<?php
if(!isset($_SESSION)){session_start()}  
if(!isset($_SESSION['utente'])){//immagino che venga da un log, quindi se il log non è giusto la sessione non deve esistere  
    header("location: pagina_che_vuoi.php"); 
    exit();   
} 
//queste le uso perche quando si usa GET può essere pericoloso, i valori si vedono, in questo modo è più difficile
//che un malintenzionato riesca ad individuare l'id (o quello che c'è nella querystringa) e di trasmetterlo
function codifica_q($g){//camuffo
	$prima=rand(100,999);//genero un numero casuale compreso tra 100 e 999
	$q_p=strlen($prima);//questi servono nel caso cambiassi il numero delle cifre rand
	$dopo=rand(10,99);//c.s. tra 10 e 99
	$q_d=strlen($dopo);//questi servono nel caso cambiassi il numero delle cifre rand
	return $q_p.$prima.$g.$dopo.$q_d;
}
function decodifica_q($g){//scamuffo
	$num_prima=$g[0]+1;
	$num_dopo=$g[(strlen($g)-1)]+1;
	$num_id_orig=strlen($g)-$num_prima-$num_dopo;
	return substr($g,$num_prima,$num_id_orig);
}
?>
<!-- tralascio l'html , consiglio: usa i css esterni-->  
<?php
require_once "connessione.php";
if(isset($_GET['id'])){//hai cliccato su DEL e hai confermato
	//scamuffo l'id
	$id=decodifica_q($_GET['id']);
	$query="DELETE FROM bacheca WHERE Nome='".$_SESSION['utente']."' AND id='$id'";
	//utilizzando l'id del record non ti servirebbe qui nemmeno la  $_SESSION['utente']
    $inviautente=mysql_query($query) or die(mysql_error());   
    header("Refresh: 1; URL= profile2.php?id={$_SESSION['utente']}");    
}
//altro piccolo consiglio: usa solo le minuscole per nomi campi e variabili, si evitano errori di digitazione
$query = "SELECT * FROM bacheca WHERE Nome='".$_SESSION['utente']."' ORDER BY Nome, Data";//ti conviene metterli in ordine di nome
//oppure  ORDER BY Data, Nome in ordine di data
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result)==0){
	echo "non ci sono messaggi da eliminare";
	//e qui metti un link per andare dove vuoi
}else{}
	//a me piace vedere i dati ordinati quindi te li metto in una tabella, che poi puoi formattare con i css
	echo "<table><tr><th>data</th><th>nome</th><th>messaggio</th><th>eliminare</th></tr>";
	while($riga=mysql_fetch_array()){
		//qui poi puoi semplificare
		$id=$riga['id'];//qui verifica come hai chiamato l'id del record, è meglio trasmettere l'id che la data per identificare il record
		$data=date("d/n/Y g:i:s A", $riga['Data']);
		$mss = stripslashes($riga['Messaggio']);
		echo "<tr>";
		echo "<td>$data</td>";
		echo "<td>$mss</td>";
		//il prossimo link puoi poi formattarlo come vuoi con i css
		//essendo l'eliminazione pericoloso ti ho messo un alert di conferma
		echo "<td><a href=\"?id=".codifica_q($id)."\" onclick=\"return(confirm('stai eliminando il messaggio del $data CONFERMA'))\">DEL</a></td>";
		//se vai a vedere sorgente pagina vedrai che l'id è camuffato
		echo "</tr>";
	}
	echo "</table>";
}
?>
se ti va bene, provalo (verifica perchè posso aver fatto degli errori di digitazione)

p.s.
se vuoi al posto dell'id puoi comunque trasmettere la data, però ricordati che non puoi trametterla in formato umano ,ma in timestamp altrimenti la query non trova il record da eliminare

L'ho provato e mi dà un errore di sintassi:'Parse error: syntax error, unexpected '}' in /membri/knoweveryone/bacheca_visualizza.php on line 2', come lo risolvo? Ho provato aggiungendo un ';' alla fine di session_start(); ma si sposta alla riga 69, perché?
Grazie ancora per il tuo aiuto,
hackersatifal.:D
 

Discussioni simili