Archief - PHP: invoer controleren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

horse_99

Legacy Member
Hoi iedereen,

Hoe kan ik controleren of er in een input type="text" alleen tekst is ingevoerd? En een soort van feedback terug geven dat de invoer ongeldig was?

Bedankt voor alle reacties!!!

Fr3aK

Legacy Member
horse_99 zei:
Hoi iedereen,

Hoe kan ik controleren of er in een input type="text" alleen tekst is ingevoerd? En een soort van feedback terug geven dat de invoer ongeldig was?

Bedankt voor alle reacties!!!
Wat bedoel je met tekst?
Alleen van a tot z of ook cijfers, spaties en interpuncties?

Zero Grav

Legacy Member
Ik zou dan eerder met javascript werken. Niet toestaan om numerieke waardes in te geven maw. Dan moet je al niet meer beginnen met controleren en is het ook handiger voor de gebruiker.

DarkBone

Legacy Member
Zero Grav zei:
Ik zou dan eerder met javascript werken. Niet toestaan om numerieke waardes in te geven maw. Dan moet je al niet meer beginnen met controleren en is het ook handiger voor de gebruiker.
Dat valt zo te omzeilen, zoiets kan alleen met tevens een controle aan de server zijde.

sh1b

Legacy Member
Code:
if ( !ereg("[A-Za-z' -]{1,50}", $textfield)
{
echo foutbericht;
exit();
}
Natuurlijk "$textfield" en "foutbericht" aanpassen :p
Dit zou moeten werken want 'k heb het nog maar juist geleerd...'k Heb zelfs nog gekeken in mijn boek en het klopt :) Dus het zou moeten werken. ('k Ben ook nog redelijk nieuw in PHP)

DarkBone

Legacy Member
Da's wel een invoer van maximum 50 tekens en minimum 1 dan?

horse_99

Legacy Member
Fr3aK zei:
Wat bedoel je met tekst?
Alleen van a tot z of ook cijfers, spaties en interpuncties?

Mja, ik moet een voornaam, achternaam, gebruikersnaam, wachtwoord en emailadres hebben.

voornaam: alleen a-z, A-Z, en andere letters zoals é, è ê, ë en tekens zoals '.
achternaam: idem als voornaam
gebruikersnaam: alleen a-z, A-Z, 0-9, - en _
wachtwoord: idem als gebruikersnaam
emailadres: heel het emailadres valideren

sh1b

Legacy Member
DarkBone zei:
Da's wel een invoer van maximum 50 tekens en minimum 1 dan?
Ja. Oh ik dacht dat hij ook wilde dat er iets MOEST ingevoerd worden.
Als je die code gebruikt pas je het best dan even aan :)

EDIT: Ik zie juist de post van Horse, dus: Aangezien er een naam moet ingevuld worden klopt de code toch. Een naam is toch nooit langer dan 50 tekens...

Fr3aK

Legacy Member
Gebruikersnaam en wachtwoord:
PHP:
if (!ereg("^[aA-zZ_-]*$", $_POST['inputveld'])) {
  echo "Error!";
}

E-mail adres (phpfreakz.nl):
PHP:
if (!ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['inputveld'])) {
  echo "Error!";
}

Voornaam en achternaam weet ik niet, ben niet zo goed in dit soort dingen ;)

Squall-sX-

Legacy Member
Zero Grav zei:
Ik zou dan eerder met javascript werken. Niet toestaan om numerieke waardes in te geven maw. Dan moet je al niet meer beginnen met controleren en is het ook handiger voor de gebruiker.
DarkBone zei:
Dat valt zo te omzeilen, zoiets kan alleen met tevens een controle aan de server zijde.
Het is beter beiden te gebruiken. Uw programma wordt iets gebruiksvriendelijker door reeds fouten te geven voor je gegevens doorstuurt naar je PHP-pagina. Maar inderdaad, javascript kan makkelijk omzeilt worden, dus moet je ook in je PHP-script zelf nog eens de controle uitvoeren.

DarkBone

Legacy Member
Dat bedoelde ik Squall, beide is idd het meest gebruiksvriendelijk, ik bedoelde dat je niet javascript alleen mag gebruiken ;)

horse_99

Legacy Member
Bedankt voor alle reacties al.

Ik vind het een beetje vervelend om dit hier allemaal te vragen. Ik heb de link al nagekeken die frenzal poste, probleem is ik weet niet hoe ik de functie ereg moet gebruiken.

Ik begrijp niet hoe je alle toegestane tekens meegeeft in de parameter van de functie, allez ik denk dat dit een parameter genoemd wordt.

Kan iemand me dit uitleggen?

killgore

Legacy Member
medic zei:
if(!is_numeric($var))
{
....
}

?
toch een opmerking hier geven:

is_numeric werkt niet altijd (PHP5 doet het mssch wel goed, dat weet ik niet, in PHP4 waren er echter nogal wat problemen).

Daarom raad ik ofwel de functie ctype_digit aan als je geen kommagetallen verwacht (wat nogal eens het geval is bij invoer check ;)) of een zelfgeschreven regex die wel ook 1 . (kommaoperator) toelaat :).

ctype_digit checkt immers of alle tekens in een string (wat input is) numeriek zijn, vandaar dat floats niet werken.

Squall-sX-

Legacy Member
DarkBone zei:
Dat bedoelde ik Squall, beide is idd het meest gebruiksvriendelijk, ik bedoelde dat je niet javascript alleen mag gebruiken ;)
Sorry, 'k had over de "tevens" gelezen bij "alleen met tevens een controle aan de server zijde.".

PerfectPC

Legacy Member
Fr3aK zei:
E-mail adres (phpfreakz.nl):
if (!ereg("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $_POST['inputveld'])) {
echo "Error!";
}
als ge een echt goede regex wilt voor email: (die van phpfreakz vind ik maar onzin.)
PHP:
if (!eregi ("^[[:alnum:]_-]+(\.[[:alnum:]_-]+)*@([[:alnum:]-])+(\.[[:alnum:]-]+)*(\.[[:alpha:]]{2,})$", $_POST['email'])) { // email validity check
  echo "<b>Invalid address !</b>";
}

50Euro

Legacy Member
Horse, laat iets weten of het werkt he..

Ik kan dit ook gebruiken. ;)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan