Avatar billede peter_g_j Nybegynder
31. marts 2007 - 12:33 Der er 6 kommentarer og
1 løsning

Fejl i FORM til PHP

Er der nogen der kan se hvad der er galt her? Jeg er ved at lave noget login sjov. Filen "login_tjek.php" vises som en helt blank side.

Filen "login.html"
-----------------------------------
<html>
<form method="POST" action="login_tjek.php">
    <table>
        <tr>
            <td>Brugernavn:</td>
            <td><input type="text" name="brugernavn"></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" name="password"></td>
        </tr>
    </table>
    <input type="submit" value="Login">
</form>
</html>
---------------------------------------

Filen "login_tjek.php":
---------------------------------------
<html>
<?php
$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];

echo $password;            //En test for at se om den får password
echo $brugernavn;          //og brugernavn.

mysql_connect("localhost","06_65_dk","a43ZSJjs");
mysql_select_db("06_65_dk");
$result = mysql_query("SELECT * FROM bruger WHERE brugernavn='$brugernavn'");
$row = mysql_fetch_array($result);

if ($row['password'] == $password) {
    session_start();
    session_register('$row['id');
    header("location:../liste.php");
} else {
    echo 'Du har indtastet en ugyldig kode.';
};
?>
</html>
Avatar billede leif Seniormester
31. marts 2007 - 12:46 #1
1. Du skal nok ændre Password på dit webhotel med det samme !
Avatar billede peter_g_j Nybegynder
31. marts 2007 - 12:47 #2
Ups, ja... Tak
Avatar billede intenz Novice
31. marts 2007 - 12:48 #3
Der er flere fejl i login_tjek.php

Ændre den til:
<?php
session_start(); // Flyttet den herop da den skal stå øverst i filen, før noget bliver udskrivet (incl. <html>)
error_reporting( E_ALL ^ E_NOTICE ); // tilføjet denne så du kan se fejlmeddelser
$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];

echo $password;            //En test for at se om den får password
echo $brugernavn;          //og brugernavn.

mysql_connect("localhost","06_65_dk","a43ZSJjs");
mysql_select_db("06_65_dk");
$result = mysql_query("SELECT * FROM bruger WHERE brugernavn='$brugernavn'");
$row = mysql_fetch_array($result);

if ($row['password'] == $password) {
    session_register('$row['id');
//    header("location:../liste.php"); // Du kan ikke både sende headers her og udskrive før. Hvis header skal sendes må der ikke være noget udskrevet inden.
} else {
    echo 'Du har indtastet en ugyldig kode.';
};
?>
Avatar billede leif Seniormester
31. marts 2007 - 12:49 #4
Start med at brug "or die (mysql_error())"

mysql_connect("localhost","06_65_dk","a43ZSJjs") or die ("Connect: ".mysql_error());
mysql_select_db("06_65_dk") or die ("DBSelect: ".mysql_error());
$result = mysql_query("SELECT * FROM bruger WHERE brugernavn='$brugernavn'") or die ("QUERY: ".mysql_error());
Avatar billede peter_g_j Nybegynder
31. marts 2007 - 13:02 #5
Jeg er bange for fejlen ligger endnu tidligere, for jeg kan ikke få $password eller $brugernavn vist allerede i starten af filen.

leif: Tak for du gjorde mig opmærksom på mit password. Det er ændret nu, inden nogen fik lavet ulykker.
Avatar billede leif Seniormester
31. marts 2007 - 13:06 #6
Lav en simpel login_tjeck.php som har:
<?php
$brugernavn = $_POST["brugernavn"];
$password = $_POST["password"];

echo $password;            //En test for at se om den får password
echo $brugernavn;          //og brugernavn.

?>




Vises Brugernavn og password så ?
Avatar billede peter_g_j Nybegynder
31. marts 2007 - 13:19 #7
Kender i det når man har siddet og rodet med en fejl alt for længe, og det så er en trykfejl?
    session_register('$row['id');

Men intenz det hjalp at slå fejlmeddelelserne til :) Tak for hjælpen.
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