Avatar billede ib_14 Nybegynder
06. februar 2003 - 13:40 Der er 15 kommentarer og
1 løsning

hvordan foreholder jeg mig til register_globals OFF

jeg har lavet en hjemmeside i php og skal register_globals OFF sådanne jeg kan lægge oplysninger ind i databasen for min udbyder siger noget med at register_globals OFF er der nogle der ved hvordan det gørres
Avatar billede ghazaleh Nybegynder
06. februar 2003 - 13:45 #1
Denne debat kan måske svare på dit spørgsmål? (er dog ikke helt sikker på hvad du mener)

http://www.eksperten.dk/spm/313236
Avatar billede ib_14 Nybegynder
06. februar 2003 - 14:26 #2
<html><body>

</body></html>
<center>
<?php
  $connection = mysql_connect("mysql.ibs13.dk","ibs13dk","heu67ybt");
  mysql_select_db("ibs13dk", $connection);


if ($form_name && $form_brugernavn && $form_pass && $form_email) {
    mysql_query("insert into users (name, brugernavn, pass, email) values ('$form_name', '$form_brugernavn', '$form_pass', '$form_email')");
}
else {
    echo ('
        <form method="POST" action="test.php">
            Navn: <br><input type="text" name="form_name" size="15"></br>
            Brugernavn: <br><input type="text" name="form_brugernavn" size="20"></br>
            Pass: <br><input type="text" name="form_pass" size="15"></br>
            Email: <br><input type="text" name="form_email" size="20"></br>
            <input type="Submit" value="Tilmeld" name="B1"><input type="Reset" value="Slet" name="B2">
        </form>
');
}
  $result = mysql_query("select * from users");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    $rownumber = 1;
    while($row = mysql_fetch_array($result)) {
    print "$rownumber - $row[name] - $row[brugernavn] - $row[email] <br>";
      $rownumber = $rownumber + 1;
    }
  }


?>
   
<a href="tabel.php">Startside</a>
min kode ser sådanne ud og virker lokalt men på min udbyders server er den sat til global off så skal bruge en kode der vil virke
Avatar billede ghazaleh Nybegynder
06. februar 2003 - 14:32 #3
<html><body>

</body></html>
<center>
<?php
  $connection = mysql_connect("mysql.ibs13.dk","ibs13dk","heu67ybt");
  mysql_select_db("ibs13dk", $connection);


if ($_POST['form_name'] && $_POST['form_brugernavn'] && $_POST['form_pass'] && $_POST['form_email']) {
    mysql_query("insert into users (name, brugernavn, pass, email) values ('$form_name', '$form_brugernavn', '$form_pass', '$form_email')");
}
else {
    echo ('
        <form method="POST" action="test.php">
            Navn: <br><input type="text" name="form_name" size="15"></br>
            Brugernavn: <br><input type="text" name="form_brugernavn" size="20"></br>
            Pass: <br><input type="text" name="form_pass" size="15"></br>
            Email: <br><input type="text" name="form_email" size="20"></br>
            <input type="Submit" value="Tilmeld" name="B1"><input type="Reset" value="Slet" name="B2">
        </form>
');
}
  $result = mysql_query("select * from users");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    $rownumber = 1;
    while($row = mysql_fetch_array($result)) {
    print "$rownumber - $row[name] - $row[brugernavn] - $row[email] <br>";
      $rownumber = $rownumber + 1;
    }
  }


?>
Avatar billede ib_14 Nybegynder
07. februar 2003 - 09:21 #4
den opretter et nyt id i tabellen men den sætter ikke name brugernavn pass email ind i tabellen
Avatar billede ib_14 Nybegynder
07. februar 2003 - 09:23 #5
kan du sige hvad der evt. kunne være galt før gjore den slet ingen ting nu laver den da et id. mere
Avatar billede ghazaleh Nybegynder
07. februar 2003 - 09:27 #6
ok så skal du også lige have skiftet denne linie ud:

mysql_query("insert into users (name, brugernavn, pass, email) values ('$form_name', '$form_brugernavn', '$form_pass', '$form_email')");

med denne:

mysql_query("insert into users (name, brugernavn, pass, email) values ('$_POST['form_name']', '$_POST['form_brugernavn']', '$_POST['form_pass']', '$_POST['form_email']')");
Avatar billede ghazaleh Nybegynder
07. februar 2003 - 09:30 #7
Her kan du læse lidt om hvordan man arbejder med variabler når register globals = off:

http://www.php.net/manual/en/security.registerglobals.php
Avatar billede ib_14 Nybegynder
07. februar 2003 - 09:41 #8
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in d:\home\ibs13dk\www\hej\flemming\test.php on line 11
så gik det helt galt
Avatar billede ib_14 Nybegynder
07. februar 2003 - 09:44 #9
har prøvet at læse den forklaring giver ikke helt mening er lidt ny i dette
Avatar billede thomasledet Nybegynder
11. februar 2003 - 00:05 #10
øj øj øj! det gør jo helt ondt at se på din kode! især når du direkte og i al offentlighed fortæller, hvor man kan finde din ret slemme sikkerhedsfejl... på få sekunder kan enhver idiot slette hele din database (og måske endda mere)...

søg på google og på diverse sikkerhedssites omkring SQL-injection...
Avatar billede thomasledet Nybegynder
11. februar 2003 - 00:05 #11
(beklager det eller lidt off-topic post... men jeg synes bare lige, at jeg ville gøre opmærksom på problemet...)
Avatar billede ib_14 Nybegynder
12. februar 2003 - 09:13 #12
jo men ved det jo godt tænkte først over det senere men for min udbyder til at ændre koden når jeg er færdig lort sker eller shit happens men så var det jo godt at jeg ikke kan få noget ind i den database
Avatar billede ib_14 Nybegynder
12. februar 2003 - 09:16 #13
jeg må se hvad det SQL-injection kan gøre
Avatar billede ib_14 Nybegynder
25. februar 2003 - 09:13 #15
ok
Avatar billede thomasledet Nybegynder
25. februar 2003 - 20:16 #16
tak for point...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester