Avatar billede Fiber Bjørn Juniormester
26. juni 2010 - 18:07 Der er 3 kommentarer og
1 løsning

Udskriv fejl tekst hvis $email ikke er = $row[email]

Jeg er ved at prøve at tjekke

om E@mail addressen findes databasen.
om det indtastet kodeord er det samme som kodeordet i databasen.
om feltet godkendt er fyld med "x" 

jeg har udskrevet alle disse felter og de er ok. Den rigtige tekst er i de rigtige felter.

men denne koden kan ikke teste om der er lighed mellem disse værdier

Problem området er skrevet med fed skrift

<?
session_start();
require("config.php");
connect();

  if( isset($_GET["action"]) && $_GET["action"] == "logout" )
  {
      $_SESSION["person_email"] = $row[""];
      $_SESSION["person_hold"] = $row[""];
      $_SESSION["person_navn"] = $row[""];
      $_SESSION["person_id"] = $row[""];
      $_SESSION["person_status"] = $row[""];
     
      header("Location: http://www.dgisydvestgymnastik.dk/index.php");
}


  if( isset($_GET["action"]) && $_GET["action"] == "login")
  {
    $email = mysql_real_escape_string($_POST["skriv_email"]);
    $kodeord = mysql_real_escape_string($_POST["skriv_kodeord"]);
   
    if($_POST['skriv_email'] == "" || $_POST['skriv_kodeord'] == "")
   
    {    }
else {


    $sql = "SELECT * FROM hold WHERE email='".$email."' LIMIT 1";
    $res = mysql_query($sql);
    $row = mysql_fetch_array($res);
echo $email;
echo $kodeord;
echo "$row[email]";
echo "$row[kodeord]";


                    $errors = 0;
                   
                    if (!$row["godkendt"] == "x") {
                      $error_list = "<li>Du er ikke godkendt af din Instruktør:</li>\n";
                      $errors++;
                    }
                    if (!$row["email"] == "$email") {
                      $error_list = "<li>Den indtastede E@mail findes ikke:</li>\n";
                      $errors++;
                    }
                    if (!$row["kodeord"] == "$kodeord") {
                      $error_list = "<li>Det indtastede Kodeord passer ikke til E@mailen:</li>\n";
                      $errors++;
                    }
                            if ($errors > 0) {
                              print "<p>Der blev fundet følgende fejl i din indtastning:</p>\n";
                              print "<ul>\n";
                              print "$error_list";
                              print "</ul>\n";
                              print "<p>Udfyld felterne igen.</p>\n";
                            } else {

    if( mysql_num_rows($res) > 0 )
    {
 
        $_SESSION["person_email"] = $row["email"];
        $_SESSION["person_hold"] = $row["hold"];
        $_SESSION["person_navn"] = $row["navn"];
        $_SESSION["person_id"] = $row["id"];
        $_SESSION["person_status"] = $row["brugerstatus"];
        $_SESSION["person_godkendt"] = $row["godkendt"];
       
        $_SESSION["hold"] = $_GET["hold"];
        $_SESSION["forside"] = $_GET["hold"]."_forside_intern";
        $_SESSION["setup"] = $_GET["hold"]."_setup";
        $_SESSION["counter"] = $_GET["hold"]."_counter";
        $_SESSION["online"] = $_GET["hold"]."_online";
        $_SESSION["musik"] = $_GET["hold"]."_musik";
    }
    else
    {
    }
  }}}

?>
Avatar billede intenz Novice
26. juni 2010 - 18:09 #1
Der skal stå:
if ($row["godkendt"] != "x") {

...osv for alle din statements.

if (!$row["godkendt"] == "x") {
er forkert.
Avatar billede Fiber Bjørn Juniormester
26. juni 2010 - 19:03 #2
#1

Hvorfor udskrives alle fejl ikke?

hvis det er fejl i kodeord og godkendt kommer der kun en af fejlene til at stå på siden.

Men laver jeg fejlene enkeltvis, vises begge fejl også enkeltvis ude problemer.

Jeg skulle da mene at alle fejlene udskrives ved denne med denne

                            if ($errors > 0) {
                              print "<p>Der blev fundet følgende fejl i din indtastning:</p>\n";
                              print "<ul>\n";
                              print "$error_list";
                              print "</ul>\n";
                              print "<p>Udfyld felterne igen.</p>\n";

Hvis du vil have point for dette ekstra spørgsmål opretter jeg gerne et nyt spørgsmål.
Avatar billede intenz Novice
26. juni 2010 - 20:32 #3
Fordi du overskriver $error_list ved hver fejl. Så er det kun den sidste ændring der vises, fordi de tidligere er overskrevet.

Du gør:
$error_list = "Fejl 1";
$error_list = "Fejl 2";
print $error_list; // udskriver fejl 2.

Du skal gøre:
$error_list = "Fejl 1";
$error_list .= "Fejl 2"; // tilføjer fejl 2 efter fejl 1 i variablen.
print $error_list; // udskriver begge fejl.
Avatar billede Fiber Bjørn Juniormester
27. juni 2010 - 00:22 #4
1000 tak for hjælpen endnu engang :)
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