Gå til innhold

Problemer med login


Anbefalte innlegg

Skrevet
Den er sann hvis brukernavnet inneholder tegnene i klammeparantesen, altså sann også hvis brukernavnet inneholder spesialtegn. Den vil feks godta lsad"#¤.

jeg sier da "denne testen er sann hvis brukernavnet bare inneholder de tegnene som står i klammeparentes"

 

mao ikke sann hvis noen av kråketegnene er med..

 

hvis det fungerer, vet jeg ikke hvor mye mer du vil terpe på det, men det ser ulogisk ut. Du kan fjerne begge "elseif"-ene, spør deg selv hva du trenger med tre forskjellige utfallsrom når alle er like?

Videoannonse
Annonse
Skrevet (endret)

Sa jo det at den hadde mye overflødig kode, men vet ikke helt hvordan eg kan få alle inn på samme... Får vel gruble litt på det....

 

Men lager eg koden slik:

 <?php
if (ereg("^[a-z0-9_-]{4,16}$", $_POST['user'])){
}

else
{
 echo 'Please enter a valid username.<br>';
 echo 'Only use characters a-z, numbers 0-9, _ and -.<br>';
 echo 'Username must be min. 4 characters and max. 16 characters';
 exit;
} 

 

Så mener eg at eg klarte å lure inn noen brukernavn med spesialtegn, kanskje det hadde noe med resten av koden å gjøre?. Hva er forresten den "+" tegnet etter ] til? Kunne ikke bruke den visst eg skulle ha med {4,16}.

Endret av _TT_
Skrevet

.. "+" er det samme som å s krive "{1,}", dvs 1 som laveste grense og ubestemt som øvre grense (til sammenligning med 4 og 16 som du korrekt bruker i ditt eksempel for dine krav)

Skrevet

I passordfeltet vil eg vel at alle tegn skal kunne brukes? Men kan eg bruke samme funksjonen for å sjekke hvor mange tegn som er brukt?

Skrevet

inni firkantparentesene definerer du hvilke tegn du vil godta. i {} parentesene definerer du antallsbegrenrningene... sett det sammen til det du trenger. leste du manualsiden om dette?

Skrevet

Jada, forstår hvordan det fungerer, tenkte bare eg kanskje kunne lure meg unna å måtte skrive inn alle tegnene....

 

Er det noen spesielle tegn som eg ikke kan sette inn i mysql?

Skrevet

\ er en escape character, dvs. den brukes til å gjøre tegnet til et tegn - og ikke slik at den kan avsluttet en quote. På sammen måte som i echo "Hei \"på\" deg";

Den setter ikke inn \ i outputen.

Skrevet (endret)

Ok, han printer det ikke ut. Men vil den ikke sette tegnet inn i mysql sammen med brukernavn/passord?

 

Og når eg skal sette tegnene inn i ereg() skal eg da skrive \" og \[ og \{ osv? Det fikk eg ikke til å fungere i så fall....

Endret av _TT_
Skrevet

Du skal ikke bruke det på alle spesialtegn! I Regular expressions bruker du den for å escape tegn som . for . betyr hvilket som helst tegn mens \. da blir punktum.

Skrevet

Bruker det ikke på alle tegn, men trodde disse tegnene var slike som stoppet koden. Eg må vel ihvertfall gjøre det med " tegnet? Altså skrive \" ? Men da går noe galt i koden.

Skrevet

Slik fungerer den:

 if (ereg("^[a-z0-9_-§|!#¤%&/(){}=?+´`@£$\'*.:,;<>]{4,16}", $_POST['pass'])){
}
else
{
 echo 'Please enter a valid password.<br>';
 echo 'You can use all characters except the following:<br>"<br>';
 echo 'The password must be min. 4 characters and max. 16 characters';
 exit;
} 

 

Når eg legger til \] fungerer den ikke.

 if (ereg("^[a-z0-9_-§!#¤%&/()=?`@£$}+\´¨'-.,^*_:;~<>\]]{4,16}", $_POST['pass'])){
}
else
{
 echo 'Please enter a valid password.<br>';
 echo 'You can use all characters except the following:<br>"<br>';
 echo 'The password must be min. 4 characters and max. 16 characters';
 exit;
} 

 

Den gir da hvit skjerm....

 

tror eg fikk det til med \"

Skrevet

Testet litt. Endret til:

 if (ereg("^[a-z0-9_-§!#¤%&/=?`@£$}+\´¨'-.,^*_:;~<>]{4,16}", $_POST['pass'])){
}
else
{
echo 'Please enter a valid password.<br>';
echo 'You can use all characters except the following:<br>"<br>';
echo 'The password must be min. 4 characters and max. 16 characters';
exit;
} 

 

I denne har eg tatt vekk ( ) { } og \"

 

Men koden slipper alikevel disse tegnene (untatt " ) igjennom....

Skrevet

Du må definere en slutt på regular expression, $

f.eks.

"^[a-z0-9_-§!#¤%&/=?`@£$}+\´¨'-.,^*_:;~<>]{4,16}$"

Ellers leter den kun etter det mønsteret i starten av variabelen.

Skrevet

Denne fungerer fint vil eg tro:

 if (ereg("^[a-z0-9_-§!#¤%&/=?`@£$}+\´¨'-.,^*_:;~<>\"\(\)\{\}\[]{4,16}$", $_POST['pass'])){
} 

 

Men legger eg til \] så går den til else delen uansett... Gjort noe feil?

Skrevet

[] brukes for å definere tegn, hva er det du vil sjekke med den?

bruke eregi hvis du ikke vil definere store bokstaver også.

 

Hvis du bare vil sjekke om den inneholder a-z_- så skriver du bare det

"^[a-z_-]{4,16}$"

Skrevet

Dette gjelder passordet, der eg vil at alle tegn skal kunne brukes. Eller er det noen tegn som ikke bør kunne brukes?

 

Eg brukte denne funksjonen for å kontrollere hvor mange tegn det var, er det en annen funkjon som er bedre å bruke?

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...