Non visualizzo il testo tramite query

Ho installato, seguendo il vostro tutorial, php5 ,mysql e apache server.....

ora, ho provato il tutto è funziona alla perfezione, se non fosse che, una volta creato un db, una tabella, un form di inseriemnto dati e uno script di inserimento dati nella tabella, richiamando tramite query la visualizzazione della tabella NON VEDO NULLA!

posto il codice:

/#/Creo il db

<?php

$connessione = mysql_connect("localhost", "root", "testpass");

$sql= "CREATE database utenti";

mysql_query ("$sql") or die (" database utenti non creata ");

print ("database utenti creata con successo");

?>

/#/Creo la tabella

<?php

$connessione = mysql_connect("localhost", "root", "testpass");

mysql_select_db("utenti");

$sql= "CREATE TABLE tabellautenti (nome CHAR (20), cognome CHAR(20), data_nascita  CHAR (20), località CHAR (20), email CHAR (20), telefono CHAR (20), codice_fiscale CHAR (20), password CHAR (11) )";

mysql_query ("$sql") or die (" tabellautenti non creata ");

?>

/#/il form html

<FORM  method="POST" action="registrautenti.php">

<font face="" color="blue">

Nome<BR>

<input type="text" name="requirednome" size=15><BR>

Cognome<BR>

<input type="text" name="requiredcognome" size=15><BR>

Data di Nascita<br>

<input type="text" name="requireddata_nascita" size=15><BR>

Località<BR>

<input type="text" name="requiredlocalità" size=15><BR>

Telefono<BR>

<input type="text" name="requiredtelefono" size=15><BR>

Codice Fiscale<br>

<input type="text" name="requiredcodice_fiscale" size=16 maxlength=16><BR>

Indirizzo email<BR>

<input type="text" name="requiredemail" size=25><BR>

<BR>

<INPUT TYPE="SUBMIT" VALUE="Registra"></input>

</FORM>

/#/lo script php per l'inserimento

<?php

$connessione = mysql_connect("localhost", "root", "testpass");

mysql_select_db("utenti");

$sql="INSERT INTO tabellautenti

(nome,cognome,data_nascita,località, email,telefono,codice_fiscale)

VALUES  ('$requirednome','$requiredcognome','$requireddata_nascita','$requiredlocalità','$requiredemail','$requiredtelefono','$requiredcodice_fiscale')";

mysql_query ("$sql") or die ("Registrazione non riuscita<br> <a href='registraclienti.htm'>RIPROVA</a>");

print ("La Registrazione è Andata a Buon Fine");

?>

/#/la query

<?php

$connessione = mysql_connect("localhost", "root", "testpass");

mysql_select_db("utenti");

print ("");

$dati = mysql_query ("SELECT * from tabellautenti");

while ( $array = mysql_fetch_array($dati) )

{

echo ("$array[nome]<br>$array[cognome]<br>$array[data_nascita]<br>$array[codice_fiscale]<br>$array[password]<br>$array[località]<br>$array[email]<br>$array[telefono]1");

}

?>

Spero tanto possiate aiutarmi...altrimenti credo che tutti i miei ei vostri sforzi andranno persi :uglystupid:........a prestissimo!

inviato 11 anni fa
yusizu
X 0 X

prova a mettere la funzione:

error_reporting (E_ALL);

all'inizio dello script, che impone al PHP di segnalare tutti i tipi di errore.

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Il roblema sta proprio nel fatto che l'errore è come se non ci fosse;

Infatti installato phpmyadmin, ho avuto modo di notare che ogni volta che inserisco i dati tramite script, mi crea un nuovo record si, però con campi null

Bhò, non so proprio che fare, in remoto sugli altri server non mi era mai capitato;

Grazie mille per un'altra eventuale risposta, a presto eancora complimenti per il lavoro svolto!

risposto 11 anni fa
yusizu
X 0 X

Dimenticavo un'altra cosa che sicuramente può tornare utile nell'indagine dell'errore:

Se creo uno script del genere (ovvero inserisco io il testo da inserire nella tabella e non glie lo faccio recuperare dal form, FUNZIONA!):

$sql="INSERT INTO tabellautenti

(nome,cognome,data_nascita,località, email,telefono,codice_fiscale)

VALUES  ('io','tu,'$requireddata_nascita','$requiredlocalità','$requiredemail','$requiredtelefono','$requiredcodice_fiscale')";

mysql_query ("$sql") or die ("Registrazione non riuscita");

print ("La Registrazione è Andata a Buon Fine");

?>

Il nuovo record sarà:

io, tu, null, null......

risposto 11 anni fa
yusizu
X 0 X

ho guardato meglio il tuo script e credo di aver trovato il problema.

Prima la teoria:

il contenuto di un campo "input" di un form, ad esempio di nome "requirednome" viene presento nello script che riceve i dati o come contenuto di una variabile $requirednome o come contenuto di un elemento all'interno dell'array superglobale $_POST (quindi in $_POST['requirednome']).

Se nel php.ini la direttiva register_global è su "On" allora saranno disponibili entrambe le variabili ($requirednome e $_POST['requirednome']). Nel caso in cui tale direttiva è su "Off" allora sarà disponibile solo $_POST['requirednome'].

Nelle ultime versioni di PHP register_global è su "Off" di default per sicurezza.

Alla luce di questo ti sarà chiaro perché il tuo script funziona solo su certi siti (in cui register_global è ad "On")

Comunque se avessi messo la funzione "error_reporting (E_ALL);" all'inizio dello script di inserimento, nel caso di register_global su "Off", avresti dovuto avere degli errori di tipo NOTICE

Il mio consiglio è quello di realizzare script usando solo l'array $_POST, così saranno più sicuri e funzioneranno ovunque.

Bye.

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili