Avatar billede advancedweb Nybegynder
15. maj 2004 - 09:46 Der er 6 kommentarer

Brugersystem Fejl?

Jeg har prøvet at skrive et lille brugersystem, på min website.

jeg har en upright.php og en upright-ok.php

når jeg går ind i formen og prøver at oprette en ny brger og gtrykker på opret siger den: fejl på linie 49

Prøv evt. www.advancedweb.dk/index2.php ude i højre side trykker du på opret bruger...Prøv så at se hvad der sker når man prøver at oprette sig.

databasen er oprettet og det hele skulle køre :-(

Koden:

<?php
require("mysql_config.php");
$upright=&$HTTP_POST_VARS['upright'];

if(empty($upright)){
?>
<p class="text">Udfyld venligst formen: Opret bruger</p>

<a href="upright.php">Klik her for at komme til formen</a>
<?
}else{
$username=&$HTTP_POST_VARS['username']; /*Brugernavn hentes fra opret-formen*/
$password=&$HTTP_POST_VARS['password']; /*Password hentes fra opret-formen*/
$password2=&$HTTP_POST_VARS['password2']; /*Password2 hentes fra opret-formen*/

if(empty($username) OR empty($password) OR empty($password2)){
?>
<p class="text">Udfyld venligst alle felterne i formen</p>

<a href="upright.php">Klik her for at komme tilbage til formen</a>
<?
}else{
if($password == $password2){
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$result=mysql_query("select username from users where username='$username'")
or die(mysql_error());
$number=$mysql_num_rows($result);
if($number > 0){
?>
<p class="text">Desvære, brugernavnet er optaget</p>
<?
}else{
mysql_query("insert into users (username, password) values ('$username', '$password'")
or die(mysql_error());
?>
<p class="text">Brugernavnet $username er oprettet!"</p>
<a href="loging.php">Klik her for at logge ind</a>
<?
}
}else{
?>
<p class="text">Skriv det samme password i felterne: "Password" og "Genatag password"</p>
<?
}
}
}  /*LIGE HER OMKRING SKULLE FEJLEN LIGGE*/
}
?>
Avatar billede sukos Juniormester
15. maj 2004 - 09:49 #1
hmm, hvad laver & foran &$HTTP_POST_VARS
Avatar billede sukos Juniormester
15. maj 2004 - 09:51 #2
Og brug hellere $_POST når nu du har en 4.3.4 version på serveren! :O)
Avatar billede sukos Juniormester
15. maj 2004 - 10:06 #3
<?php

if(isset($_POST["upright"])) {

$back = "<a href=\"upright.php\">tilbage</a>";

    if(trim($_POST["upright"]) == "") {
echo"Vælg et brugernavn! ". $back;
exit();
}
    if(trim($_POST["password"]) == "" || $_POST["password"] != $_POST["password2"]) {
echo"Password er forkert indtastet! ". $back;
exit();
}

require("mysql_config.php");
$con = mysql_connect($mysql_host, $mysql_user, $mysql_pw) or die ("Fejl ved connect til DB");
mysql_select_db($mysql_db, $con) or die ("Fejl ved valg af database");

$result=mysql_query("select `username` FROM `users` WHERE `username`='". $_POST["upright"] ."'") or die(mysql_error());

if(mysql_num_rows($result) !=0) {
echo"Brugernavnet er desværre optaget! ". $back;
exit();
}
$sql = "INSERT INTO `users` (`username`, `password`) VALUES ('". $_POST["username"] ."', '". md5($_POST["password"]) ."'";

if(true == mysql_query($sql)) {

echo"Brugernavnet ". $_POST["username"] ." er oprettet! <a href=\"loging.php\">Klik her for at logge ind</a>";
}else{
echo"Fejl ved oprettelse i DB";
}

}
?>

Tror jeg da! Er ikke testet.
Avatar billede sukos Juniormester
15. maj 2004 - 10:07 #4
Og så er password'et jo blevet md5 krypteret i DB'en!
Avatar billede advancedweb Nybegynder
16. maj 2004 - 21:43 #5
Nu hedder koderne.

NEW_USER.PHP:

<?php

if(isset($_POST["new_user"])) {

$back = "<a href=\"new_user.php\">tilbage</a>";

    if(trim($_POST["new_user"]) == "") {
echo"Vælg et brugernavn! ". $back;
exit();
}
    if(trim($_POST["password"]) == "" || $_POST["password"] != $_POST["password2"]) {
echo"Password er forkert indtastet! ". $back;
exit();
}

require("mysql_config.php");
$con = mysql_connect($mysql_host, $mysql_user, $mysql_pw) or die ("Fejl ved connect til DB");
mysql_select_db($mysql_db, $con) or die ("Fejl ved valg af database");

$result=mysql_query("select `username` FROM `users` WHERE `username`='". $_POST["username"] ."'") or die(mysql_error());

if(mysql_num_rows($result) !=0) {
echo"Brugernavnet er desværre optaget! ". $back;
exit();
}
$sql = "INSERT INTO `users` (`username`, `password`) VALUES ('". $_POST["username"] ."', '". md5($_POST["password"]) ."'";

if(true == mysql_query($sql)) {

echo"Brugernavnet ". $_POST["username"] ." er oprettet! <a href=\"login.php\">Klik her for at logge ind</a>";
}else{
echo"Fejl ved oprettelse i DB";
}

}
?>

MYSQL_CONFIG.PHP:

<?php
$mysql_host="localhost";
$mysql_user="advancedweb";
$mysql_pw="mitpassword";
$mysql_db="users";
?>

Nu siger den, når man prøver at oprette en bruegr...Fejl ved valg af database.
Så kan det vel kun være min database det er galt med.... Eller hvad siger i...Det kan vel ikke være andet :-)
Avatar billede sukos Juniormester
23. maj 2004 - 18:47 #6
$mysql_db er defineret forkert, altså forkert databasenavn.

Men du har måske fundet ud af det? :O)
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