Newsgroup: it.comp.www.php
Titolo: php non scrive i dati nel db

scusatemi...
ho fatto questa pagina per scrivere dei dati in un form:
<?php
//connessione_wr.php
$host = 'localhost';
$user = 'mio';
$password = 'mia';
$database = 'extreme';
//$sel_tabella = '$tabella';
?>
<Html>
<head>
<title>Accesso al DB  <?php print("$database")?></title>
<style type="text/css">
<!--
@import url("css/tabelle.css");
@import url("css/moduli.css");
body {
     background-color: #000000;
}
body,td,th {
     color: #FF0000;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1"></head>
<body>
<?php
$db = mysql_connect($host, $user, $password)
or die ("impossibile connettersi al Server $host");
mysql_select_db($database, $db)
or die ("impossibile connettersi al database $database");
?>
<form name="form1" method="post" action="connessione_re.php">
<table width="200" border="0" align="center" class="tabelle">
   <tr>
     <td>nick</td>
     <td>
         <div align="left">
           <input name="nick" type="text" class="moduli" id="nick">
           </div></td>
   </tr>
   <tr>
     <td>password</td>
     <td>
         <div align="left">
           <input name="pw" type="text" class="moduli" id="pw">
       </div></td>
   </tr>
   <tr>
     <td>mail</td>
     <td>
         <div align="left">
           <input name="mail" type="text" class="moduli" id="mail">
       </div></td>
   </tr>
   <tr>
     <td>razza</td>
     <td>
             <div align="left">
                   <select name="razza" class="moduli" id="razza">
                     <option value="Umano">Umano</option>
                     <option value="Cyborg">Cyborg</option>
                     <option value="Robot">Robot</option>
                     <option value="Mutante">Mutante</option>
                   </select>
             </div></td>
   </tr>
   <tr>
     <td>professione</td>
     <td>
             <div align="left">
                   <select name="work" class="moduli" id="work">
                     <option value="Assassino">Assassino</option>
                     <option value="Disoccupato">Disoccupato</option>
                     <option value="Libero professionista">Libero 
professionista</option>
                     <option value="Hacker">Hacker</option>
                     <option value="Presidente">Presidente</option>
                   </select>
             </div></td>
   </tr>
   <tr>
     <td>tabella</td>
     <td><div align="left">
       <input name="tabella" type="text" class="moduli" id="tabella">
</div></td>
   </tr>
   <tr>
     <td><div align="center">
       <input name="Submit" type="submit" class="moduli" value="Invia">
     </div></td>
     <td>
       <div align="center">
         <input name="Submit" type="reset" class="moduli" 
value="Ripristina">
       </div></td>
   </tr>
</table>
</form>
</body>
</html>
e quest'altra che li riceve:
<?php
$host = 'localhost';
$user = 'mio';
$password = 'mia';
$database = 'extreme';
?>
<Html>
<head>
<title>Accesso al DB  <?php print("$database")?></title>
<style type="text/css">
<!--
@import url("css/tabelle.css");
@import url("css/moduli.css");
body {
     background-color: #000000;
}
body,td,th {
     color: #FF0000;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1"></head>
<body>
<?php
$db = mysql_connect($host, $user, $password)
or die ("impossibile connettersi al Server $host");
mysql_select_db($database, $db)
or die ("impossibile connettersi al database $database");
$query = "Insert INTO $tabella (nick, pw, email, razza, professione) 
Values ($nick, $pw, $razza, $work, $mail)" ;
// codice incriminato:
$result =$db-> query($squery);
// fine del codice incriminato.
print("<h4>Vuoi scrivere nella tabella $tabella:");
print("<h3>Nick: $nick, Password: $pw, Razza: $razza, Professione: 
$work, E-Mail: $mail</h3>");
$query2 = "Select * from $tabella Order by id Asc LIMIT 0,3" ;
$dbResult = mysql_query($query2, $db);
$AffectedRows = mysql_affected_rows($db);
print("<h3>Accesso al database $database sul server $host di 
Kevin!!!</h3>");
/*
print("<h3>Username = $user</h3>");
print("<h3>Password = $password</h3>");
*/
print("<h3> Numero di record trovati: $AffectedRows</h3>");
print("<h3>Id, Utente, Password, E-mail: <hr> ");
print"<table border=\"1\" class=\"tabelle\">\n";
while ($line =mysql_fetch_array($dbResult, MYSQL_NUM)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t<tr>\n";
}
print "</table>\n";
mysql_free_result($dbResult);
mysql_close($db);
?>
<form name="form1" method="post" action="connessione_re.php">
   <p>
     <select name="tabella" class="moduli" id="tabella">
       <option value="Utenti">Utenti</option>
       <option value="Utenti2">Utenti2</option>
     </select>
     <input name="Submit" type="submit" class="moduli" value="Invia">
</p>
   <p align="center"><a href="connessione_wr.php">pagina 2</a>   </p>
</form>
</body>
</html>
Ora, come si può vedere dalla prima pagina c'è una casella di testo in 
cui scrivo il nome della tabella da selezionare ed a cui mandare i dati.
Nella seconda pagina questo dato lo catturo due volte: la prima per 
scrivere i dati nel db
la seconda invece per leggere i dati già presenti.
Quello che non capisco, è perchè se tolgo:
$result =$db-> query($squery);
mi funziona la lettura (appare la pagina in modo corretto), ma non 
scrive nulla nel db di MySql
se invece non tolgo mi visualizza solo uno sfondo nero e non funziona 
assolutamente nulla. Potete aiutarmi?
Grazie a tutti..
Ciao, Kevin.

 Values ($nick, $pw, $razza, $work, $mail)" ;
Non usare register_globals !!!
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 
Scusa, ma non ho capito. E' colpa mia, perchč non ti ho detto che sono 
abbastanza nuovo di questo linguaggio...Potresti spiegarmi meglio? 
Magari con un esempietto. Grazie intanto per l'aiuto, Ciao :)
Kevin

 meglio? 
http://www.php.net/register_globals


 
va bene, ho letto dei register_globals. Ma a me non funziona cmq. Ora ti 
  posto il codice modificato in base al "non utilizzo dei register_globals!
(č un pň brutale la forzatura degli If che vedrai di seguito, ma nn 
sapendo fare diversamente, ho pensato a questa soluzione). Comunque non 
mi funziona ancora e non so che dire, ne che fare... Grazie er l'aiuto 
prezioso cmq almeno adesso so cosa sono i register_globals
Pagina che riceve i dati:
<?php
$host = 'localhost';
$user = 'root';
$password = 'triadpass';
$database = 'extreme';
if ($_post ['nick'] == null){
$nick = $nome;
else
$nick = $nome;
}
if ($_post ['pw'] == null){
$pw = $password;
else
$pw = $password;
}
if ($_post ['mail'] == null){
$mail = $posta;
else
$mail = $posta;
}
if ($_post ['spece'] == null){
$razza = $spece;
else
$razza = $spece;
}
if ($_post ['mestiere'] == null){
$work = $mestiere;
else
$work = $mestiere;
}
?>
<Html>
<head>
<title>Accesso al DB  <?php print("$database")?></title>
<style type="text/css">
<!--
@import url("css/tabelle.css");
@import url("css/moduli.css");
body {
	background-color: #000000;
}
body,td,th {
	color: #FF0000;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1"></head>
<body>
<?php
$db = mysql_connect($host, $user, $password)
or die ("impossibile connettersi al Server $host");
mysql_select_db($database, $db)
or die ("impossibile connettersi al database $database");
$query = "Insert INTO $tabella (nick, pw, email, razza, professione) 
Values ($nome, $password, $spece, $mestiere, $posta)" ;
$result = $db -> query($query);
print("<h4>Vuoi scrivere nella tabella $tabella:");
print("<h3>Nick: $nick, Password: $pw, Razza: $razza, Professione: 
$work, E-Mail: $mail</h3>");
$query2 = "Select * from $tabella Order by id Asc LIMIT 0,5" ;
$dbResult = mysql_query($query2, $db);
$AffectedRows = mysql_affected_rows($db);
print("<h3>Accesso al database $database sul server $host di 
Kevin!!!</h3>");
/*
print("<h3>Username = $user</h3>");
print("<h3>Password = $password</h3>");
*/
print("<h3> Numero di record trovati: $AffectedRows</h3>");
print("<h3>Id, Utente, Password, E-mail: <hr> ");
print"<table border=\"1\" class=\"tabelle\">\n";
while ($line =mysql_fetch_array($dbResult, MYSQL_NUM)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t<tr>\n";
}
print "</table>\n";
mysql_free_result($dbResult);
mysql_close($db);
?>
<form name="form1" method="post" action="connessione_re.php">
   <p>
     <select name="tabella" class="moduli" id="tabella">
       <option value="utenti" selected>utenti</option>
       <option value="utenti2">utenti2</option>


 if ($_post ['nick'] == null){
Non e' $_post ['nick'] ma $_POST['nick'].
-- 
I am what I am, I do what I can


 
Ho fatto come hai detto, ma non funziona.. insomma, ascolta se tolgo 
questa frase dalla pagina, lo script non si interrompe, non scrive lo 
stesso nel db, ma almeno vedo qualcosa. Significa che lerrore sta li 
giusto? Ma perchč non funziona questa maledetta frase??
Questa č la frase incriminata:
$result = $db -> query($query);
Ed č inclusa in questa pagina:
<?php
$host = 'localhost';
$user = 'root';
$password = 'triadpass';
$database = 'extreme';
if ($_POST ['nick'] == null){
$nick = $nome;
else
$nick = $nome;
}
if ($_POST ['pw'] == null){
$pw = $password;
else
$pw = $password;
}
if ($_POST ['mail'] == null){
$mail = $posta;
else
$mail = $posta;
}
if ($_POST ['razza'] == null){
$razza = $spece;
else
$razza = $spece;
}
if ($_POST ['work'] == null){
$work = $mestiere;
else
$work = $mestiere;
}
?>
segue un pň di html, poi:
<?php
$db = mysql_connect($host, $user, $password)
or die ("impossibile connettersi al Server $host");
mysql_select_db($database, $db)
or die ("impossibile connettersi al database $database");
$query = "Insert INTO $tabella (nick, pw, email, razza, professione) 
Values ($nome, $password, $spece, $mestiere, $posta)" ;
//eccola qui la maledetta:




mysql_free_result($dbResult);
mysql_close($db);
?>
spero che tu o qualsiasi altra buonanima possiate aiutarmi... nn so piů 
che fare...e si tratta della prima pagina di php che sviluppo.. pensate 
un sito intero da passare dalle ASP al PHP! Impazzirň sicuramente!
Comunque grazie a tutti anche solo per la pazienza di leggermi. :)
Ciao, Kevin

 
un'altra cosa... č possibile avere almeno un indice degli errori? se si 
come? Il browser (e quindi il server) mi restituisce una pagina bianca 
senza indicarmi quale tipo di errore sto facendo.. cosě risulta un pň 
difficile lavorare.
Ciao e grazie.
Kevin

 un'altra cosa... è possibile avere almeno un indice degli errori? 
http://www.php.net/error_reporting
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E


 $result = $db -> query($query);
Il PHP come altro linguaggio di programmazione ha una sintassi ben
definita, non puoi scrivere le istruzioni come piu' ti piace, DEVI
rispettare la sintassi.
$result = $db->query($query);


 
D'accordo, questo era un errore, ma non mi visualizza ancora nulla.. 
possibile?
Questo č il codice corretto con il  nuvo suggerimento:
<?php
$host = 'localhost';
$user = 'root';
$password = 'triadpass';
$database = 'extreme';
if ($_POST ['nick'] == null)
{
$nome = 'nome errato';
else
$nome = $nick ;
}
if ($_POST ['pw'] == null)
{
$password = 'pw errato';
else
$password = $pw ;
}
if ($_POST ['razza'] == null)
{
$spece= 'razza errata';
else
$spece = $razza ;
}
if ($_POST ['work'] == null)
{
$mestiere= 'mestiere errato';
else
$mestiere = $work ;
}
if ($_POST ['mail'] == null)
{
$posta= 'e-mail errata';
else
$posta = $mail ;
}
//anche cosě non funziona il codice sopra. Ma perchč?
?>
<Html>
<head>
<title>Accesso al DB  <?php print("$database")?></title>
<style type="text/css">
<!--
@import url("css/tabelle.css");
@import url("css/moduli.css");
body {
	background-color: #000000;
}
body,td,th {
	color: #FF0000;
}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1"></head>
<body>
<?php
$db = mysql_connect($host, $user, $password)
or die ("impossibile connettersi al Server $host");
mysql_select_db($database, $db)
or die ("impossibile connettersi al database $database");
$query = "Insert INTO $tabella (nick, pw, email, razza, professione) 
Values ($nome, $pw, $razza, $work, $mail)" ;
$result = $db->query($query);
print("<h4>Vuoi scrivere nella tabella $tabella:");
print("<h3>Nick: $nick, Password: $pw, Razza: $razza, Professione: 
$work, E-Mail: $mail</h3>");
$query2 = "Select * from $tabella Order by id Asc LIMIT 0,5" ;
$dbResult = mysql_query($query2, $db);
$AffectedRows = mysql_affected_rows($db);
print("<h3>Accesso al database $database sul server $host di 
Kevin!!!</h3>");
/*
print("<h3>Username = $user</h3>");
print("<h3>Password = $password</h3>");
*/
print("<h3> Numero di record trovati: $AffectedRows</h3>");
print("<h3>Id, Utente, Password, E-mail: <hr> ");
print"<table border=\"1\" class=\"tabelle\">\n";
while ($line =mysql_fetch_array($dbResult, MYSQL_NUM)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t<tr>\n";
}
print "</table>\n";
mysql_free_result($dbResult);
mysql_close($db);
?>
<form name="form1" method="post" action="connessione_re.php">
   <p>
     <select name="tabella" class="moduli" id="tabella">
       <option value="utenti" selected>utenti</option>
       <option value="utenti2">utenti2</option>
     </select>
     <input name="Submit" type="submit" class="moduli" value="Invia">
</p>
   <p align="center"><a href="connessione_wr.php">pagina 2</a>   </p>
</form>
</body>
</html>
Sai, sono 4 giorni che sto dietro a queste due pagine... Se tu o 
chiunque altro possiate aiutarmi mi fareste davvero una gran cortesia. 
Ciao a tutti.
Kevin

 possibile?
Ma ci fai o ci sei?
Nelle prime 35 righe ci sono 5 parse error e 5 undefined index ...


 
Mi devi proprio scusare. Perdonami. Io probabilmente ci sono. Ormai 
credo che negli ultimi 28 anni (della mia vita) una soluzione al mio 
problema non sia mai stata trovata. Sono proprio cosě.
Tornando al problema di php, io non vedo errori, 1) perchč sono nuovo, 
2)perchč il server mi restituisce una pagina bianca, per cui credo sia 
un errore arrivandoci per intuizione, 3)se sapessi che errori sto 
facendo cercherei le soluzioni da solo(senza annoiarti e/o darti 
l'impressione di prenderti in giro)... ma non ne vedo. VEDO SOLO UNA 
PAGINA BIANCA SENZA SCRITTE.
In ogni caso.. Quell'indice che chiedevo nell'altro post mio a cui hai 
risposto, non era un qualcosa su internet, ma ti chiedevo una 
impostazione (probabilmente) da settare in qualche modo per fare in modo 
che il server Apache mi dica che "tipo di errore sto commettendo" Ad 
esempio: "Errore Php in mia_pagina.php alla linea 21 colonna 12. E' 
necessario un oggetto." Scusami ancora, ma io sono nuovo di questo 
linguaggio, questo server e anche del server di db (mysql).
Se puoi aiutarmi a farmi capire che errori ho fatto, magari anche solo 
dicendomi in che righe e in che tipo, credo che mi sarebbe utile, per 
imparare questo sistema di sviluppo di applicazioni web. Grazie ancora 
per tutto. Ciao.
Kevin.

 VEDO SOLO UNA PAGINA BIANCA SENZA SCRITTE.
http://www.php.net/error_reporting
Che cosa non hai capito?


 
Ho fatto come nell'esempio del link che mi hai dato. Con questo codice 
(sono giusto le prime 38 righe, dove in teoria dovrebbero esserci gli 
errori):
<?php
/*questo è ciò che ho messo nell'esempio*/
error_reporting (2039);
$host = 'localhost';
$user = 'root';
$password = 'triadpass';
$database = 'extreme';
if ($_POST ['nick'] == null)
{
$nome = 'nome errato';
else
$nome = $nick ;
}
if ($_POST ['pw'] == null)
{
$password = 'pw errato';
else
$password = $pw ;
}
if ($_POST ['razza'] == null)
{
$spece= 'razza errata';
else
$spece = $razza ;
}
if ($_POST ['work'] == null)
{
$mestiere= 'mestiere errato';
else
$mestiere = $work ;
}
if ($_POST ['mail'] == null)
{
$posta= 'e-mail errata';
else
$posta = $mail ;
}
Quello che non ho capito è perchè vedo ancora una pagina bianca senza 
scritte. Ecco cosa non ho capito...
Ciao e grazie.

 error_reporting (2039);
error_reportin (E_ALL);
[quoto]
See also the display_errors directive and ini_set(). 
[/quoto]
http://www.php.net/manual/en/ref.errorfunc.php#ini.display-errors
