Nummerierungszwang abschalten php

Denker

Well-known member
ID: 194267
L
12 November 2009
531
8
Hallo,

ich habe ein Formularscript bei dem ein Area-Code abgefragt werden.

Diesen will ich gern durch Username ersetzen. Problem nur ist dass er überprüft ob es sich auch um eine Zahl handelt.

Da kann mir doch bestimmt jemand helfen. Glaub es ist nur eine kleine Sache.

Ich danke schonmal vielmals




PHP:
if($_REQUEST['postmessage']!="")
{
	$USERID = intval($_SESSION['USERID']);
	$areacode = htmlentities(strip_tags($_REQUEST['areacode']), ENT_COMPAT, "UTF-8");
	$content = htmlentities(strip_tags($_REQUEST['sms']), ENT_COMPAT, "UTF-8");
	$ltn = htmlentities(strip_tags($_REQUEST['ltn']), ENT_COMPAT, "UTF-8");
	$clen = strlen($content);
	$captcha = stripslashes($_REQUEST['captcha']);

	if($areacode == "" || !is_numeric($areacode))
	{
		$error=$lang['15'];
	}
	elseif($clen < 3)
	{
		$error = $lang['16'];
	}
	elseif($captcha != $_SESSION['imagecode'])
	{
		$error = $lang['17'];
	}
	elseif(banned_words_chk($content))
	{
		$error = $lang['18'];
	}
	
	include("submit_pic.php");
	include("submit_yt.php");
	
	if($error == "")
	{
		$approve_stories = $config['approve_stories'];
		if($approve_stories == "1")
		{
			$active = "0";
		}
		else
		{
			$active = "1";
		}
		$query="INSERT INTO posts SET USERID='".mysql_real_escape_string($USERID)."', story='".mysql_real_escape_string($content)."', areacode='".mysql_real_escape_string($areacode)."', ltn='".mysql_real_escape_string($ltn)."', time_added='".time()."', date_added='".date("Y-m-d")."', active='$active' $addtosql, pip='".$_SERVER['REMOTE_ADDR']."'";
		$result=$conn->execute($query);
		$pid = mysql_insert_id();
		$message =  $lang['19'];	
		
		include("submit_pic2.php");		

		if ($active == "1" && $email != "")
		{
			$catname = get_cat($cat);
			$slink = $config['baseurl']."/view/".$catname."/".$pid;
			$sendto = $email;
			$sendername = $config['site_name'];
			$from = $config['site_email'];
			$subject = $lang['73'];
			$sendmailbody= $lang['74']."<br>".$slink."<br><br>".$lang['75']."<br>".$sendername;
			mailme($sendto,$sendername,$from,$subject,$sendmailbody,$bcc="");
		}
	}
}
 
Zeile 10: is_numeric()

Aber Vorsicht, ich gehe mal davon aus, dass die entsprechende Spalte in der Datenbank ebenfalls numerisch ist.
 
Klingt absolut logisch.


Also ich war in der Datenbank und hab den AREA-Code auf den Typ Text gestellt.

Dann hab ich die IF-Abfrage gekürzt so dass der AREA-Code nicht mehr überprüft werden und siehe da:


FUNKTIONIERT PERFEKT.

Vielen Dank für den Tipp. :LOL: