.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Forum De Bell Tolls (http://www.dsy.it/forum/forumdisplay.php?forumid=7)
-- [PHP/MySQL] Cos'ho sbagliato?? (http://www.dsy.it/forum/showthread.php?threadid=9529)


Posted by Hamelin on 15-03-2004 16:31:

Unhappy [PHP/MySQL] Cos'ho sbagliato??

Mi spiegate perché con il seguente form e la seguente pagina che dovrebbe raccogliere gli input del form non riesco ad ottenere il risultato desiderato? Viene inserito un nuovo record nel database, ma i campi "nome" e "cognome" rimangono vuoti... non NULL... vuoti... mah...

<html>
<head>
<title>Modulo</title>
</head>
<body>
<p>Inserisci nome e cognome</p>
<form method="POST" action="inserisci.php">
<p>Nome:</p>
<input type="text" name="nome">
<br />
<p>Cognome:</p>
<input type="text" name="cognome">
<br />
<input type="submit" value="Invia">
</body>
</html>

___________________________


<html>
<head>
<title>Inserimento record</title>
</head>
<body>
<p>Con questa pagina inserisco un nuovo record nella tabella "prova"</p>
<?php
$idconn = mysql_connect('localhost', '', '') or die("Connessione non riuscita " . mysql_error());
mysql_select_db('fibo', $idconn) or die("Selezione database non riuscita " . mysql_error());
$query = "INSERT INTO prova (nome, cognome) VALUES ('$nome', '$cognome')";
mysql_query($query, $idconn) or die("Inserimento record non riuscito " . mysql_error());
mysql_close($idconn);
?>
</body>
</html>

__________________
Bjarne Stroustrup: "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone."
Andrew S. Tanenbaum: "Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway."
Edsger Dijkstra: "Computer Science is no more about computers than astronomy is about telescopes."
Robert Firth: "One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs."
Donald Knuth: "A mathematical formula should never be 'owned' by anybody! Mathematics belong to God."


Posted by korn on 15-03-2004 16:35:

Non funziona perché leggi le variabili dalla pagina di input come globals, cosa che per default è disattivata nelle nuove versioni di php per motivi di sicurezza.

leggile così:

$HTTP_POST_VARS['nome']
$HTTP_POST_VARS['cognome']

o anche:

$_POST['nome']
$_POST['cognome']


quindi in definitiva:

$query = "INSERT INTO prova (nome, cognome) VALUES ('$HTTP_POST_VARS[nome]', '$HTTP_POST_VARS[cognome]')";

nota: gli apici dell'indice dell'array vanno tolti se è inserito all'interno di una stringa.

__________________
» Collect some stars to shine for you, and start today ‘cause there are only a few. _ (In Flames)
» Don't stop for nothing, it's full speed or nothing! I'm taking down, you know, whatever is in my way! _ ('tallica)
» I am my own god, I do as I please. _ (Pain)
» Ninetynine, ninetynine knives! Ninetynine knives inside! Nobody gets out alive! _ (The Haunted)
Web: http://www.negativesignal.com - ICQ# 171585477 - Death to software patents! And TCPA too! "e uno!", diceva il boia.


Posted by Hamelin on 15-03-2004 16:37:

Grazie mille!

__________________
Bjarne Stroustrup: "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone."
Andrew S. Tanenbaum: "Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway."
Edsger Dijkstra: "Computer Science is no more about computers than astronomy is about telescopes."
Robert Firth: "One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs."
Donald Knuth: "A mathematical formula should never be 'owned' by anybody! Mathematics belong to God."


Posted by AlphaGamma on 15-03-2004 16:43:

L'ho scoperto anche io settimana scorsa. :)
Comunque non funziona nemmeno come dice Korn: non puoi fare una query utilizzando direttamente HTTP_POST_VARS. :sad:
Almeno, su Aruba non funge.

Quindi molto semplicemente faccio cosi'.
Supponiamo che HTTP_POST_VARS["pippo"] sia la nostra variabile. Dichiaro $pippo=HTTP_POST_VARS["pippo"], ed inserisco nella query $pippo. Questo inoltre ti da il vantaggio di non dover riscrivere il codice delle query.
Semplicemente

__________________
Attenzio', concentrazio', ritmo e VITALITÀ


Posted by korn on 15-03-2004 16:50:

Originally posted by AlphaGamma
L'ho scoperto anche io settimana scorsa. :)
Comunque non funziona nemmeno come dice Korn: non puoi fare una query utilizzando direttamente HTTP_POST_VARS. :sad:
Almeno, su Aruba non funge.


Uhm io ho sempre fatto così e non ho avuto problemi, però non su Aruba.

__________________
» Collect some stars to shine for you, and start today ‘cause there are only a few. _ (In Flames)
» Don't stop for nothing, it's full speed or nothing! I'm taking down, you know, whatever is in my way! _ ('tallica)
» I am my own god, I do as I please. _ (Pain)
» Ninetynine, ninetynine knives! Ninetynine knives inside! Nobody gets out alive! _ (The Haunted)
Web: http://www.negativesignal.com - ICQ# 171585477 - Death to software patents! And TCPA too! "e uno!", diceva il boia.


Posted by Hamelin on 15-03-2004 19:23:

Boh... io lo sto provando in locale e mi funziona benissimo... grazie ancora...

OT (parziale): a proposito... quali servizi di hosting con MySQL incluso consigliate?

__________________
Bjarne Stroustrup: "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone."
Andrew S. Tanenbaum: "Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway."
Edsger Dijkstra: "Computer Science is no more about computers than astronomy is about telescopes."
Robert Firth: "One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs."
Donald Knuth: "A mathematical formula should never be 'owned' by anybody! Mathematics belong to God."


Posted by AlphaGamma on 15-03-2004 19:59:

Aruba mi piace, tutto sommato. E' veloce come tempo di elaborazione script, hai spazio illimitato (50 mega di mysql), e costa poco.

Pero' farei a cambio con uno spazio postgres. :)

__________________
Attenzio', concentrazio', ritmo e VITALITÀ


Posted by korn on 15-03-2004 20:39:

Originally posted by AlphaGamma
Comunque non funziona nemmeno come dice Korn: non puoi fare una query utilizzando direttamente HTTP_POST_VARS. :sad:
Almeno, su Aruba non funge.


Per curiosità, che errore ti dà?

Scusa se faccio un appunto apparentemente banale, ma anche tu saprai che spesso sono le più piccole sviste a minare i programmi: quando hai montato la query in quel modo, avevi tolto gli apici dal nome dell'indice dell'array?

__________________
» Collect some stars to shine for you, and start today ‘cause there are only a few. _ (In Flames)
» Don't stop for nothing, it's full speed or nothing! I'm taking down, you know, whatever is in my way! _ ('tallica)
» I am my own god, I do as I please. _ (Pain)
» Ninetynine, ninetynine knives! Ninetynine knives inside! Nobody gets out alive! _ (The Haunted)
Web: http://www.negativesignal.com - ICQ# 171585477 - Death to software patents! And TCPA too! "e uno!", diceva il boia.


Posted by AlphaGamma on 16-03-2004 01:11:

Originally posted by korn
Per curiosità, che errore ti dà?


Non da errore. Semplicemente la variabile non la vede.
E quindi la query risulta sbagliata e mi da errore mysql.

Scusa se faccio un appunto apparentemente banale, ma anche tu saprai che spesso sono le più piccole sviste a minare i programmi: quando hai montato la query in quel modo, avevi tolto gli apici dal nome dell'indice dell'array?


Non ricordo, ma mi pare di si.
Ricordo anche di aver provato vari test prima di buttarla in query. :)

Adesso pero' mi fai venire qualche dubbio... :pensa:

__________________
Attenzio', concentrazio', ritmo e VITALITÀ


Posted by korn on 16-03-2004 09:37:

Originally posted by AlphaGamma
Adesso pero' mi fai venire qualche dubbio... :pensa:


Te l'ho detto proprio perché per esperienza personale so che a volte scrivi centinaia di righe di codice tecnicamente corretto e magari non funziona per una minima svista come quella... infatti ormai quando ho problemi col codice le prime cose che controllo sono le cavolate :)

__________________
» Collect some stars to shine for you, and start today ‘cause there are only a few. _ (In Flames)
» Don't stop for nothing, it's full speed or nothing! I'm taking down, you know, whatever is in my way! _ ('tallica)
» I am my own god, I do as I please. _ (Pain)
» Ninetynine, ninetynine knives! Ninetynine knives inside! Nobody gets out alive! _ (The Haunted)
Web: http://www.negativesignal.com - ICQ# 171585477 - Death to software patents! And TCPA too! "e uno!", diceva il boia.


Posted by Cr34t|v3 on 16-03-2004 11:30:

Soluzione alternativa>
Nel file di configurazione del php(php.ini) setta:
register.global = on

__________________
Debian rules
Linux User #305560

cerchi una casa in affito x le tue vacanze? Casa Vacanze Sicilia http://www.marsala.sicilia.it


Posted by holylaw on 16-03-2004 12:50:

guarda che deve essere:
register_globals = on , per settare le variabili globali :)

anche se non e' il massimo in termini di sicurezza......

__________________
La mia epoca ed io non siamo fatti l'uno per l'altro:questo è chiaro. Ma è da vedere chi di noi due vincerà il processo di fronte al tribunale dei posteri.
AV MJØDEN VART DU VIS OG KLOK, SÅ DREKKA MER!!!!
Le persone sagge parlano perché hanno qualcosa da dire.
Le persone sciocche perché hanno da dire qualcosa.


Posted by Cr34t|v3 on 16-03-2004 13:46:

si scusa distrattamente ho scritto il contrario ....
:-D
cmq ho trovato in giro molti server configurati in questo modo

__________________
Debian rules
Linux User #305560

cerchi una casa in affito x le tue vacanze? Casa Vacanze Sicilia http://www.marsala.sicilia.it


Posted by korn on 16-03-2004 15:28:

Originally posted by Cr34t|v3
si scusa distrattamente ho scritto il contrario ....
:-D
cmq ho trovato in giro molti server configurati in questo modo


Le vecchie versioni di PHP avevano le globals impostate su ON per default, quindi probabilmente molti server le tengono ON tutt'ora per non costringere gli utenti alla modifica di tutti gli script.

Ciononostante, se possibile sarebbe meglio evitare, gli sviluppatori le hanno messe OFF di default perché creano problemi di sicurezza...

__________________
» Collect some stars to shine for you, and start today ‘cause there are only a few. _ (In Flames)
» Don't stop for nothing, it's full speed or nothing! I'm taking down, you know, whatever is in my way! _ ('tallica)
» I am my own god, I do as I please. _ (Pain)
» Ninetynine, ninetynine knives! Ninetynine knives inside! Nobody gets out alive! _ (The Haunted)
Web: http://www.negativesignal.com - ICQ# 171585477 - Death to software patents! And TCPA too! "e uno!", diceva il boia.


All times are GMT. The time now is 11:09.
Show all 14 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.