[Php-it] [OT?] Comportamento strano
Simone Volpini
simonevolpini at yahoo.it
Mon Mar 12 10:56:35 CET 2007
Ciao
Domenico L. ha scritto:
> Lo fai transazionalmente? e poi se devono essere unici definiscili
> chiave primari o mettici sopra un unique index così eviti duplicati (e
> ti gestisci l'errore) :-)
Non lo faccio transazionalmente.
Siccome non devono essere unici, come chiave primaria utilizzo un id
autoincrementante.
> C'è da dire cmq che sembra esserci un problema nei tuoi script... la
> cosa puzza di ciclo messo male...
>
> Prova magari a postare una parte del codice
E' un forum
// file 1.php
$disc = $_POST['hDisc']; // id della discussione
$cat = $_POST['hCat']; // id della categoria
$nome = htmlentities(trim($_POST['txtNome']), ENT_QUOTES, 'UTF-8');
$email= htmlentities(trim($_POST['txtEmail']), ENT_QUOTES, 'UTF-8');
$titolo= htmlentities(trim($$_POST['txtTitolo']), ENT_QUOTES, 'UTF-8');
$messaggio = htmlentities(trim($_POST['txtMsg']), ENT_QUOTES, 'UTF-8');
$ip = $_SERVER['REMOTE_ADDR'];
if ($nome == '' || ($titolo == '' && $disc == 0) || $messaggio == '')
{
// HEADER PAGINA D'ERRORE
} else {
// controllo esistenza duplicati
$sql = "SELECT COUNT(*) FROM tabella_messaggi
WHERE id = ".$disc."
AND titolo_msg = '".$titolo."'
AND testo_msg = '".$messaggio."'
AND nome_utente = '".$nome."'
AND ip_utente = '".$ip."'";
$cont = query($sql, 'one'); // questa è testata e funziona
if ($cont == 0)
{
$sql = "INSERT INTO tabella_messaggi(id, datamsg, titolo_msg,
testo_msg, nome_utente, email_utente, ip_utente, visibile)
VALUES(
".$disc.",
NOW(),
'".$titolo."',
'".$messaggio."',
'".$nome."',
'".$email."',
'".$ip."',
'0')";
query($sql); // anche questa funzia
header('Location: 2.php'); // reindirizzamento pagina "GRAZIE"
}
Riguardando i log, avvengono 200 chiamate al file 1.php (circa 3 al
secondo).
Simone
More information about the Php-it
mailing list