• Home
  • Forum
  • Fare Web
  • PHP

errore nel controllo di un numero

  • Creatore Discussione Creatore Discussione valient13
  • Data di inizio Data di inizio 23 Apr 2012
  • Tag Tag
    mysql_query
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 23 Apr 2012
  • #1
Salve, ho fatto uno script solo che quando provo ad inviare un messaggio mi da sempre l'id sbagliato, cioè io faccio inserire un id, se l'id è maggiore degli id esistenti nella tabella gli da un messaggio in cui dice che non esiste nessun utente con quell'id, solo che quando metto un id esistente mi dà sempre quell'errore:
PHP:
		<?php
			$countiscritti=mysql_query("SELECT id_utente FROM iscritti");
			$cont=mysql_num_rows($countiscritti);
			$destinatario=$_POST['destinatario'];
			$mittente=$_POST['mittente'];
			$messaggio=strip_tags($_POST['messaggio']);
			$data=$_POST['data'];
			if (($messaggio=="") or ($destinatario==""))
			   echo '<br><b><font color=red>Devi compilare tutti i campi</font></b><br><a href=\"inviamessaggio.php\">Ritorna Indietro</a>';
			else {
				if ($mittente > $cont) {
					$query="Insert into `messaggi` (`mittente`,`destinatario`,`messaggio`,`data`) VALUES ('$mittente','$destinatario','".addslashes($messaggio)."','$data')";
					$result=mysql_query($query) or die(mysql_error());
					if($result==1)
						echo"<br><b><font color=green>Messaggio inviato con successo</font></b>";
					else
						echo"<br><b><font color=red>Messaggio non inviato</font></b><br><a href=\"inviamessaggio.php\">Ritorna Indietro</a>";
				}
				else echo '<br><b><font color=red>Devi inserire un\'id esistente</font></b><br><a href="inviamessaggio.php">Ritorna Indietro</a>';
			}
		?>
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 23 Apr 2012
  • #2
if($mittente > $cont) Non è che dovevi fare cosi? if($mittente <= $cont)

Così invia il messaggio solo se il mittente è uguale o inferiore al conto, perciò se esiste
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 23 Apr 2012
  • #3
E se per qualche motivo salti un id nella registrazione degli utenti?

forse ti conviene fare in questo modo:

PHP:
// cerchi l'id scelto nella tabella
$countiscritti = mysql_query("SELECT id_utente FROM iscritti WHERE id_utente = " . (int) $_POST['mittente']);
    // se lo trovi
    if (mysql_num_rows($countiscritti) == 1) {
        //  fai la insert
    else
       // altrimenti mostri il messaggio
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 23 Apr 2012
  • #4
nefyt hai ragione. mi ero scordato come si faceva xD
comunque criric si forse è meglio cosi, Grazie
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 23 Apr 2012
  • #5
mi dà errore, ho visto cosa mi da con l'echo ed esce fuori questo:
Resource id #8

PHP:
		<?php
			$destinatario=$_POST['destinatario'];
			$mittente=$_POST['mittente'];
			$messaggio=strip_tags($_POST['messaggio']);
			$data=$_POST['data'];
			if (($messaggio=="") or ($destinatario==""))
			   echo '<br><b><font color=red>Devi compilare tutti i campi</font></b><br><a href=\"inviamessaggio.php\">Ritorna Indietro</a>';
			else {
				$countiscritti = mysql_query("SELECT id_utente FROM iscritti WHERE id_utente = " . (int) $_POST['mittente']); 
				if (mysql_num_rows($countiscritti) == 1) {
					echo $countiscritti;
					$query="Insert into `messaggi` (`mittente`,`destinatario`,`messaggio`,`data`) VALUES ('$mittente','$destinatario','".addslashes($messaggio)."','$data')";
					$result=mysql_query($query) or die(mysql_error());
					if($result==1)
						echo"<br><b><font color=green>Messaggio inviato con successo</font></b>";
					else
						echo"<br><b><font color=red>Messaggio non inviato</font></b><br><a href=\"inviamessaggio.php\">Ritorna Indietro</a>";
				}
				else echo '<br><b><font color=red>Devi inserire un\'id esistente</font></b><br><a href="inviamessaggio.php">Ritorna Indietro</a>';
			}
		?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 23 Apr 2012
  • #6
e se provi cosi cosa ti stampa in $q?

PHP:
$q = "SELECT id_utente FROM iscritti WHERE id_utente = " . (int) $_POST['mittente'];
    $countiscritti = mysql_query($q);
    echo $q;
    if (mysql_num_rows($countiscritti) == 1) {
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 23 Apr 2012
  • #7
SELECT id_utente FROM iscritti WHERE id_utente = 1
Messaggio inviato con successo
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 23 Apr 2012
  • #8
criric ha scritto:
e se provi cosi cosa ti stampa in $q?

PHP:
$q = "SELECT id_utente FROM iscritti WHERE id_utente = " . (int) $_POST['mittente'];
    $countiscritti = mysql_query($q);
    echo $q;
    if (mysql_num_rows($countiscritti) == 1) {
Clicca per allargare...
O.ò stamperà il valore di $q no? SELECT id_utente FROM iscritti WHERE id_utente = + Il valore int del mittente


Edit: non ho ben capito, cosa vorresti vedere con l'echo?
 
Ultima modifica: 23 Apr 2012

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 23 Apr 2012
  • #9
SELECT
id_utente FROM iscritti WHERE id_utente = 1
Messaggio inviato con successo
Clicca per allargare...

e dov'è l'errore?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 23 Apr 2012
  • #10
Edit: non ho ben capito, cosa vorresti vedere con l'echo?
Clicca per allargare...

se nel post c'era l'id e se la query era giusta
 
N

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
  • 23 Apr 2012
  • #11
criric ha scritto:
se nel post c'era l'id e se la query era giusta
Clicca per allargare...
Era riferito a valient che aveva messo echo $countiscritti; xD comunque per controllare le query si potrebbe mettere or die(mysql_error()) cosi da togliere ogni dubbio
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 23 Apr 2012
  • #12
Si, in effetti ha più senso scrivere cosi;

PHP:
if(!$countiscritti){
        die("Errore:<br/> $q <br/>" . mysql_error());
    }
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 23 Apr 2012
  • #13
Ho messo nell'id 12 e me l'ho invia lo stesso, solo che l'id 12 non esiste lol...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 23 Apr 2012
  • #14
strano!
puoi ripostarlo per intero?
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 23 Apr 2012
  • #15
questo è tutto il codice:
PHP:
<?php 
	// inizializzazione della sessione
	session_start();
	// inclusione del file di funzione
	require_once __DIR__ . '/functions.php'; 
	// istanza della classe
	$iscrizione = new Iscrizioni();
	// chiamata al metodo per la verifica della sessione
	if (!$iscrizione->verifica_sessione())
	{
	  //redirect in caso di sessione non verificata
	  header("location:errore2.php");
	  exit ();
	}
	// identificativo univoco dell'utente
	$id_utente = $_SESSION['id_utente'];

	require_once __DIR__ . '/header.php'; 

?>
 <!-- Content -->
  <div id="content">
  	<div id="conteiner">
		<div align="center">
		<?php
			$destinatario=$_POST['destinatario'];
			$mittente=$_POST['mittente'];
			$messaggio=strip_tags($_POST['messaggio']);
			$data=$_POST['data'];
			if (($messaggio=="") or ($destinatario==""))
			   echo '<br><b><font color=red>Devi compilare tutti i campi</font></b><br><a href=\"inviamessaggio.php\">Ritorna Indietro</a>';
			else {
				$q = "SELECT id_utente FROM iscritti WHERE id_utente = " . (int) $_POST['mittente'];
				$countiscritti = mysql_query($q);
				if (mysql_num_rows($countiscritti) == 1) {  
					$query="Insert into `messaggi` (`mittente`,`destinatario`,`messaggio`,`data`) VALUES ('$mittente','$destinatario','".addslashes($messaggio)."','$data')";
					$result=mysql_query($query) or die(mysql_error());
					if($result==1)
						echo"<br><b><font color=green>Messaggio inviato con successo</font></b>";
					else
						echo"<br><b><font color=red>Messaggio non inviato</font></b><br><a href=\"inviamessaggio.php\">Ritorna Indietro</a>";
				}
				else echo '<br><b><font color=red>Devi inserire un\'id esistente</font></b><br><a href="inviamessaggio.php">Ritorna Indietro</a>';
			}
		?>
		</div>
  	</div>
    <?php require_once __DIR__ . '/sidebar.php'; ?>
  </div>
  
<?php require_once __DIR__ . '/footer.php'; ?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 23 Apr 2012
  • #16
non vedo errori,

strano che ti dia cmq il risultato

prova a fare un var_dump di quello che restituisce mettendo * nella query

PHP:
$q = "SELECT * FROM iscritti WHERE id_utente = " . (int) $_POST['mittente'];
    $countiscritti = mysql_query($q);
    var_dump(mysql_fetch_array($countiscritti));

magari capiamo dove sta il problema
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 24 Apr 2012
  • #17
mi dà questo:
Codice:
array
  0 => string '1' (length=1)
  'id_utente' => string '1' (length=1)
  1 => string 'admin' (length=5)
  'nome_utente' => string 'admin' (length=5)
  2 => string 'd033e22ae348aeb5660fc2140aec35850c4da997' (length=40)
  'password' => string 'd033e22ae348aeb5660fc2140aec35850c4da997' (length=40)
  3 => string 'Paolo' (length=5)
  'nome_reale' => string 'Paolo' (length=5)
  4 => string 'admin' (length=5)
  'email' => string 'admin' (length=5)
  5 => string 'A' (length=1)
  'livello' => string 'A' (length=1)
  6 => string 'images/avatar/Hydrangeas.jpg' (length=28)
  'avatar' => string 'images/avatar/Hydrangeas.jpg' (length=28)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 24 Apr 2012
  • #18
Se digiti id 12 ti mette nel post id 1?

PHP:
'id_utente' => string '1' (length=1)


forse è meglio controllare il value del campo nel form
 

valient13

Utente Attivo
6 Apr 2012
96
0
0
Sicilia
  • 25 Apr 2012
  • #19
ho ricontrollato, ed ho visto l'errore:
errato:
PHP:
$countiscritti = mysql_query("SELECT * FROM iscritti WHERE id_utente = " . (int) $_POST['mittente']) or die(mysql_error());
giusto:
PHP:
$countiscritti = mysql_query("SELECT * FROM iscritti WHERE id_utente = " . (int) $_POST['destinatario']) or die(mysql_error());

io andavo ogni volta a controllare il mio id cioè chi invia il messaggio e non chi lo riceveva xD
 
T

tieuho

Nuovo Utente
26 Apr 2012
3
0
0
checkwebsitesafe.com
  • 26 Apr 2012
  • #20
$q = "SELECT id_utente FROM iscritti WHERE id_utente = " . (int) $_POST['mittente'];

should avoid sql injection
 
  • 1
  • 2
Succ.
1 di 2 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

G
Errore Cannot read property 'childNodes' of undefined per mancanza nodo nel file xml
  • gapet
  • 2 Ott 2018
  • XML
Risposte
6
Visite
3K
XML 8 Ott 2018
macus_adi
A
[PHP] ERRORE QUANDO CAMBIO SLUG NEL CMS e REWRITE
  • andrea95
  • 29 Lug 2018
  • PHP
Risposte
6
Visite
2K
PHP 29 Lug 2018
macus_adi
Joomla su VPS OVH: non funziona nulla ma nessun errore nel log
  • novello88
  • 8 Mar 2016
  • Server Dedicati e VPS
Risposte
1
Visite
3K
Server Dedicati e VPS 8 Mar 2016
maxbossi
M
errore lettura data nel mysql con funzione Where
  • master1986
  • 25 Ott 2015
  • PHP
Risposte
1
Visite
1K
PHP 26 Ott 2015
master1986
M
R
Errore nel CSS impossibile
  • RBNZ
  • 28 Mag 2015
  • HTML e CSS
Risposte
2
Visite
2K
HTML e CSS 26 Giu 2015
MarcoGrazia
[Mod_rewrite] Errore nel rewrite
  • felino
  • 23 Lug 2014
  • Apache
Risposte
2
Visite
2K
Apache 23 Lug 2014
felino
L
Errore nel passare più valori tra pagine php
  • Lore
  • 4 Giu 2014
  • PHP
Risposte
10
Visite
2K
PHP 9 Giu 2014
Lore
L
Stampa data nel db ma da errore
  • Shyson
  • 18 Apr 2014
  • PHP
Risposte
7
Visite
2K
PHP 18 Apr 2014
Shyson
Errore nel visualizzare il nome del mese
  • felino
  • 1 Feb 2014
  • PHP
Risposte
2
Visite
1K
PHP 1 Feb 2014
felino
errore nel calcolo
  • Emix
  • 23 Nov 2013
  • PHP
Risposte
4
Visite
1K
PHP 29 Nov 2013
Longo8
Errore nel creare miniature da immagini caricate su un mio form
  • Jam1
  • 4 Lug 2013
  • PHP
Risposte
0
Visite
1K
PHP 4 Lug 2013
Jam1
D
Errore incomprensibile nel codice
  • Danix1994
  • 5 Gen 2013
  • Javascript
Risposte
2
Visite
1K
Javascript 5 Gen 2013
Danix1994
D
Errore nel echo
  • valient13
  • 14 Mag 2012
  • PHP
Risposte
2
Visite
2K
PHP 15 Mag 2012
borgo italia
errore con l'inserimento dei dati nel database, campi vuoti
  • asevenx
  • 11 Ago 2010
  • Classic ASP
Risposte
1
Visite
2K
Classic ASP 16 Ago 2010
Paolo69
T
errore nel recupero di un campo da db
  • tonino1
  • 13 Lug 2009
  • ASP.NET
Risposte
1
Visite
2K
ASP.NET 14 Lug 2009
PoLe
I
Errore nel ridimensionamento di una <table> in un <div>
  • Ilmatar
  • 5 Mag 2009
  • HTML e CSS
Risposte
5
Visite
4K
HTML e CSS 20 Mag 2009
borgo italia
I
SQLDatasource errore nel server
  • illusione
  • 11 Feb 2008
  • ASP.NET
Risposte
0
Visite
2K
ASP.NET 11 Feb 2008
illusione
I
T
Errore nel link "Torna Indietro" [era:Funzione javascript]
  • TheDoctor46
  • 31 Dic 2006
  • Javascript
Risposte
0
Visite
3K
Javascript 31 Dic 2006
TheDoctor46
T
T
errore asp (inserimento dati nel db)
  • torakikina
  • 7 Set 2005
  • Classic ASP
Risposte
1
Visite
1K
Classic ASP 7 Set 2005
daviduccio
S
errore nel compilare una drop down list
  • stee85
  • 21 Mar 2005
  • ASP.NET
Risposte
0
Visite
2K
ASP.NET 21 Mar 2005
stee85
S
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?