Toon posts:

PHP4 vraagje

Pagina: 1
Acties:
  • 64 views sinds 30-01-2008

Verwijderd

Topicstarter
hallo,

ik ben even aan het kijken of PHP wat voor mij is
maar nu loop ik gelijk tegen een probleem aan.

Het is me gelukt om PHP4 met apache 2 en mysql 5 te installeren en te configueren.
Alles draait op dit moment. maar ik heb een probleem met een scriptje.
ik wil een simpel guestbook maken waarvoor ik een invoerschermpje heb gemaakt en een submit knop die dan de gegevens moet doorsturen naar de database middels een ander script.
echter geeft hij aan dat de variabele niet gedefinieerd is ( ik denk vanuit script 1 )
ik dacht dat het te maken had met die register globals maar die heb ik zowel met on als off geprobeert zonder resultaat.. wie kan me helpen?

belangrijkste delen Script 1 (sign.php):
<form method=post action="create_entry.php">
<input type=submit name=submit value="Sign!">
<input type=reset name=reset value="Start Over">

script 2 create entry:

<?php
include("connect.php");
if ($submit == "Sign!")
{
$query = "insert into guestbook
(name,location,email,url,comments) values
('$name', '$location', '$email', '$url', '$comments')"
;
mysql_query($query) or
die (mysql_error());
?>
<h2>Thanks!</h2>
<h2><a href="view.php">View My Guestbook</a></h2>
<?php
}
else
{
include("sign.php");
}
?>

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Om welke regel en welke variabel gaat het dan? Waarom zou je trouwens met PHP4 beginnen als PHP5 al uit is? Register globals hoort overigens uit te staan en je hoort dan gebruik te maken van $_GET['var'] en $_POST['var'].

Noushka's Magnificent Dream | Unity


  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 00:04
Ga eerst maar wat leren :P
Buiten dat het niet werkt met slechts $submit... en je het zou vervangen met het goede $_POST['submit'] dan heb je een gevaarlijk script geschreven.
Stel je namelijk eens voor dat iemand als comment opgeeft: '; DROP TABLE ***; '
(met de aanhalingstekens)
Dan verwijdert diegene de tabel *** in je database.
Dit fenomeen (willekeurige queries kunnen uitvoeren door een willekeurige bezoeker) heet SQL-injection.

offtopic:
Drontenaar :P

[ Voor 27% gewijzigd door gertvdijk op 18-01-2006 08:29 ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


  • Justifier
  • Registratie: December 2004
  • Laatst online: 06-04-2024
Verwijderd schreef op woensdag 18 januari 2006 @ 08:19:


code:
1
2
3
4
5
6
7
8
9
<?php
include("connect.php");
[b]if ($submit == "Sign!")[/b]{
        $query = "insert into guestbook
            (name,location,email,url,comments) values
            ('$name', '$location', '$email', '$url', '$comments')"
        ;
        mysql_query($query) or
                die (mysql_error());
dat dik gedrukte kan niet want daar staat dat als $submit sign is dan gaat hij door maar je hebt nergens neergezet van $submit is.

[ Voor 23% gewijzigd door Justifier op 18-01-2006 08:26 ]


Verwijderd

Topicstarter
zo wat een aandacht deze morgen :)
ja logisch Justifier.. hij geeft ook aan dat het om de $submit variabele gaat die niet gedefinieerd is.
Dank je wel Gert.. duidelijk..ik ben zoals aangegeven net begonnen en draait het local dus op zich zal iemand dat nu niet bij me doen.. maar bedankt voor de waarschuwing..
Ik ga even kijken of ik er uit kom met $_post..
dank jullie allen

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Stop AI Slop

Je kunt dit injection afvangen door één functie te schrijven die je in je hele applicatie gebruikt.

Deze functie checkt dan je POST gegevens op gevaarlijke woorden, zoals "drop, insert, create" enz.

Althans, zo deed ik het in ASP, en sinds mijn nieuwe host enkel PHP ondersteunt zal ik nog moeten uitvinden of dit in PHP ook zo werkt.

In ieder geval valt dit topic onder puur debugwerk en ben ik bang dat een langskomende mod niet blij wordt :P

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 14-04 16:14
Leer asjeblieft zo snel mogelijk af om "if ($submit == "Sign!")" te gebruiken :)

Gebruik bij voorkeur;
PHP:
1
2
3
4
5
<?
if($_SERVER['REQUEST_METHO(D'] == "POST") {
  ...
}
?>

Verder lijkt het me een kwestie van debuggen om de fout te vinden. Echo her en der je variabelen om te zien of er in zit wat je verwacht dat er in zit.

@CodeCaster
Die functie is al voor je geschreven; mysql_escape_string()

[ Voor 57% gewijzigd door frickY op 18-01-2006 09:21 ]


  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 00:04
frickY schreef op woensdag 18 januari 2006 @ 09:19:
[knip]
@CodeCaster
Die functie is al voor je geschreven; mysql_escape_string()
Ik wou net zeggen... :P

@ TS
Wat ik je zou willen aanraden is een Beginnersboek over PHP/MySQL. Ik heb deze. Er is ook een PHP4 versie. Het heeft me zeer goed op weg geholpen. Na een week heb ik het boek niet meer gebruikt, maar toch staan er voorbeelden in van onschatbare waarde voor een beginner die snel wat wil leren.

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

En daarmee wil ik dit topic graag ook afsluiten. Het merendeel van de foutjes die in dit topic genoemd worden staat namelijk ook goed uitgelegd in onze FAQ. Tyn_flr, ik zou het fijn vinden als je die in het vervolg even wil doornemen voordat je een topic opent. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.