Avatar billede mini97ad Nybegynder
20. april 2003 - 17:50 Der er 17 kommentarer og
1 løsning

Hvorfor kan jeg ikke få min password validering til at virke

Hej jeg har har store problemer med at få min passwordvalidering til at virke.

Jeg har en formular der henter nogle data ind. Til posten er der et password tilknyttet. Når jeg sender formularen validere jeg for om passworded er korrekt således:

if (!$password=="$realpassword") {
    echo "<p><font color='#FF0000'>Du har ikke indtastet det rigtige password - prøv igen</p></font>\n";

Problemet er at ligegyldigt hvad jeg indtaster, så fanger denne validering ikke at password er forkert. Det eneste som den reagere på er hvis password ikke udfyldes overhovedet.

$realpassword som den validere det indtastede password med sætter jeg lig med værdien af arrrayen som tidligere har hentet det orginale password.

Hvad går galt?

Her er hele koden for siden:

<?
include_once ("../functions/functions.inc.php");
include_once ("../functions/functions_db.inc.php");

//Header og basal kode kaldes
echo writeHTMLheader("Projektbørs - opdater projekt");


echo "<center>\n";
echo "<h1>Projektbørs - opdater projekt</h1>\n";


//SQL sætning til at vælge data fra tabellen projekttitel
$strSQL = "SELECT projekttekst, password FROM projekter WHERE projekttitel='$projekttitel'";

//SQL kommandoen køres med funktion execute der er i filen functions_db.inc.php
$resultat = executeSQL($strSQL);

//resultatet smides i en array
$querydata = mysql_fetch_row($resultat);

echo"<div align='center'>";


//Her kommer formularen, hvor projektbeskrivelsen kan opdateres.
echo "<form method='POST' action='opdater_projekt.php' name='opdater_projekt'>";


echo "<input type='hidden' value='$projekttitel' name='projekttitel'>";

echo "<table border='0' cellpadding='5' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='600' id='AutoNumber1'>\n";
  echo "<tr>\n";
    echo "<td width='100%' colspan='2'><p align='center'><textarea rows='8' name='projekttekst' cols='56'>".$querydata[0]."</textarea></p></td>\n";
  echo "</tr>\n";
  echo "<tr>\n";
    echo "<td width='53%'><p align='right'>Indtast password: <input type='password' name='password' size='20'></p></td>\n";
    echo "<td width='47%'><p align='center'><input type='submit' value='Opdater projektet' name='send'></p></td>\n";
  echo "</tr>\n";
echo "</table>\n";


echo "</form>";


/*
Her tjekker jeg for om get er lig med send. Altså om formularen er submitten
Hvis den ikke er submittet skal den ikke udføre efterfølgende kode, som er
validering af inholdet af input felterne og kommunikation med database
*/
if(isset($_POST['send'])) {

  //Validering for om der er indtastet en projektbeskrivelse
if ($projekttekst=="") {
    echo "<p><font color='#FF0000'>Du har ikke indtastet en projektbeskrivelse - prøv igen</p></font>\n";
    echo writeHTMLfootere ();
    exit;
    }

//Brugerens password i databasen sættes lig med variablen $realpassword
$realpassword="$querydata[1]";

//Validering for om det indtastede password er korrekt
if (!$password=="$realpassword") {
    echo "<p><font color='#FF0000'>Du har ikke indtastet det rigtige password - prøv igen</p></font>\n";
    echo writeHTMLfootere ();       
    exit;
    }

else {   
    //SQL sætning til at opdatere data i tabellen   
    $strSQL = "UPDATE projekter SET projekttekst='$projekttekst' WHERE projekttitel='$projekttitel'";

    //SQL kommandoen køres med funktion execute der er i filen functions_db.inc.php
    $resultat = executeSQL($strSQL);
   
    //validering af om SQL forespørgelsen går godt.
    if (!$resultat){
        echo "<p>Der skete en fejl og projektbeskrivelsen er ikke opdateret i databasen - prøv igen :-(</p>\n";
        }
        else{
        echo "<p><font color='#FF0000'>Projektet er opdateret :-)</p></font>\n";
        }


    }   
}







echo "<p><a href='projekt.php'>Vend tilbage til projektoversigten</a></p>\n";

echo"</div>";
echo "</center>\n";


//Footer kaldes for at lukke html siden korrekt
echo writeHTMLfootere ();

?>
Avatar billede ahv Nybegynder
20. april 2003 - 17:54 #1
Prøv med:

if (!$_POST['password']=="$realpassword") {
    echo "<p><font color='#FF0000'>Du har ikke indtastet det rigtige password - prøv igen</p></font>\n";

Du skal formodenligt tilgå dine varibaler med $_POST['var']
Avatar billede ahv Nybegynder
20. april 2003 - 17:56 #2
Det samme skal du gøre med alle dine andre var variabler du får fra formen.
dete skyldes at registre_globals er sat til off i nyere PHP-versioner.
Avatar billede mini97ad Nybegynder
20. april 2003 - 17:57 #3
ok jeg prøver lige
Avatar billede mini97ad Nybegynder
20. april 2003 - 18:00 #4
hmm - det hjælper faktisk ikke. Samme problem som før??
Avatar billede schaefner Juniormester
20. april 2003 - 18:01 #5
Prøv:
if (!$_POST['password']== $realpassword) {
Avatar billede schaefner Juniormester
20. april 2003 - 18:02 #6
Hov:
if ($_POST['password'] != $realpassword) {
Avatar billede mini97ad Nybegynder
20. april 2003 - 18:02 #7
prøver lige :-)
Avatar billede ahv Nybegynder
20. april 2003 - 18:02 #8
eller hvis registre_globals er sat til off

if (!$password == $realpassword)
Avatar billede ahv Nybegynder
20. april 2003 - 18:03 #9
if ($password != $realpassword)
Som fejlene dog hopper frem ;o)
Avatar billede schaefner Juniormester
20. april 2003 - 18:04 #10
ahv >> Det passer da ikke helt det du skriver. Det er kun hvis den er sat til on, du kan tilgå variablerne på den måde.
Avatar billede ahv Nybegynder
20. april 2003 - 18:05 #11
Jesper >> At passer ;o) Bliver ved med at bytte rundt på om det nu er off eller on, arbejder altid med dem off. Men ja det er on så kan du tilgå dem blot med deres navne - tak for rettelsen.
Avatar billede mini97ad Nybegynder
20. april 2003 - 18:08 #12
yeps, så virker det :-).

Schaefner dit forslag var korrekt: if ($_POST['password'] != $realpassword) {

Jeg vil også tro, at dit forslag ahv virker, da globals er on: ($password != $realpassword)

Tak for hjælpen de herrer
Schaefner lav lige et svar, så i kan dele point
Avatar billede ahv Nybegynder
20. april 2003 - 18:10 #13
Jesper, skal vi dele points som vi er.....øøøh ja - to personerne i denne verden ;o)
Avatar billede mini97ad Nybegynder
20. april 2003 - 18:17 #14
okiday, så går the points til ahy
Avatar billede schaefner Juniormester
20. april 2003 - 18:24 #15
Jeg skulle lige spise, men jeg overlever nok uden ;)
Avatar billede mini97ad Nybegynder
20. april 2003 - 18:26 #16
Sorry, håber i det mindste maden var god så ;-)
Avatar billede schaefner Juniormester
20. april 2003 - 18:33 #17
Det er altid klogt lige at afvente en kommentar før du lukker spm. :)

/Jesper Sørensen
Avatar billede schaefner Juniormester
20. april 2003 - 18:33 #18
men jo, maden var ganske god ;)
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