Avatar billede akki Nybegynder
18. februar 2003 - 11:06 Der er 10 kommentarer

har brug for hjælp med mit script

Har fået lavet min egen win2000 server med php og mysql.

har taget mine scripts fra min gamle server, og nu er der med et et par stykker af dem der ikke virker mere, har næsten fået løst problemet med min gæstebog http://exp.dk/spm/318680 .

har nu problem med at logge på, samt at oprette bruger.
mit opret bruger script ser sådan ud.

ny2.php

<form action="add_profil.php" method="post">
        Ønsket brugernavn:<br>
        <input type="text" size="30" name="username" maxlength="15" class="input">
        <p> Ønsket password:<br>
          <input type="password" size="30" name="password" maxlength="15" class="input">
        <p> Din e-mail:<b><br>
          <input type="text" size="30" name="email" maxlength="50" class="input">
          </b>
        <p> <b>
          <input type="submit" name="submit" value="Opret min profil" class="button">
          </b>
      </form>

*-/-*-*--*-add_profil.php*-*-*-*-*

<?
  $new_password = md5($password);

?>

<!-- her skal <HTML> starte! -->

<?
  if (!$username || !$new_password || !$email)
    {
      echo "<font color=\"red\">Du skal udfylde alle tre felter inden du kan fortsætte!</font>";
      exit();
    }
  else
    {
      include("db_ind.inc");
      $tjek = mysql_query("SELECT * FROM profiler WHERE username = '$username'");
      if (mysql_num_rows($tjek))
        {
          echo "<font color=\"red\">Det ønskede brugernavn findes allerede!</font>";
          exit();
        }
      else
        {
          addslashes($username);
          addslashes($new_password);
          addslashes($email);
          include("db_ind.inc");
          $add_profil = mysql_query("INSERT INTO profiler (username, password, email)" . "VALUES ('$username', '$new_password', '$email')");
        mail($email, "Oprettelse af din profil på class-154.tk", "Hej $username....\n\n Du har oprette en personlig profil på class-154.tk, her er de data der er registreret.\n Vi vil bede dig om at logge ind på siden, og gå ind under ret profil, og udfylde resten af dine oplysninger.\n\n Brugernavn / Loginnavn: $username\n Password: $password\n E-mail: $email\n\n Vi ønsker dig rigtig god fornøjelse med dit medlemsskab.\n\n Med Venlig Hilsen\n\n class-154.tk","From: webmaster@ghpige.dk\nReply-To: webmaster@ghpige.dk");       
                    echo "Din profiler er nu blevet oprettet.";
                    echo " <br>";
                    echo " Følgene er blevet registreret om dig...";
                    echo " <br>";
                    echo "Dit brugernavn:";
                    echo " <br>";
                    print $username;
                    echo " <br>";
                    echo " <br>";
                    echo "Dit password:";
                    echo " <br>";
                    print $password;
                    echo " <br>";
                    echo " <br>";
                    echo " <A HREF=adminside.php>tilbage</a>";
        }
    }
?>
Avatar billede akki Nybegynder
18. februar 2003 - 11:07 #1
glemte lige at fortælle...

når jeg udfylder felterne i ny2.php ... giver den mig denne meddelese

/// Du skal udfylde alle tre felter inden du kan fortsætte!

selvom alle felterne er udfyldt
Avatar billede avminarm Juniormester
18. februar 2003 - 11:18 #2
Det er nok fordi du bruger en version af PHP der er >= 4.2.0 derfor skal dine variabler skiftes ud eller i din PHP ini skal du rettet register_globals=Off til On, men det er ikke tilrådeligt pga sikker hed
Avatar billede avminarm Juniormester
18. februar 2003 - 11:19 #3
De variabler der skla skiftes er:

$new_password = md5($password);
skal være
$new_password = md5($_POST['password']);

if (!$username || !$new_password || !$email)
skal være
if (!$_POST['username'] || !$_POST['new_password'] || !$_POST['email'])
Avatar billede avminarm Juniormester
18. februar 2003 - 11:20 #4
og de skal selvfølgelig rettes hele vejen igennem scriptet
Avatar billede rzj Nybegynder
18. februar 2003 - 11:27 #5
avminarm>> Nix, ikke nødvendigt. Han bruger jo ikke globale vars. i forvejen. Og det gælder da stadig i nye versioner at man kan tilgå vars. uden at globals er sklået til.

Næ, jeg tror fejlen ligger i din md5(). Mon Windows servere understøtter md() hash værdier?
Jeg har lige testkørt dit script (dog uden db osv.) og det virker fino. Men jeg bruger også Apache.
Avatar billede avminarm Juniormester
18. februar 2003 - 12:08 #6
rzj>> hvordan klan du se at han ikke bruger globale vars i forvejen?? - og jeg er forvirret?? - når register_globals er sat til Off, ken man da ikke tilgå variablerne når de sendes med en form, med mindre man anvender $_POST eller lign??
Avatar billede rzj Nybegynder
18. februar 2003 - 12:22 #7
avminarm>> ja du har selvfølgeligt ret ;-) Det var mig der fik en hjerne-bug...

akki>> Dvs. anvende såvidt muligt altid: $_POST['password'] osv. så undgår du problemer ift. register_globals = off/on osv....
/raz
Avatar billede avminarm Juniormester
18. februar 2003 - 13:07 #8
nååår ok ;o), du fik mig skisme lige rystet et øjeblik
Avatar billede tefcke Nybegynder
18. februar 2003 - 17:13 #9
2 små programmerings kommentarer!

(1) Jeg kan se at du muligvis kan komme til at includerer den samme fil 2 gange, hvilket kan give nogen problemer, da der vil brokke sig over at du prøver at erklære de samme funktions navne 2 gange!

Bruge i stedet include_once() begge steder, så er du sikker på at der ikke kommer fejl der!


(2) exit() - Gør at du afbryder ALT script eksekvering på det sted exit() bliver kaldt, hvilket højst sandsynligt vil resulterer i at du ikke får afsluttet HTML-tags du har startet før exit() blev kaldt.
Browser som IE er fuldstændig ligeglade med det, men andre browser er ikke så tilgivende.
Prøv i stedet at få kodet dine scripts, så du aldrig får brug for exit()!
Avatar billede avminarm Juniormester
20. marts 2003 - 16:16 #10
lukketid?
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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