ereg?!

Status
Niet open voor verdere reacties.

JohnnyGroningen

Gebruiker
Lid geworden
16 mrt 2009
Berichten
50
Beste lezer,

Ik moet voor school een (simpel) website-tje bouwen waar je een artikel kan toevoegen.
Natuurlijk moet het wel gecontroleerd worden:thumb: en daar zit ik vast. Het artikelnummer moet bestaan uit 5 tekens (cijfers en letters) maar als ik deze code gebruik:

PHP:
$artikelnummer = $_POST[artikelnummer];
	if (!ereg( " ^ [ . - . ] { 5 } $ ", $artikelnummer ))
	{
		print("Je hebt een foute artikelnummer ingevoerd!");
	}

Alles wat ik intik (en ook de combinaties die goed horen te zijn) geeft hij aan dat ik foute artikelnummer heb ingevuld. Ik heb iets fout gedaan bij de ereg.

Help plz:love:

Johnny:)
 
Aan deze code te zien heb je alleen een "if" toegevoegt, dan moet je ook aangeven wat het anders moet doen.

Oftewel

PHP:
$artikelnummer = $_POST[artikelnummer];
    if (!ereg( " ^ [ . - . ] { 5 } $ ", $artikelnummer ))
    {
        print("Je hebt een foute artikelnummer ingevoerd!");
    } else {
 print("Wat je maar als uiteindelijk resultaat wil hebben..");
}
 
PHP:
<?php
	$artikelnummer = $_POST[artikelnummer];
	$categorie = $_POST[categorie];
	$verkoopprijs = $_POST[verkoopprijs];
	$omschrijving = $_POST[omschrijving];
	
	if (!ereg( " ^ [ . - . ] { 5 } $ ", $artikelnummer ))
	{
		print("Je hebt een foute artikelnummer ingevoerd!");
	}
    elseif (!ereg(" [ 0 - 9 ] { 5 } ", $verkoopprijs ))
	{
		print("Je hebt een foute verkoopprijs ingevoerd!");
	}
	elseif (!ereg(" [ . - . ] { 1 } ", $omschrijving ))
	{
		print("Geef een naam op!");
	}
	else
	{
	$mysql = mysql_connect("localhost","Johnny T","") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
	mysql_select_db("Johnny",$mysql) or die("Fout: Het openen van de database is mislukt!");
	mysql_query("INSERT INTO artikel VALUES ('$artikelnummer','$omschrijving','$categorie','$verkoopprijs')",$mysql) or die("De toevoegquery op de database is mislukt!");
	mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");

	print("$omschrijving met $artikelnummer is toegevoegd onder de categorie $categorie met als verkoopprijs $verkoopprijs");
}
?>

Dit is het hele bestand alleen ik had alleen dat stukje gepakt:o
 
Nog afgezien of je regular expression klopt: Je hebt een spatie staan vóór ^ en ook nog een ná de $ (als vetgedrukte "_" aangegeven):

if (!ereg( "_^ [ . - . ] { 5 } $_", $artikelnummer ))

Maakt een correcte string dus (minstens) 7 karakters lang etc., en waarschijnlijk verstoren die spaties ook je 'beginnen met' (^) en 'eindigen met' ($)

Succes,

Tijs.
 
Laatst bewerkt:
$_POST is volgens mij nog altijd een array dus het zal zo moeten:

PHP:
$_POST['artikelnummer'];
 
@ Tha Devil

Geprobeerd werkt niet

@ dnties

Ook geprobeerd maar werkt niet:confused: (zelfs als ik 7 tekens invulde)

Ook in combinatie geprobeerd werkte ook niet, geeft altijd die error Je hebt een foute artikelnummer ingevoerd!:eek:
 
Niet helemaal on topic maar iets om over na te denken:

Ik heb ergens gelezen dat de EREG functie in PHP 5 "Deprecated" (bruikbaar maar zal gaan vervallen) is en in PHP 6 helemaal komt te vervallen. Misschien een idee om meteen de vervanger PREG te gaan gebruiken die heeft namelijk een iets andere notatie voor de regular expressions.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan