Torbjørn Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 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? Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 (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 4. mars 2004 av _TT_ Lenke til kommentar
Torbjørn Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 + betyr "en eller flere ganger" {4,16} betyr "fra og med 4 til og med 16 ganger" da begge er en indikator på hvor mange repitisjoner av et tegn skal forekomme, vil det ikke gi mening å bruke begge samtidig mer om det i manualen: http://no2.php.net/manual/en/pcre.pattern.syntax.php Lenke til kommentar
Torbjørn Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 .. "+" 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) Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 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? Lenke til kommentar
Torbjørn Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 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? Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 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? Lenke til kommentar
Torbjørn Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 nei, alle tegn kan settes inn i mysql. bare pass på å php-funksjonen kjøre mysql_escape_string() på alle variable du skal sette inn et mysql-query Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 Får ikkje strengene eg da setter inn \ tegn i seg?.... vil ikke det påvirke login? Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 \ 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. Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 (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 4. mars 2004 av _TT_ Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 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. Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 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. Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 (endret) Post koden din. NB: ikke hele, kun den biten du har problemer med. Endret 4. mars 2004 av ???????? Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 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 \" Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 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.... Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 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. Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 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? Lenke til kommentar
???????? Skrevet 4. mars 2004 Del Skrevet 4. mars 2004 [] 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}$" Lenke til kommentar
_TT_ Skrevet 4. mars 2004 Forfatter Del Skrevet 4. mars 2004 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? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå