[PHP] register globals troubles

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wanneer ik register globals op "On" zet, dan werkt alles prima.
Maar ik wil graag 'netjes' coden en dus register globals op "Off" zetten, maar ik weet niet wat ik fout doe.

Dit werkt dus niet:
PHP:
1
2
3
4
5
6
7
8
mysql_connect($hostname, $user, $password);
mysql_select_db($database) or die ("Geen connectie met database mogelijk!" . mysql_error());

if(IsSet($submit))
$sql = "INSERT INTO berichten VALUES ('$_POST['nick']', '$_POST['bericht']', '$_POST['signature']')";
$result = mysql_query($sql) or die ("Onmogelijk! " . mysql_error());

print ("Recorded!");


Ik krijg dan de foutmelding: "query was empty".

Acties:
  • 0 Henk 'm!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 16:24

mulder

ik spuug op het trottoir

Je doet een INSERT, volgens mij krijg je dan TRUE of FALSE terug.

oogjes open, snaveltjes dicht


Acties:
  • 0 Henk 'm!

  • Mexicanos
  • Registratie: Juli 2001
  • Niet online
Is de variabele $submit ook niet toevallig een global???

Doordat je geen { } hebt gebruikt bij de if statement maakt ie de variabele Query niet aan maar probeert bij hem dus wel uit te voeren.

[ Voor 56% gewijzigd door Mexicanos op 14-02-2003 01:23 . Reden: ff wat verdere uitleg ]


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 16:43

Kees

Serveradmin / BOFH / DoC
Je moet inderdaad $submit vervangen door $_POST['submit'], en tevens al je if/then/else/whil/for etc loops voorzien van brackets.

Verder kan je ook beter $sql = "...." . $_POST['nick'] . "........";
of: $sql = "......... $_POST[nick] ......."; gebruiken

[ Voor 70% gewijzigd door Kees op 14-02-2003 01:57 ]

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

Verwijderd

Als je naar de kleur van je query kijkt zie je al waar het fout gaat...
PHP:
1
$sql = "INSERT INTO berichten VALUES ('$_POST['nick']', '$_POST['bericht']', '$_POST['signature']')";

Moet dus zo:
PHP:
1
$sql = "INSERT INTO berichten VALUES ('".$_POST['nick']."','".$_POST['bericht']."','".$_POST['signature']."')";

Acties:
  • 0 Henk 'm!

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
PHP:
1
2
3
4
if(IsSet($_POST['submit'])) {
$sql = "INSERT INTO berichten VALUES ('$_POST['nick']', '$_POST['bericht']', '$_POST['signature']')"; 
$result = mysql_query($sql) or die ("Onmogelijk! " . mysql_error()); 
}

Combinatie van de fouten :)
Hij kent $submit niet, en gaat daardoor de volgende regel niet uitvoeren. De regel erna WEL! Daarom: haakjes, en de juiste var checken ($_POST['submit']) ;)

Acties:
  • 0 Henk 'm!

Verwijderd

en dan om het compleet te maken eerst ook maar even kijken wat er nou precies in die vars zit voordat je ze die query in douwt :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank, dank! :)

Werkt als een trein nu, dat van die submit was erg dom, dat had ik zelf moeten zien dat dat ook een global was.
Zonder die aanhalingstekens wilde ie niks in de database zetten, met aanhalingstekens wel!
Pagina: 1