/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Brug af foreach til login.
Fra : Mathias Mejborn


Dato : 15-05-06 13:13

Hej gruppe.

Jeg sidder og arbejder med et program i php-gtk og har brug for noget
hjælp til undersøgelsen af login.

Jeg bruger følgende kode:

foreach($users AS $value){
   if ($nick == $value[username] && $pass == $value[pass]){
      echo "Brugeren blev fundet \n";
   }else{
      $login_error_dialog = &new GtkMessageDialog(null, 0,          
Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, 'Brugeren blev             ikke fundet på
systemet');
      $login_error_dialog->run();
      $login_error_dialog->destroy();
         }
      }
   }
}

Problemet med dette er vel at når der er flere brugere på systemet, så
risikere man at man bliver ved med at få en popup hver gang den finder
en bruger i filen som ikke matcher de kriterier man har indtastet.

Hvordan løser man dette på en bedst mulig måde?

--
Mvh
Mathias Mejborn

 
 
Mathias Mejborn (15-05-2006)
Kommentar
Fra : Mathias Mejborn


Dato : 15-05-06 13:17

Mathias Mejborn wrote:
> Hej gruppe.
>
> Jeg sidder og arbejder med et program i php-gtk og har brug for noget
> hjælp til undersøgelsen af login.
>
> Jeg bruger følgende kode:
>
> foreach($users AS $value){
> if ($nick == $value[username] && $pass == $value[pass]){
> echo "Brugeren blev fundet \n";
> }else{
> $login_error_dialog = &new GtkMessageDialog(null,
> 0, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, 'Brugeren
> blev ikke fundet på systemet');
> $login_error_dialog->run();
> $login_error_dialog->destroy();
> }
> }
> }
> }
>
> Problemet med dette er vel at når der er flere brugere på systemet, så
> risikere man at man bliver ved med at få en popup hver gang den finder
> en bruger i filen som ikke matcher de kriterier man har indtastet.
>
> Hvordan løser man dette på en bedst mulig måde?
>
> --
> Mvh
> Mathias Mejborn

Er det bedre at bruge while?

--
Mvh
Mathias Mejborn

Bertel Lund Hansen (15-05-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 15-05-06 14:07

Mathias Mejborn skrev:

> Er det bedre at bruge while?

Brug af for eller while er et designvalg. Et programmeringssprog
kunne fungere med kun én af de to kommandoer til rådighed.

for (...) {
   tjek_bruger_og_sæt_fundet();
   if ($fundet) break;
}

$fundet=false;
while (!$fundet) {
   tjek_bruger_og_sæt_fundet();
}

Man skal ikke (længere) spekulere på nogen tidsforskel - kun på
kode der er nem at arbejde med.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Bertel Lund Hansen (15-05-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 15-05-06 13:23

Mathias Mejborn skrev:

> Jeg sidder og arbejder med et program i php-gtk og har brug for noget
> hjælp til undersøgelsen af login.

> Problemet med dette er vel at når der er flere brugere på systemet, så
> risikere man at man bliver ved med at få en popup hver gang den finder
> en bruger i filen som ikke matcher de kriterier man har indtastet.

> Hvordan løser man dette på en bedst mulig måde?

Du sætter et flag før løkken begynder.

$fundet=false;

Hvis du så finder brugeren inde i løkken, sætter du $fundet til
true og breaker.

Først når løkken er slut, vælger du om der skal åbnes en
balladeboks eller om fyren må lukkes ind.

.... hvis ikke det altså kan gøres med en indbygget kommando. Der
findes færdige søgekommandoer til et array i PHP, f.eks.:

http://dk2.php.net/manual/en/function.in-array.php

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Bjarne Bue (15-05-2006)
Kommentar
Fra : Bjarne Bue


Dato : 15-05-06 13:28

Mathias Mejborn wrote:
> Hej gruppe.
>
> Jeg sidder og arbejder med et program i php-gtk og har brug for noget
> hjælp til undersøgelsen af login.
>
> Jeg bruger følgende kode:
>
> foreach($users AS $value){
> if ($nick == $value[username] && $pass == $value[pass]){
> echo "Brugeren blev fundet \n";
> }else{
> $login_error_dialog = &new GtkMessageDialog(null,
> 0, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, 'Brugeren
> blev ikke fundet på systemet');
> $login_error_dialog->run();
> $login_error_dialog->destroy();
> }
> }
> }
> }
>
> Problemet med dette er vel at når der er flere brugere på systemet, så
> risikere man at man bliver ved med at få en popup hver gang den finder
> en bruger i filen som ikke matcher de kriterier man har indtastet.
>
> Hvordan løser man dette på en bedst mulig måde?

$fandt_en_bruger = false;
foreach($users as $value) {
if ($nick == $value[username] && $pass == $value[pass]) {
$fandt_en_bruger = true;
}
}
if ($fandt_en_bruger == false) {
$login_error_dialog = &new GtkMessageDialog(
null, 0, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK,
'Brugeren blev ikke fundet på systemet');
$login_error_dialog->run();
$login_error_dialog->destroy();
}

Mvh Bjarne

Mathias Mejborn (15-05-2006)
Kommentar
Fra : Mathias Mejborn


Dato : 15-05-06 14:12

Bjarne Bue wrote:
> Mathias Mejborn wrote:
>
>> Hej gruppe.
>>
>> Jeg sidder og arbejder med et program i php-gtk og har brug for noget
>> hjælp til undersøgelsen af login.
>>
>> Jeg bruger følgende kode:
>>
>> foreach($users AS $value){
>> if ($nick == $value[username] && $pass == $value[pass]){
>> echo "Brugeren blev fundet \n";
>> }else{
>> $login_error_dialog = &new GtkMessageDialog(null,
>> 0, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, 'Brugeren
>> blev ikke fundet på systemet');
>> $login_error_dialog->run();
>> $login_error_dialog->destroy();
>> }
>> }
>> }
>> }
>>
>> Problemet med dette er vel at når der er flere brugere på systemet, så
>> risikere man at man bliver ved med at få en popup hver gang den finder
>> en bruger i filen som ikke matcher de kriterier man har indtastet.
>>
>> Hvordan løser man dette på en bedst mulig måde?
>
>
> $fandt_en_bruger = false;
> foreach($users as $value) {
> if ($nick == $value[username] && $pass == $value[pass]) {
> $fandt_en_bruger = true;
> }
> }
> if ($fandt_en_bruger == false) {
> $login_error_dialog = &new GtkMessageDialog(
> null, 0, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK,
> 'Brugeren blev ikke fundet på systemet');
> $login_error_dialog->run();
> $login_error_dialog->destroy();
> }
>
> Mvh Bjarne

Mange tak for det brugte dit forslag med en break; i så at den ikke
fortsætter med at løbe det hele igennem.

--
Mvh
Mathias Mejborn

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste