Gå til innhold

PHP kode som andre kanskje kan bruke


Anbefalte innlegg

Hei
Jeg programmerer et påmeldingssystem vha PHP mot en MySQL-database.
For å finne ulovlige tegn i mailadressen, benytter jeg følgende kode i PHP som altså sjekker innholdet i variabelen ’email’:

if(!ereg(«^[A-Za-z0-9\.|-|_]*[@]{1}[A-Za-z0-9\.|-|_]*[.]{1}[a-z]{2,5}$», $verdi[’email’])):

MEN så oppdager jeg at det blant tusener av mailadresser befinner seg EN med følgende mailadresse som blir stoppet av min ovennevnte koding.

Mailadressen som har følgende oppbygging [email protected] , inneholder - som du ser, bindestreker. Og jeg tror feilen ligger i nettopp dette med bindestrek, MEN
JEG MAKTER IKKE å se hvor feilen ligger i ovennevnte kode.

SPØRSMÅL:
-Hva er det med min ovennevnte PHP-kode som medfører at  
bindestrekene i  «[email protected]»  feilaktig IKKE aksepteres?

-Hva skal konkrer endres i mitt ovennevnte lille script?

Jarle

mail: [email protected]

Lenke til kommentar
Videoannonse
Annonse

For å finne ulovlige tegn i mailadressen, benytter jeg følgende kode i PHP som altså sjekker innholdet i variabelen ’email’:

Regex er i mange tilfeller feil verktøy for jobben,  når det kommer til kontroll av e-post adresser så er dette allerede innebygget i PHP's filtere

if ( filter_var($verdi["email"], FILTER_VALIDATE_EMAIL) ) {
  echo("alt okay");
} else {
  echo("ugyldig epost");
}

 

 

 

Endret av adeneo
  • Liker 1
Lenke til kommentar

 

For å finne ulovlige tegn i mailadressen, benytter jeg følgende kode i PHP som altså sjekker innholdet i variabelen ’email’:

Regex er i mange tilfeller feil verktøy for jobben,  når det kommer til kontroll av e-post adresser så er dette allerede innebygget i PHP's filtere

if ( filter_var($verdi["email"], FILTER_VALIDATE_EMAIL) ) {
  echo("alt okay");
} else {
  echo("ugyldig epost");
}

 

 

 

 

Tusen takk!

 

$FEILMAIL=(!(filter_var($verdi["email"], FILTER_VALIDATE_EMAIL) ) );

og kombinasjoner av ovennevnte setning, løser mitt problem.

 

Den fungerer, og godtar fleksibelt det meste av lovlige tegn i emailadresser.

Tusen takk!

Lenke til kommentar
  • 8 måneder senere...

En måte å vise kildekode til nettsider som ikke lastes dynamisk med javascript.

$file = file('https://www.diskusjon.no/index.php?showtopic=324727&page=14');
foreach ($file as $line_num => $line) {
echo "<span class='linenum'>".sprintf('%04d', $line_num)."</span><span class='line'>".htmlspecialchars($line)."</span><br>\n";
}

Her er copy paste eksempel

 

 

<html>
<head>
  <style>
    body {
      background-color: #1e1e1e;
      font-weight:bold;
      font-family:Consolas, "Courier New", monospace;
      white-space: nowrap;
    }
    .line {
      line-height:20px;
      font-size:18px;
      color: #569cd6;
    }
    .linenum {
      color: #545454;
      padding: 5px 10px;
      margin-right:10px;
    }
  </style>
</head>
<body>
<?php
$file = file('https://www.diskusjon.no/index.php?showtopic=324727&page=14');
foreach ($file as $line_num => $line) {
echo "<span class='linenum'>".sprintf('%04d', $line_num)."</span><span class='line'>".htmlspecialchars($line)."<span><br>\n";
}
?> 
</body>
</html>

 

Endret av Dan-Levi
Lenke til kommentar
  • 2 år senere...

-I følgende kodeeksempel sjekkes/kontrolleres at 'registrator' har registrert inn i variablene det som kreves. Dette skjer FØR variabelinnholdet sendes inn til MySQL-basen.
Ved f.eks. manglende og/eller feil innhold blir dette avdekket, og registrator blir bedt om å gå tilbake til skjemaet og korrigere i tråd med den/de feilmeldingene som programmet gir.  

-ETT tilfelle har jeg IKKE klart å skrive kode som fungerer:
Variabelen 'mobil', skal kontrolleres for om den har blitt registrert med flere enn 8 tegn (blank medregnet).
I så tilfelle skal det innenfor IF-setningen gis melding om dette.

Jeg har uthevet i programmet nedenfor hvor nevnte IF-sjekk på antall tegn i variabelen 'mobil' skal utføres.
Jeg er takknemlig om du ser på programmet og gir meg riktig koding i dette program-tilfellet:

 

/* START funksjonen visskjema, som presenterer feilmelding på skjermen avhengig av hva som mangler eller er definert som feil*/
$verdi=$_POST;
function visskjema($verdi)
{
?>
<FORM METHOD ="POST" ACTION="valider_paameld.php">

<? if(empty($verdi['fornavn'])):
   ?>
   mangler:        <b>Fornavn</b>  </br>
<?endif?>

<? if(empty($verdi['etternavn'])):
   ?>
   mangler:        <b>Etternavn</b> </br>

<?endif?>

<? if(empty($verdi['mobil'])):
   ?>
   mangler:        <b>Mobil-telefon</b>  </br>

<?endif?>

<? if(antall tegn i variabelen ’mobil’ er større enn 8):   ?>
   Feilmelding:    <b>For mange tegn i mobil-nummeret. Max antall tegn er 8. </b>
<?endif?>

<?
if (!( filter_var($verdi['email'], FILTER_VALIDATE_EMAIL) )):
            ?> 
   
feil........: <b>E-post-adressen inneholder ulovlige tegn </b> </br>

<?endif?>

 

osv osv.

Lenke til kommentar
j-- skrev (3 timer siden):

Du trenger å se på strlen(), og comparison operators. Og det kan være en fordel å bruke trim() på mye av det som kommer inn fra brukere.

Kodinga var enklere enn jeg først trodde.
Slik kan dette  f.eks. løses i mitt tilfelle:

<?
$mobilmax='11';
if(strlen(($verdi['mobil'])) > $mobilmax):
   ?>
   for mange tegn:          <b>For mange tegn i ditt mobilnummer. MAX antall - inkl. mellomrom, er 11  </b> </br>
<?endif?>

 

Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...