• Home
  • Forum
  • Fare Web
  • PHP

[Php] script per il conteggio delle mail inviate

  • Creatore Discussione Creatore Discussione IImanuII
  • Data di inizio Data di inizio 12 Giu 2012
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #21
Mi da un errore

http://ryunion.herobo.com/invio/tabella.php
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 14 Giu 2012
  • #22
ciao
per vedere il formato del campo data prima aggiungi nel form
PHP:
<?php
//.......
require_once "connessione.php"; 
$dati=mysql_fetch_array(mysql_query("SELECT *FROM inviate")); 
$id=$dati['id']; 
$data=$dati['data'];
var_dump($dati['data']);//poi dopo da togliere
$quante=$dati['numero'];
//.....ecc
?>
provi ad usare lo script di invio e guardi è posti cosa ti restituisce il var_dump
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #23
borgo italia ha scritto:
ciao
per vedere il formato del campo data prima aggiungi nel form
PHP:
<?php
//.......
require_once "connessione.php"; 
$dati=mysql_fetch_array(mysql_query("SELECT *FROM inviate")); 
$id=$dati['id']; 
$data=$dati['data'];
var_dump($dati['data']);//poi dopo da togliere
$quante=$dati['numero'];
//.....ecc
?>
provi ad usare lo script di invio e guardi è posti cosa ti restituisce il var_dump
Clicca per allargare...

Il valore è NULL

Anche perchè lo script postato prima non va, non mi crea le tabelle nel db e mi esce un errore:

PHP:
Parse error: syntax error, unexpected T_STRING in /******/crea_tabella.php on line 9

Prova tu stesso a dare un occhio magari sbaglio qualcosa

form
http://ryunion.herobo.com/invio/form.php
tabella
http://ryunion.herobo.com/invio/crea_tabella.php
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 14 Giu 2012
  • #24
ciao
per forza
Il valore è NULL
Clicca per allargare...
se non crea la tabella.

Parse error: syntax error, unexpected T_STRING in /home/a9356301/public_html/invio/tabella.php on line 9
Clicca per allargare...
non riesco a vederlo (del resto ho fatto il copy/paste da mysqladmin)
riprovo e ti so dire
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #25
borgo italia ha scritto:
ciao
per forza
se non crea la tabella.


non riesco a vederlo (del resto ho fatto il copy/paste da mysqladmin)
riprovo e ti so dire
Clicca per allargare...

Ho notato una cosa, se dal codice che mi hai dato cancello
PHP:
or die mysql_error();

Lo script non mi da più l'errore com'è ovvio che sia, ma se vado a controllare mi ha creato la tabella 'inviate' , tuttavia non crea id data e numero :S
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 14 Giu 2012
  • #26
ciao
l'ho provata correggi in e aggiungi per riempirela la prima volta
PHP:
<?php
require_once "connessione.php";
mysql_query("
CREATE TABLE IF NOT EXISTS `inviate` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data` DATETIME NOT NULL ,
`numero` INT( 6 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM ;")
$data_iniziale=date("Y-m-d H:i:s");
mysql_query("INSERT INTO inviate(data, numero) VALUES('$data_iniziale', 0)");
?>
anche se non capisco il perchè dava errore.

poi nella parte che uppa modifica
PHP:
$oggi=date("d m Y");
in
PHP:
$oggi=date("Y-m-d H:i:s");

in questo modo i formati sono uguali
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #27
Nulla, modifiche fatte alla pagina invio.php

Ricreata la tabella con il codice da te postato, mi riporta questo errore

PHP:
Parse error: syntax error, unexpected T_VARIABLE in /****/crea_tabella.php on line 9

Alla riga 9 c'è

PHP:
$data_iniziale=date("Y-m-d H:i:s");

Ho provato anche a cancellare e ricreare il db.... ma nulla :S

Non faccio prima a crearle a mano nel pannello che ti mostro nell'allegato?
 

Allegati

  • Immagine.png
    71,6 KB · Visite: 332
Ultima modifica: 14 Giu 2012

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 14 Giu 2012
  • #28
ciao
viva gli orbi, c'ho girato come una trottola e non riuscivo a vederlo

) ENGINE = MYISAM ;")

deve essere

PHP:
<?php
require_once "connessione.php";
mysql_query("
CREATE TABLE IF NOT EXISTS `inviate` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data` DATETIME NOT NULL ,
`numero` INT( 6 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM ");//per un punto e virgola martin perse la cappa :(
$data_iniziale=date("Y-m-d H:i:s");
mysql_query("INSERT INTO inviate(data, numero) VALUES('$data_iniziale', 0)");
?>

comunque puoi farla anche manualmente
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #29
borgo italia ha scritto:
ciao
viva gli orbi, c'ho girato come una trottola e non riuscivo a vederlo

) ENGINE = MYISAM ;")

deve essere

PHP:
<?php
require_once "connessione.php";
mysql_query("
CREATE TABLE IF NOT EXISTS `inviate` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data` DATETIME NOT NULL ,
`numero` INT( 6 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM ");//per un punto e virgola martin perse la cappa :(
$data_iniziale=date("Y-m-d H:i:s");
mysql_query("INSERT INTO inviate(data, numero) VALUES('$data_iniziale', 0)");
?>

comunque puoi farla anche manualmente
Clicca per allargare...

ALEEEEEEEEEE ALE' ALE' ALE' borgoooooooooo borgoooooooooooooo xD

Perfetto la tabella è stata creata e riempita, e c'è da dire che anche io (nella mia ignoranza) avevo provato a controllare eventuali errori di sintassi, poichè googlando con "Parse error: syntax error, unexpected T_VARIABLE" portava nella ricerca tutte persone che avevano risolto questo problema seplicemente controllando la grammatica del codice, infatti tutti si erano dimenticati una virgola oppure uno spazio o era una dicitura sbagliata

Il valore da NULL (ora che la tabella è piena) è diventato string(19) "2012-06-14 11:13:34"
Come minimo nel codice tra i commenti metto i credits a te xD
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #30
ehm... ho cantato vittoria troppo presto.... :incazz2:
Le tabelle sono state create, ma il limite non viene rispettato.

Ho provato a settarlo a 10, ma non lo rispetta......

Il codice è diventato così

form.php ho cambiato così due parametri
PHP:
    $mumero_massimo=10; 
$oggi=date("Y-m-d H:i:s");//!!!verifica che sia nello stesso formato di quello che hai nel db

PHP:
<?php 
session_start(); 
if(!isset($_SESSION['p']) || $_SESSION['p'] != $_POST['accesso']){//ricorda i cookie possono essere cancellati dall'utente 
    //la sessione non esiste o è diversa da valore del campo nascosto: ho tentato un accesso diretto a invio.php 
    header('Location: ops.php'); 
    exit; 
}else{ 
    //provengo dal form quindi posso fare le verifiche del numero per upparlo 
    //la cosa è possibile solo se il numero di oggi è minore dell'ammesso 
    //elimino la sessione che non serve più 
    unset($_SESSION['p']); 
    require_once "connessione.php"; 
    $mumero_massimo=10; 
    $dati=mysql_fetch_array(mysql_query("SELECT *FROM inviate"));//non metto il controllo per la prima volta di utilizzo 
    $id=$dati['id']; 
    $data=$dati['data']; 
    $quante=$dati['numero']; 
	$oggi=date("Y-m-d H:i:s");  
    if($oggi == $data){ 
        //aggiorno il numero di email inviate oggi 
        $up=mysql_query("UPDATE inviate SET numero=numero+1 WHERE id=$id"); 
    }else{ 
        $up=mysql_query("UPDATE inviate SET data= '$oggi', numero=0  WHERE id=$id"); 
    } 
    /* *************************** 
    qui dovresti mettere i controlli lato server dei dati inviati 
    qui metti tutto il tuo ambaradan di lettura dei dati e l'invio 
    **************************** */ 
if ($_POST['Submit'] == 'Invia')
{

// Recupero il valore dei campi del form
 
$fromname = $_POST['nomedichiinvia'];
$fromemail = $_POST['maildichiinvia'];
$destinatario = "pocodibuono4ever@yahoo.it"; 
$oggetto = $_POST['oggetto']; 
$messaggio = $_POST['messaggio']; 
$verif_box = $_POST["verif_box"];

// Valorizzo le variabili relative all'allegato 
$allegato = $_FILES['allegato']['tmp_name']; 
$allegato_type = $_FILES['allegato']['type']; 
$allegato_name = $_FILES['allegato']['name']; 

// Creo la variabile headers che mi darà la fake mail recuperando i valori fromname e fromemail.. creo la variabile msg che si andrà a riempire successivamente
$lt= '<';
$gt= '>';
$sp= ' ';
$from= 'From:';
$headers = $from.$fromname.$sp.$lt.$fromemail.$gt;
$msg = ""; 

// Verifico se il file è stato caricato correttamente via HTTP 
// In caso affermativo proseguo nel lavoro... 
if (is_uploaded_file($allegato)) 
{ 
  // Apro e leggo il file allegato 
  $file = fopen($allegato,'rb'); 
  $data = fread($file, filesize($allegato)); 
  fclose($file); 

  // Adatto il file al formato MIME base64 usando base64_encode 
  $data = chunk_split(base64_encode($data)); 

  // Genero il "separatore" 
  // Serve per dividere, appunto, le varie parti del messaggio. 
  // Nel nostro caso separerà la parte testuale dall'allegato 
  $semi_rand = md5(time()); 
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
   
  // Aggiungo le intestazioni necessarie per l'allegato 
  $headers .= "\nMIME-Version: 1.0\n"; 
  $headers .= "Content-Type: multipart/mixed;\n"; 
  $headers .= " boundary=\"{$mime_boundary}\""; 

  // Definisco il tipo di messaggio (MIME/multi-part) 
  $msg .= "This is a multi-part message in MIME format.\n\n"; 

  // Metto il separatore 
  $msg .= "--{$mime_boundary}\n"; 

  // Questa è la parte "testuale" del messaggio 
  $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
  $msg .= "Content-Transfer-Encoding: 7bit\n\n"; 
  $msg .= $messaggio . "\n\n"; 

  // Metto il separatore 
  $msg .= "--{$mime_boundary}\n"; 

  // Aggiungo l'allegato al messaggio 
  $msg .= "Content-Disposition: attachment;\n"; 
  $msg .= " filename=\"{$allegato_name}\"\n"; 
  $msg .= "Content-Transfer-Encoding: base64\n\n"; 
  $msg .= $data . "\n\n"; 

  // chiudo con il separatore 
  $msg .= "--{$mime_boundary}--\n"; 
} 
else 
{ 
  $msg = $messaggio; 
} 	


// controllo se il codice di verifica è corretto
if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){
	// se il codice di verifica è corretto invio il messaggio
	mail($destinatario, $oggetto, $msg, $headers);
	// cancello il cookie in modo che non può essere inviato nuovamente aggiornando la pagina
	setcookie('tntcon','');
} else if(isset($message) and $message!=""){
	// se il codice di verifica non è corretto o provano ad accedere direttamente alla pagina php mostro l'errore.
} else {

	echo '<html><center>OooopS!</center><br><a href="javascript:history.go(-1)">Torna indietro</a></html>';
	
	exit;
	}

} 
	
	
}//fine if else : provengo da form.php 
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>E-Mail inviata</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
}
-->
</style></head>

<body>
<table width="100%" height="100%">
<tr>
<td align="center" valign="middle">

Email inviata. Grazie.<br />
<br />
<a href="javascript:history.go(-1)">Torna indietro</a>

</td>
</tr>
</table>
</body>
</html>

invio.php qui così rispettando il form.php (quindi 10 a tutti e due)
PHP:
$numero_massimo=10;//che puoi modificare

PHP:
<?php 
session_start();//attento deve essere la prima istruzione anche prima di require o include 
//ti aggiungo questa parte più sicura dei cookie per imperdire l'accesso a invia.php 
$_SESSION['p'] = sha1(uniqid(mt_rand()));//genero e codifico un numero casuale 
//come vedrai ti aggiungo un campo hidden per trasmettere e confrontare il numero generato 
/* 
qui la parte per la verifica del numero di email inviate 
è inutile mostrare il pulsante di submit se l'email non può essere inviata, o meglio 
NON mostrare l'intero form, dai un avviso e riinvii alla pg che vuoi 
*/ 
$numero_massimo=10;//che puoi modificare 
$oggi=date("Y-m-d");//!!!verifica che sia nello stesso formato di quello che hai nel db 
require_once "connessione.php"; 
$dati=mysql_fetch_array(mysql_query("SELECT *FROM inviate")); 
$id=$dati['id']; 
$data=$dati['data']; 
$quante=$dati['numero']; 
//verifico quante email sono state inviate oggi 
if($oggi == $data && $quante >= $numero_massimo){ 
    //oggi ho raggiunto il numero massimo di email quindi non posso inviare 
    //avviso e ritorno in automatico alla pag che mi pare 
    echo "<h1>oggi $oggi sono state gia inviate $quante email, non è possibile inviarne altre</h1>"; 
    //quindi dopo 4 sec riinvio (uso il tag meta e non header refresh per non aggiungere altre istruzioni) 
    echo "<meta http-equiv='Refresh' content='4; URL=ops.php'>"; 
    exit; 
}else{ 
//non ho raggiunto il numero massimo quindi posso inviare 
?> 
<html>  
<head>  
<title></title> 
<META HTTP-EQUIV="Imagetoolbar" Content="no"> 
<link rel="stylesheet" type="text/css" href="stile.css"> 
<script language="javascript">

//funzione per disabilitare il tasto destro del mouse
var message=""; 

function clickIE() {

if (document.all) {
(message); 
return false
}

} 

function clickNS(e) {

if (document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message); return false}}} 
if (document.layers) {document.captureEvents(Event.MOUSEDOWN); document.onmousedown=clickNS} 
else {
document.onmouseup=clickNS; document.oncontextmenu=clickIE
} 

document.oncontextmenu=new Function("return false")

// funzione per accettare solo numeri nel box del campo verifica

function reloadCaptcha() 
{
	document.getElementById("image").src=document.getElementById("image").src;
}

function keyCheck(eventObj, obj)
{
var keyCode

// Check For Browser Type
if (document.all){
keyCode=eventObj.keyCode
}
else{
keyCode=eventObj.which
}

var str=obj.value

if(keyCode==46){
if (str.indexOf(".")>0){
return false
}
}

if((keyCode<48 || keyCode >58) && (keyCode != 46)){ // Allow only integers and decimal points
return false
}

return true
}

//funzione di validazione delle due mail, messaggio, nome e oggetto
function validate()
{
var str=true;
document.getElementById("msgnome").innerHTML="";
document.getElementById("msgemailinvia").innerHTML="";
document.getElementById("oggetto").innerHTML="";



if(document.modulo.nomedichiinvia.value=='')
{
document.getElementById("msgnome").innerHTML="&nbsp;<img src=\"./sign_warning.png\" align=\"absmiddle\">&nbsp;Inserire il nome.";
str=false;
}

var validate_char= /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(!document.modulo.maildichiinvia.value.match(validate_char))
{
document.getElementById("msgemailinvia").innerHTML="&nbsp;<img src=\"./sign_warning.png\" align=\"absmiddle\">&nbsp;Inserire un indirizzo email valido.";
str=false;
}

if(document.modulo.oggetto.value=='')
{
document.getElementById("oggetto").innerHTML="&nbsp;<img src=\"./sign_warning.png\" align=\"absmiddle\">&nbsp;Inserire l\'oggetto della mail.";
str=false;
}

if(document.modulo.messaggio.value=='')
{
document.getElementById("messaggio").innerHTML="&nbsp;<img src=\"./sign_warning.png\" align=\"absmiddle\">&nbsp;Inserire il messaggio.";
str=false;
}

return str;

}
</script>
</head>  
<body oncontextmenu="return false;" ondragstart="return false;" onselectstart="return false;"> 
<p>   
<form name="modulo" action="invio.php" method="post" enctype="multipart/form-data" onSubmit="return validate()" > 
<table border="0" align="center" >   
    <tr> 
      <td width="160"><div align="left"><b>Nome di chi invia&nbsp;:</b>&nbsp;&nbsp;&nbsp;<br></div></td> 
      <td width="100"><input size="44" type="text" name="nomedichiinvia" ></td> 
    </tr>  
    <tr> 
      <td width="160"><br></td> 
      <td width="100"><div></div><div id="msgnome" style="color:#FF0000"></div></td> 
    </tr>   
    <tr> 
      <td width="160"><div align="left"><b>Email di chi invia&nbsp;:</b>&nbsp;&nbsp;&nbsp;<br></div></td> 
      <td width="100"><input size="44" type="text" name="maildichiinvia" ></td> 
    </tr>  
    <tr> 
      <td width="160"><br></td> 
      <td width="100"><div id="msgemailinvia" style="color:#FF0000"></div></td> 
    </tr>      
    <tr> 
      <td width="160"><div align="left"><b>Oggetto&nbsp;:</b>&nbsp;&nbsp;&nbsp;<br></div></td> 
      <td width="100"><input size="44" type="text" name="oggetto" ></td> 
    </tr>  
    <tr> 
      <td width="160"><br></td> 
      <td width="100"><div id="oggetto" style="color:#FF0000"></div></td> 
    </tr>        
    <tr> 
      <td width="160"><div align="left"><b>Messaggio&nbsp;:</b>&nbsp;&nbsp;&nbsp;<br></div></td> 
      <td width="100"><textarea cols="20" rows="4" name="messaggio" style="width:293px;overflow:hidden;height:130px; max-width:300px;max-height:130px"></textarea></td> 
    </tr>  
    <tr> 
      <td width="160"><br></td> 
      <td width="100"><div id="messaggio" style="color:#FF0000"></div></td> 
    </tr>         
    <tr> 
      <td width="160"><div align="left"><b>Allega file&nbsp;:</b>&nbsp;&nbsp;&nbsp;<br></div></td> 
      <td width="100"><input type="file" name="allegato" size="32" class="file_1"/></td> 
    </tr> 
    <tr> 
      <td width="160"><br></td> 
      <td width="100"></td> 
    </tr>       
    <tr> 
        <td width="160"><div align="left"><b>Codice di verifica&nbsp;:</b>&nbsp;&nbsp;&nbsp;<br></div></td> 
          <td width="30"><input type="text" name="verif_box" id="verif_box" size="25" onKeyPress="return keyCheck(event, this)" />       
            <a onclick="javascript:reloadCaptcha()" style="cursor: pointer;"><img src="refresh.png" valign="middle" ></a>  
            <iframe align="left" valign="top" id="image" style="border:0;height:40px;width:60px" scrolling="no" src="verificationimage.php?<?php echo rand(0,9999);?>" ></iframe> 
        </td> 
    </tr>  
    <tr> 
      <td width="160"><br></td> 
      <td width="100"></div></td> 
    </tr>     
    <tr> 
      <!-- *********ecco qui il campo hidden ******--> 
      <td width="160"><input name="accesso" type="hidden" value="<?php echo $_SESSION['p'];?>"></td> 
      <td width="100"><center><input type="submit" name="Submit" value="Invia"><input type="reset" value="Reset"></center></td> 
    </tr> 
  </table> 
</td> 
</tr> 
</table> 
</form> 
</body>  
</html> 
<?php 
}//fine dell if else invio permesso o non permesso 
?>

La mia "paura" è che il controllo confligga con la verifica del captcha..... :dipser::dipser:
 
Ultima modifica: 14 Giu 2012

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 14 Giu 2012
  • #31
ciao
metti dei vardump e posta quello che riportano
nella pag invio.php
PHP:
<?php
    //.......
	$id=$dati['id'];
	var_dump($id);
    $data=$dati['data'];
	var_dump($data);
    $quante=$dati['numero'];
	var_dump($quante);
    $oggi=date("Y-m-d H:i:s");
	var_dump($oggi);
	if($oggi == $data){
	//......
?>
analogamente nel file form.php
PHP:
<?php
//......
$dati=mysql_fetch_array(mysql_query("SELECT *FROM inviate")); 
$id=$dati['id'];
var_dump($id);
$data=$dati['data'];
var_dump($data);
$quante=$dati['numero'];
var_dump($quante);
//verifico quante email sono state inviate oggi 
if($oggi == $data && $quante >= $numero_massimo){
//......
?>
questo anche se mi sembra che nel form.php tu abbia sbagliato la formattazione della data
$oggi=date("Y-m-d");
dovrebbe essere anche li
$oggi=date("Y-m-d H:i:s");

comunqe un consiglio
metti un vardump alla volta, provi se ok lo togli e metti il successivo, così via sino a che non si trova l'errore.
ricorda che spesso il debug è più lungo che fare uno script
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #32
borgo italia ha scritto:
comunqe un consiglio
metti un vardump alla volta, provi se ok lo togli e metti il successivo, così via sino a che non si trova l'errore.
ricorda che spesso il debug è più lungo che fare uno script
Clicca per allargare...

Mi hanno sospeso l'account per spamming ?_? ma che è?? Vabè poco male tanto era un account test.. l'ho cancellato e ne ho fatto uno nuovo.

Ho messo tutto sul nuovo account e ricreato la tabella.

Ti posto i valori per il form.php

PHP:
$id=$dati['id']; 
var_dump($id);
Codice:
string(1) "1"
________________________________________________________________________________
PHP:
$data=$dati['data']; 
    var_dump($data);
Codice:
string(19) "2012-06-14 14:41:01"
________________________________________________________________________________
credo sia qui il problema perchè mi restituisce valore 0
PHP:
$quante=$dati['numero']; 
    var_dump($quante);
Codice:
string(1) "0"
________________________________________________________________________________
Qui invece porta l'orario non corretto adesso invece delle 14 sono le 20.54 ma penso che questo dipenda dal server.
PHP:
$oggi=date("Y-m-d H:i:s");
var_dump($oggi);
Codice:
string(19) "2012-06-14 14:54:38"


Ora proseguo e nel prossimo messaggio metto quello dell'invio.php
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 14 Giu 2012
  • #33
invio.php

PHP:
$id=$dati['id']; 
var_dump($id);
Codice:
string(1) "1"
_______________________________________________
PHP:
$data=$dati['data']; 
var_dump($data);
Codice:
string(19) "2012-06-14 15:01:52"
_______________________________________________

Qui di nuovo il valore 0 nonostante abbia inviato 2 mail.
PHP:
$quante=$dati['numero']; 
var_dump($quante);
Codice:
string(1) "0"

questo anche se mi sembra che nel form.php tu abbia sbagliato la formattazione della data
$oggi=date("Y-m-d");
dovrebbe essere anche li
$oggi=date("Y-m-d H:i:s");
Clicca per allargare...

Di questo me ne ero già accorto proprio mentre postavo ^^
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Giu 2012
  • #34
ciao
scusa ti ho fatto lavorare per niente.
sono incorso in un errore di logiga. l'inghippo sta nel formato della data Y-m-d H:i:s.
cosa succede:
appena parti (es) la data nel db è 2012-06-15 08:22:37
al secondo giro (seconda email) leggi la data attuale e questa sarà 2012-06-15 08:22:54 (sono passati alcuni secondi)
quindi quando fa il confronto se azzerare o meno risulta evidente che 2012-06-15 08:22:54 != 2012-06-15 08:22:37 e quindi riazzera il contatore.
risultato il contatore si azzera NON ogni giorno, ma ogni secondo.
ti butto giù le modifiche (un po' di pazienza) e te le posto.

mi sono diementicato il principio basilare della programmazione:
"uno script NON fa quello che vorresti che facesse, ma quello che gli DICI di fare"
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Giu 2012
  • #35
ciao
ecco le correzioni.
1. elimina la tabella che hai fatto correggi crea_tabella.php e rilancia
PHP:
<?php
require_once "connessione.php";
mysql_query("
CREATE TABLE IF NOT EXISTS `inviate` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`data` VARCHAR (10) NOT NULL ,
`numero` INT( 6 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM ;")
//$data_iniziale=date("Y-m-d");
mysql_query("INSERT INTO inviate(data, numero) VALUES('0000-00-00', 0)");
?>
non usiamo la formattazione del campo DATE ma VARCHAR cioè una semplice stringa
2. nel form.php rimetti $oggi
PHP:
//...
$oggi=date("Y-m-d");
//....
3. in invio.php
PHP:
//......
$oggi=date("Y-m-d");  
    if($oggi == $data){ 
        //aggiorno il numero di email inviate oggi 
        $up=mysql_query("UPDATE inviate SET numero=numero+1 WHERE id=$id"); 
    }else{ 
        $up=mysql_query("UPDATE inviate SET data= '$oggi', numero=0  WHERE id=$id"); 
    } 
//.....

in questo modo la data si modifica solo ogni giorno e quindi ti azzera il contatore solo quando sono passete 24 ore

credo che adesso dovrebbe funziare il tutto
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 15 Giu 2012
  • #36
borgo italia ha scritto:
ciao
scusa ti ho fatto lavorare per niente.
sono incorso in un errore di logiga. l'inghippo sta nel formato della data Y-m-d H:i:s.
cosa succede:
appena parti (es) la data nel db è 2012-06-15 08:22:37
al secondo giro (seconda email) leggi la data attuale e questa sarà 2012-06-15 08:22:54 (sono passati alcuni secondi)
quindi quando fa il confronto se azzerare o meno risulta evidente che 2012-06-15 08:22:54 != 2012-06-15 08:22:37 e quindi riazzera il contatore.
risultato il contatore si azzera NON ogni giorno, ma ogni secondo.
ti butto giù le modifiche (un po' di pazienza) e te le posto.

mi sono diementicato il principio basilare della programmazione:
"uno script NON fa quello che vorresti che facesse, ma quello che gli DICI di fare"
Clicca per allargare...

Fanciullo ma di che ti scusi??
1. con i tuoi consigli ho avuto un infarinatura leggerissima di comunicazione tra php e mysql
2. ho scoperto var_dump e i benefici che porta
3. mi stai aiutando a migliorare un form che serve a me in maniera gratuita

Tutti lati positivi :mavieni: ernacchi

EDIT

credo ci sia un errore nella crea_tabella.php
PHP:
) ENGINE = MYISAM ;") ; //mancava il ; di nuovo xD
 
Ultima modifica: 15 Giu 2012

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Giu 2012
  • #37
ciao
solito errore di copy/paste:crying:

fanciullo
Clicca per allargare...
no sono un "diversamente giovane"
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 15 Giu 2012
  • #38
Funziona!!!!!!!!!!

L'unica cosa ad es, che se imposto il limite di 2 ne devo mandare 3 per vedere il limite ma penso che questo sia voluto:

PHP:
    $dati=mysql_fetch_array(mysql_query("SELECT *FROM inviate"));//non metto il controllo per la prima volta di utilizzo


borgo italia ha scritto:
no sono un "diversamente giovane"
Clicca per allargare...

In fondo in fondo, credo che noi maschi non smettiamo mai di essere fanciulli, credo che conserviamo sempre un pò di immaturità almeno in certi comportamenti "giocosi"... ed è bellissimo x)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 15 Giu 2012
  • #39
ciao
Funziona!!!!!!!!!!
Clicca per allargare...
finalmente

L'unica cosa ad es, che se imposto il limite di 2 ne devo mandare 3 per vedere il limite ma penso che questo sia voluto
Clicca per allargare...
metti il numero massimo di una unità inferiore a quello che vorresti
 

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
  • 15 Giu 2012
  • #40
borgo italia ha scritto:
ciao
finalmente

metti il numero massimo di una unità inferiore a quello che vorresti
Clicca per allargare...

Non c'è il grazie in questo forum? X)
 
Prec.
  • 1
  • 2
  • 3
Succ.
Primo Prec. 2 di 3 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

M
Errore JavaScript per php [objeto HTMLParagraphElement]
  • manoodin
  • 14 Mar 2020
  • PHP
Risposte
0
Visite
1K
PHP 14 Mar 2020
manoodin
M
Script PHP per leggere un file JSON. autenticazione?
  • felino
  • 6 Mar 2020
  • PHP
Risposte
4
Visite
2K
PHP 10 Mar 2020
felino
[PHP] Script per rinominare in automatico le immagini inviate da ftp
  • romeocharly
  • 11 Apr 2019
  • PHP
Risposte
0
Visite
1K
PHP 11 Apr 2019
romeocharly
A
[PHP] Script con array con numeri che iniziano per 00
  • aiellog00
  • 28 Gen 2019
  • PHP
Risposte
2
Visite
2K
PHP 29 Gen 2019
aiellog00
A
D
[Javascript] pulsanti per comandi shell con php e ajax
  • Davide75
  • 13 Dic 2018
  • Ajax
Risposte
7
Visite
5K
Ajax 15 Dic 2018
Davide75
D
[PHP] Script per organizzazione presenza eventi
  • TpD
  • 29 Nov 2018
  • PHP
Risposte
3
Visite
2K
PHP 2 Dic 2018
TpD
[PHP] Script per censurare parole
  • webmachine
  • 21 Giu 2018
  • PHP
Risposte
4
Visite
2K
PHP 30 Giu 2018
borgo italia
M
[PHP] Script per controllo disponibilitá negozio in citta
  • migo80
  • 18 Apr 2018
  • PHP
Risposte
4
Visite
2K
PHP 20 Apr 2018
macus_adi
K
Script PHP per leggere array.txt
  • kerkut
  • 2 Dic 2017
  • Presentati al Forum
Risposte
3
Visite
2K
Presentati al Forum 3 Dic 2017
kerkut
K
[PHP] script per caricamento video
  • Mauro Guardiani
  • 10 Feb 2017
  • PHP
Risposte
0
Visite
2K
PHP 10 Feb 2017
Mauro Guardiani
Creare un script/codice in php per collegare un id mysql con un file
  • romeocharly
  • 25 Feb 2016
  • PHP
Risposte
0
Visite
2K
PHP 25 Feb 2016
romeocharly
[Vendo] Script php+mysql autocostruito per gestione giacenze magazzino
  • xone
  • 11 Gen 2016
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
2K
Offerte e Richieste di Lavoro e/o Collaborazione 11 Gen 2016
xone
F
Script php per IP camera
  • Fabri74
  • 28 Nov 2015
  • PHP
Risposte
12
Visite
6K
PHP 2 Dic 2015
MarcoGrazia
M
[Retribuito] Web Developer (PHP/MySQL/Javascript)
  • marco.ogliengo
  • 1 Mag 2015
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
2K
Offerte e Richieste di Lavoro e/o Collaborazione 1 Mag 2015
marco.ogliengo
M
Licenza per script in PHP
  • IImanuII
  • 27 Gen 2015
  • PHP
Risposte
2
Visite
3K
PHP 15 Feb 2015
IImanuII
S
aiuto per script PHP/OOP
  • stefana
  • 14 Nov 2014
  • PHP
Risposte
2
Visite
1K
PHP 15 Nov 2014
stefana
S
Script PHP per estrarre dati estrazioni da sito "10 e lotto"
  • filippino
  • 10 Apr 2014
  • PHP
Risposte
0
Visite
3K
PHP 10 Apr 2014
filippino
K
creare uno script in php , per generare in modo automatico query
  • kirasuiper
  • 23 Feb 2013
  • PHP
Risposte
2
Visite
2K
PHP 23 Feb 2013
kirasuiper
K
S
countdown in php e script per aprire 2 siti contemporanemante
  • Salvo Salvi
  • 25 Dic 2012
  • PHP
Risposte
1
Visite
2K
PHP 25 Dic 2012
Nefyt
N
U
php-mysql script per convertire valori $_POST
  • user_francesco
  • 24 Dic 2012
  • PHP
Risposte
2
Visite
4K
PHP 24 Dic 2012
user_francesco
U
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?