Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  2 592
Sur og sarkastisk
droppboks's Avatar
Her har jeg noen script som IKKE jeg står bak, men jeg trenger hjelp til å debugge dem:

HTML-kode

<form action="nybrukeraction.php" method="post"> 
Navn<br>
<input type="text" name='navn' maxlenght="60"><br>
Din e-mailadresse<br>
<input type="text" name='epost' maxlenght="60"><br>
Ønsket brukernavn<br>
<input type="text" name='brukernavn' maxlenght="30"><br>
Passord<br>
<input type="password" name='passord' maxlenght="30"><br>
Gjenta passord<br>
<input type="password" name='gjentapassord' maxlenght="30"><br>
<input type="submit" value="Registrer">
</form>
Her er sjemaet til Registrering

Kode

<?php
if($_POST['navn'] && $_POST['epost'] && $_POST['brukernavn'] &&
$_POST['passord'] && $_POST['gjentapassord'])
{
$email_sjekk = ereg("^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@
()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@
()$#><;*%?&+='\{}æøåÆØÅ\.]+$",
$_POST['epost']);
if($email_sjekk == "1")
{
//Sjekker om passordene er like, hvis de er like så går vi videre!
if($_POST['passord'] == $_POST['gjentapassord'])
{
//Logger på databasen. Legg inn din egen info
$hostname = "localhost";
$user = "*****";
$password = "*****";
$db = "*****";
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig
å få kontakt med database");
@mysql_select_db($db); //Sjekker om brukernavnet som er oppgitt finnes i databasen
$sjekker_brukernavn = @mysql_query("SELECT brukernavn FROM brukere WHERE
brukernavn='$_POST[brukernavn]'");
//Her går vi videre hvis ikke brukernavnet er likt med noen i databasen
if(@mysql_num_rows($sjekker_brukernavn) == 0)
{
//Krypterer passordet
$passord = crypt($_POST['passord']);
//Legger inn all infoen i databasen
$legger_inn_info = @mysql_query("INSERT INTO brukere (brukernavn, passord,
navn, epost) VALUES ('$brukernavn', '$passord', '$navn', '$epost')");
//Hvis det ikke gikk å legge inn info så printer ut en feilmelding
if(@mysql_affected_rows($legger_inn_info) == "0")
{
print("Det skjedde en feil i registreringen! Vennligst gå tilbake og
prøv på nytt!");
}
else
{
print("Alle dine info er nå lagt til i databasen. Du kan nå bruke
loginnsidene uten hindringer!");
}
}
else
{
print("Det brukernavnet som du oppga finnes allerede i databasen. Gå
tilbake og finn på ett annet!");
}
}
else
{
print("Passordene er ikke like! Gå tilbake og prøv på
nytt!");
}
}
else
{
print("Emailadressen du oppga er ikke gyldig!<br>\n");
}
}
else
{
print("Du må fylle ut alle feltene for å komme videre");
}
?>
Her er Scriptet
Men problemet er at kun det krypterte passordet legges i databasen, ingen annen info.

HTML-kode

<form action="logginnaction.php" method="post">
Brukernavn<br>
<input type="text" name="brukernavn" maxlenght="30"><br>
Passord<br>
<input type="password" name="passord" maxlenght="30"><br>
<input type="submit" value="Logg inn">
</form>
Loginn-Sjemaet

Kode

<?php
if($_POST['brukernavn'] && $_POST['passord'])
{
//Logger på databasen. Legg inn din egen info
$hostname = "localhost";
$user = "*****";
$password = "*****";
$db = "*****";
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig
å få kontakt med database");
@mysql_select_db($db);
//Lager krypteringsfunksjonen
function sjekker_pw($oppgitt, $lagret)
{
$salt = substr($lagret, 0, CRYPT_SALT_LENGTH);
$oppgitt_kryptert = crypt($oppgitt, $salt);
return($lagret == $oppgitt_kryptert);
}
//Sjekker brukernavn
$sjekker_brukernavn = @mysql_query("SELECT brukerid,passord FROM brukere
WHERE brukernavn='{$_POST['brukernavn']}'");
if(@mysql_num_rows($sjekker_brukernavn) == 0)
{
print("Feil brukernavn");
}
else
{
//Får det krypterte passordet fra databasen
$hentet_passord = @mysql_fetch_array($sjekker_brukernavn);
//Sjekker om brukernavn og passord er likt
if(!(sjekker_pw($_POST['passord'], $hentet_passord['passord'])))
{
print("Passordet var feil");
}
else
{
//Lagrer passord og brukernavn i sessions
session_start();
$_SESSION['innlogget'] = 1;
$_SESSION['brukernavn'] = $brukernavn;
$_SESSION['passord'] = $hentet_passord['passord'];
//Sender brukeren videre til neste side
header("Location: innlogget.php");
}
}
}
else
{
print("Du må fylle ut både brukernavn og passord!");
}
?>
Her er scriptet (Disse funker helt fint etter å ha lagt info i DBn manuelt)

Kode

<?php
session_start();
if($_SESSION['brukernavn'] && $_SESSION['passord'])
{
//Logger på databasen. Legg inn din egen info
$hostname = "localhost";
$user = "*****";
$password = "*****";
$db = "*****";
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig
å få kontakt med database");
@mysql_select_db($db);
//Sjekker passord og brukernavn med database
$henter_bruker = @mysql_query("SELECT brukerid FROM brukere WHERE brukernavn='{$_SESSION['brukernavn']}'
AND passord='{$_SESSION['passord']}'");
if(@mysql_num_rows($henter_bruker) == 0)
{
print("Feil brukernavn og/eller passord!");
}
}
else
{
include('start.php');
}
?>
Her er innlogget.php (som jeg hadde tenkt skulle Includeres i alle filene)

Start.php (Men

Kode

<?php echo ($_SESSION['brukernavn']); ?>
funker ikke)


Kan noen hjelpe meg med SESSIONen og Registreringsscriptet?
Trigonoceps occipita
vidarlo's Avatar
Donor
Tipper du kjører med register_globals av, og da er ikkje variablene du prøver å stappe inn aktive.
Sur og sarkastisk
droppboks's Avatar
Trådstarter
Sitat av vidarlo
Tipper du kjører med register_globals av, og da er ikkje variablene du prøver å stappe inn aktive.
Vis hele sitatet...

Hvordan finner jeg ut det (PS: XAMPP)