Errori mysqli_query()

  • Creatore Discussione Creatore Discussione Hackx
  • Data di inizio Data di inizio

Hackx

Utente Attivo
20 Ago 2013
108
0
16
Sto creando un form per l 'inserimento delle immagini, e mentre stavo provando il funzionamento mi sono comparsi questi due errori.

1 - Warning: mysqli_query(): MySQL server has gone away

2 - Warning: mysqli_query(): Error reading result set's header

Ho cercato su internet, ed ho letto qualche articolo a riguardo ma non ho ancora ben capito come risolverli.

Mi potete aiutare ?

Ringrazio,
Andrea
 
ciao
su mrwm siamo bravi (anzi i meglio) ma non abbiamo la sfera di cristallo.
posta il codice che stai usando e forse qualcuno sa dirti il perchè
 
ciao
su mrwm siamo bravi (anzi i meglio) ma non abbiamo la sfera di cristallo.
posta il codice che stai usando e forse qualcuno sa dirti il perchè

Ero sicuro, da come avevo letto nei diversi articoli sparsi per il web, che era un errore di configurazione di un qualche file.ini.
Scusate ahah!

Ecco il codice:
PHP:
<?php 
if(isset($_POST['invia']))
{

if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
mostra_form("errore nell'invio del file. Riprova");

	
$con = mysqli_connect('localhost', 'root', 'password')
or die('Connessione non riuscita: ' . mysqli_error());

if(!mysqli_select_db($con, 'sito comuni'))
die('Selezione database fallita!');

$nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
$nome_file_vero = $_FILES['file_inviato']['name'];
$tipo_file = $_FILES['file_inviato']['type'];

$dati_file = file_get_contents($nome_file_temporaneo);

$dati_file = addslashes($dati_file);

mysqli_query($con, "INSERT INTO upload_immagini (nome_file,tipo_file,dati_file) VALUES ('$nome_file_vero', '$tipo_file', '$dati_file')") or die (mysqli_error());

mostra_form("Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente.");
}
else
{
	mostra_form();
}

function mostra_form($messaggio = '')
{
	?> 
	 
	<head> 
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
	<title>Carica file nel database</title> 
	</head> 
	 
	<p><?php echo $messaggio?> <br /> Seleziona un file da memorizzare nel database: <p></p> 
	<form name="form1" enctype="multipart/form-data" method="post" action=""> 
	<p> 
	<input type="file" name="file_inviato"> 
	<p></p> 
	<p> 
	<input type="submit" name="invia" value="Invia file"> 
	<p></p> 
	</form> 
	 
	<?php 
	exit();
}
?>

Premetto che per creare questo codice, visto che sono ancora alle prime armi, ho guardato "un di quà e un po di là" nel web e potrebbe essere un po un casotto !

Ringrazio,
Andrea
 
ciao
intanto ecco delle indicazioni
PHP:
<?php
//...
	//dopo la pass metti il nome del db
	$con = mysqli_connect('localhost', 'root', 'password','sito comuni')
	or die('Connessione non riuscita: ' . mysqli_error());
//...
?>
e togli
if(!mysqli_select_db($con, 'sito comuni'))
die('Selezione database fallita!');


poi nel form è meglio mettere
PHP:
<form name="form1" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

poi da quello che ho capito tu vuoi inserire l'immagine nel db (a parte che è una rogna poi anche per visualizzarla)
comunque come hai settato il campo dati_file? l'hai messo tipo BLOB?
poi prova a togliere quell' exit() in fondo, a che ti serve? se vuoi uscire metti un link

dulcis in fundo:
quando si devono caricare dei file è IMPORTANTE verificare quali tipo file è permesso caricare, non credo che ti piacerebbe che qualcuno ti caricasse cancella_tutto.exe
 
Ciao Borgo!

Innanzitutto ti volevo ringraziare per tutto l'aiuto che mi dai e per tutti i consigli utilissimi che mi porteranno (SPERO!) un giorno ad essere un grande programmatore come te e i tuoi colleghi!

Hai centrato perfettamente il punto... io volevo creare un form per l'inserimento delle immagini dove un utente:

1- se non collegato non potrà fare l'upload di nessuna immagine
2- ogni utente avrà a disposizione solo 5 immagini per mese (formato: GIF, JPEG, e PNG)
3- le immagini dovranno essere messe perfettamente, ovvero in 3 file da 3
4- e soprattutto raggiunto il massimo di 9 foto si dovrà passare alla pagina seguente.. quindi l'impaginazione.

E se posso essere sincero questo codice mi spaventa un pochettino, visto che sono alle prime armi, non so nemmeno da dove iniziare!!

Per le immagini nel DB?
Sinceramente non sapevo che sarebbe stata una rogna ... e quindi ora come ora ..dove più che mai mi devo semplificare la vita per capire al meglio questo linguaggio.. accetto volentieri i tuoi consigli!

Domani (scusa oggi XD) il prima possibile proverò a correggere il codice e vedrò se il mysqli è attivo oppure no!

TI RINGRAZIO MOLTISSIMO,
Andrea
 
ciao
1- se non collegato non potrà fare l'upload di nessuna immagine
cosa intendi? che deve essere iscritto (e quindi user e pass) e quindi loggato?
se è così prima dovresti pensare ad un sistema di iscrizione e poi loggatura, in seguito poi il form riservato a cui possono accedere solo gli iscritti e loggati.
quindi ti servono due form
1) log: generalmente con due input per inserire username e password
2) iscrizione: vari inputi con i dati dell'utente
il tutto condito da una tabella con vari campi, devi pensare a quelli/quanti che ti possono servire
 
ciao

cosa intendi? che deve essere iscritto (e quindi user e pass) e quindi loggato?
se è così prima dovresti pensare ad un sistema di iscrizione e poi loggatura, in seguito poi il form riservato a cui possono accedere solo gli iscritti e loggati.
quindi ti servono due form
1) log: generalmente con due input per inserire username e password
2) iscrizione: vari inputi con i dati dell'utente
il tutto condito da una tabella con vari campi, devi pensare a quelli/quanti che ti possono servire

Ciao Borgo,

Allora sisi.. infatti ho già creato un modulo di iscrizione.. mancano dei piccoli ritocchini ma sono quasi riuscito a concludere tutto, mancano poche cose, tipo come impostare il conferma email tramite appunto una email e impostare bene mysqli per il collegamento al DB.
Poi manca tutto il login, è difficile a proposito ? e poi questo codice riguardante l'upload di immagini.

Ringrazio,
Andrea
 
ciao
no non è difficile devi seguire questo schema generale
1) fai un form con due campi di input in cui l'utente inserisce username e password (ricorda che è bene che la pass sia codificata almeno con sha1)
+ evidente il pulsante di submit
2) il form deve puntare alla pag stessa o a un'altra (dipende dallo stile personale, io uso due pagine)
3) dopo le usuali verifiche che l'utente abbia inserito user e pass se si verifichi con una SELECT che esita la coppia user/pass
3a) NON esiste : rimandi dove vuoi (es alla index o al form di iscrizione)
3b)esiste (l'utente è registrato), a questo punto passi in sessione o l'user o la pass (importante ti serviranno per verificare accessi insiderati alle pag riservate) e invii dove vuoi es alla pag in cui hai il form per caricate le immagini
ti do una indicazione di come devi iniziare tutte le pagine riservate
PHP:
<?php
//attento queste righe devono essere le prime in assoluto
session_start();
//ipotizzo che tu abbia passato in sessione l'username
if(!isset($_SESSION['username'])){
	//la sessione non esiste
	header("location:index.php");
	exit();
	//questa parte ti protegge da accessi indesiderati cioe es
	//se uno scrive nel bw http://www.tuo_sito.it/carica_foto.php
	//non riesce ad accedere alla pag carica_foto.php senza loggarsi
}
//qesta parte la vede solo l'utente loggato
echo "ciao ".$_SESSION['username']." inserisci le tue foto";
//ecc.... php e html
?>

lo so che hai fretta di provare ma prima di passare al caricamento pensa bene a come fare la tabella delle immagini perche come hai detto vuoi mettere un limite di 5 al mese. il tempo perso ad organizzare il tutto (carta e matita) viene ricompensato largamente in seguito
 
Ciao Borgo,

Ti ringrazio sempre per le tue risposte rapide e precise.

A proposito del login...Anche io preferisco impostare sempre un header invece che far slittare tutta dalla pagina stessa. Proprio oggi pomeriggio dovrei ultimare l'iscrizione + dovrei iniziare a creare il codice/DB (struttura a matita) del login. Seguirò la tua scaletta, anzi già segnata in un foglio! :) !

Però..

Per l'upload di immagini, per il login, per la registrazione: "il tempo perso ad organizzare il tutto (carta e matita) viene ricompensato largamente in seguito" ...qualche consiglio ?
Mi servirebbero proprio, poiché io sono dell'idea di far sempre un lavoro al meglio!

Ti Ringrazio,
Andrea
 

Discussioni simili