16. september 2008 - 02:08Der er
15 kommentarer og 1 løsning
Redirect til database side
Hejsa, jeg er i færd med at lave et login system. Det er min mening af jeg vil have tre rækker i min database. "Brugernavn" "password" og "page". Når Brugernavn og password er accepteret skal brugeren sendes til den side jeg har i den sidste række. Jeg har allerede fået hjælp herinde til det men det virkede desværre ikke. herunder paster jeg min checklogin.php
<?php ob_start(); $host="xx"; // Host name $username="xx"; // Mysql username $password="xx"; // Mysql password $db_name="xx"; // Database name $tbl_name="xx"; // Table name
// Connect to server and select databse. mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB");
// Define $myusername and $mypassword if(get_magic_quotes_gpc()) // Hvis der automatisk tilføjes slashes til specialtegn, fjern dem da. { $myusername=stripslashes($_POST['myusername']); $mypassword=stripslashes(md5($_POST['mypassword'])); // Krypter også password } else { $myusername=$_POST['myusername']; $mypassword=md5($_POST['mypassword']); // Krypter også password }
// Escape alle specialtegn i querien også. Så får du ikke så mange uheldige overraskelse i form af hacking. $sql="SELECT * FROM $tbl_name WHERE username='" . mysql_real_escape_string($myusername) . "' and password='" . mysql_real_escape_string($mypassword) . "'"; $result=mysql_query($sql);
// Mysql_num_row is counting table row $count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" session_register("myusername"); session_register("mypassword"); // header("location:"['$page']"); //<-- det er her problemet ligger exit; } else { echo "Forkert brugernavn eller kodeord"; }
ob_end_flush(); ?>
Forsøger jeg da at kører dette dokument godtager den login men sender ingen steder hen.
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
jeg kan slet ikke se meningen i hvad du skriver, overhovedet, at der skal bruges et array til at henvises til forstår jeg, men hvordan det rent teknisk skal sættes ind kan jeg ikke se, Og jeg mener da ikke jeg har afvist nogen forslag uden at afprøve dem først.
y; Nu har jeg forsøgt at erstatte den linie med din linie,
og den retunere stadig med "Forkert brugernavn eller kodeord" har tjekket login oplysningerne i databasen for at sikre at jeg logger med rigtige oplysninger, dette er tilfældet.
Ville det være lettere hvis man brugte header("location:"login_redirct.php"); og derefter i login_redirct.php sendte brugeren videre?
Det undrer mig lidt at ingen endnu har nævnt brugen af ob_start() og session_register()
Er det en fil du includer?
Anyway, med forbehold for fejl:
<?php
// Du bør ALTID undgå at bruge ob_start() // Lav/brug hellere scripts hvor det ikke er nødvendigt !!!!!
ob_start();
$host="xx"; // Host name $username="xx"; // Mysql username $password="xx"; // Mysql password $db_name="xx"; // Database name $tbl_name="xx"; // Table name
// Connect to server and select databse. mysql_connect($host, $username, $password)or die("cannot connect"); mysql_select_db($db_name)or die("cannot select DB");
// Gør det til en vane kun at hente de felter du skal bruge, i stedet for alle. // Her hentes brugernavn og page $sql = "SELECT username, page FROM ". $tbl_name ." WHERE username='" . $myusername . "' and password='" . $mypassword . "'";
$result = mysql_query($sql) or die (mysql_error());
// Definer aldrig en var, ( f.eks. $myusername ) og derefter bruge f.eks. $_SESSION["myusername"], // på servere med register_globals sat til on, går der bare ged i den for dig en eller anden dag!
// Brug $_SESSION og IKKE session_register() $_SESSION["brugernavn"] = $user;
showsource: Tjo, men det er vist ikke det største problem. Desuden tror jeg dette er et klassisk eksempel på: lav det for mig, - jeg er ligeglad med hvordan og hvorfor, bare det virker og jeg ikke har brugt mere end 5 minutter på at sætte mig ind i det.
Men hvis du vil følge den til døren, og bruge tid på at rette en tredje parts kode til, samt de fejl rettelsen af ob_start smider - ja så skal du være velkommen.
Jeg fik det til at virke, hvis nogen er interesseret endte den færdige kode med at være sådan her.
<?php ob_start(); $host="xx"; // Host name $username="xx"; // Mysql username $password="xx"; // Mysql password $db_name="xx"; // Database name $tbl_name="xx"; // Table name
Flot. Især at du brugte flere af løsningsforslagene herinde, også tog pointene selv...
(header("location: ".$row['page']);)
/y
Synes godt om
Ny brugerNybegynder
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.