Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nabilfx

preg_match

Recommended Posts

Tenho um script para me enviar o email cadastrado em php por preg_match.

Mais a Arroba @ e o que vem escrito antes, fica invisível, O que esta escrito na frente aparece, tipo gmail.com

 

Como poderia arrumar isso para aparecer o email completo no registro online.

unnamed.png

 

Aqui esta o script.

<?php
 
    function Connect(){
        //Set global variables so they can be used in this function
        global $hostName; global $userName;
        global $password; global $database;
        $status = mysql_connect($hostName,$userName,$password); //Attempt to connect to Database
     
        if(!$status){echo 'Server Not Found'; exit;} //Hosting Server not found
        if(!@mysql_select_db($database)){echo 'Database Not Found'; exit;} //Database not found
        return $status; //Return link on established connection
    }
    function CheckKey($hash,$name){  //Check weather Md5 hash matches
        global $secretKey;
        $checkHash = md5($name.$secretKey);
        if(strcmp($checkHash,$hash) == 0){
            return 'pass'; //hash matches
        }else{
            return 'fail'; //hash failed
        }
    }
    function CleanInput($input){ //Sanitize user input
        $cleanInput = mysql_real_escape_string($input); //Use string escape
        if(preg_match('/[^@.a-z_\-0-9\s]/i',$cleanInput) == 1){ // Using regular expression
            echo 'Bad Input ==> ' . $input; exit; //Failed, exit to prevemt sql injection hacks
        }
        return $cleanInput; //Return clean input
    }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

precisso que apareca a @ arroba e o que esta atras escrito.

Se coloco nabil@hotmail.com so aparece hotmail.com

Se coloco nabil@gmail.com so aparece gmail.com

 

So aparece o escrito que esta na frente da @ arroba

o escrito atras da arroba e a arroba @ fica invisível e não aparece no registro online.

 

deve ser o preg_match que esta errado, eu não to conseguindo arrumar

Compartilhar este post


Link para o post
Compartilhar em outros sites

tire o antigo prega_match /[^@.a-z_\-0-9\s]/i e coloquei o que me mandou /^@[a-z0-9\.a-z_\-0-9]+/i

 

ele registra mais continua sem aparecer a arroba @ e o escrito atras dela.

 

Sera q o problema esta em outro .php que veio junto. Comprei no Unity store, mais o criador não me responde para tentar resolver.

 

 

se vc quiser te mando os scripts restantes para vc ver

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui o código RegisterUser.php que registra o serverconect.php

<?php	include('ServerConnect.php');	$connection = Connect();//Attempt to Connect to MYSQL Server & DataBase		//Get variables from unity	$name = $_POST['name'];	$date = strtotime(date("Y-m-d"));	$tables = $_POST['tables'];	//Security Check	$hash = $_POST['hash'];	if(CheckKey($hash,$name) == 'fail'){ //Check if hash is valid		echo 'Security Failure'; exit;	}		//Make sure all input is sql injection safe	$name =  CleanInput($name);	$tables = CleanInput($tables);	//Split difficulty tables	$tablesBroken = explode(' ', $tables);	$arr = Array();	$i = 0;$x = 0;	foreach($tablesBroken as $table){ //Check if name is in any of our tables		$sql = "SELECT * FROM $table WHERE name = '$name'";		$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 		$count = mysql_num_rows($result);		//Process Results : Tally up how many times we fing the name 		if($count > 0){ 			$arr[$i] = 1;			$x++;		}else{			$arr[$i] = 0;		}		$i++;	}	if($x == 0){ //Name not in use in any table		foreach($tablesBroken as $table){//Insert the user in all tables			$sql = "INSERT INTO $table (name,score,date)			VALUES('$name',0,'$date')";			$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 		}echo 'Registration Complete'; exit;	}else if($x >= Count($tablesBroken)){//Name in use in all tables		echo 'Already Used'; exit; //exit	}else{//In use but not complete in all tables		for($c = 0; $c < Count($tablesBroken); $c++){			if($arr[$c] == 0){ //Insert name in tables where it is not present				$toTable = $tablesBroken[$c];				$sql = "INSERT INTO $toTable(name,score,date)				VALUES('$name',0,'$date')";				$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 			}		}echo 'Registration Complete'; exit;	}?>

aqui o Database.php

<?php	include('ServerConnect.php');	$connection = Connect();//Attempt to Connect to MYSQL Server & DataBase	//Get variables from Unity	$mode = $_POST['mode'];	$table = $_POST['table'];	if($mode == 0){ //Create current table		$sql = "CREATE TABLE $table(id INT(10) AUTO_INCREMENT,		PRIMARY KEY(id),		name VARCHAR(25),		score INT(10),		date VARCHAR(25))"; //we keep date a varchar in the database		$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 		echo $table.' Created'; exit;	}else if ($mode == 1){		//Delete scores below input score		$score = $_POST['score'];	    $sql = "DELETE FROM $table WHERE score < '$score'";		$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 			echo 'Deleted'; exit;	}else if ($mode == 2){		//Delete scores below posted date		$date = strtotime($_POST['date']);		$sql = "DELETE FROM $table WHERE date < '$date'";		$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 		echo 'Deleted'; exit;	}?>

aqui o SendHighScores.php

<?php	include('ServerConnect.php');	$connection = Connect(); //Attempt to Connect to MYSQL Server & DataBase		//Get variables from Unity	$table = $_POST['table'];	$name = $_POST['name'];	$score = $_POST['score'];	$updating = $_POST['updating'];	$date = strtotime(date("Y-m-d")); //Get Time	//Security Check	$hash = $_POST['hash'];	if(CheckKey($hash,$name) == 'fail'){ //Check if hash is valid		echo 'Security Failure'; exit;	}		//Make sure all input is sql injection safe	$name =  CleanInput($name);	$table = CleanInput($table);	$score =  CleanInput($score);	$updating =  CleanInput($updating);	//Run Query (inser or update)	if($updating == 0){ //Free entry So make new row		$sql = "INSERT INTO $table (name,score,date)		VALUES('$name','$score','$date')";	}else{ //We are updating a previously registered user		$sql = "UPDATE $table SET score = '$score',		date = '$date' WHERE name = '$name'";	}	$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 		//Now update our table, by ordering it by descending score	$sql = "ALTER TABLE $table ORDER BY score DESC,id DESC";	$result = mysql_query($sql) or Die('Query failed: ' . mysql_error()); 		echo 'Accepted';?>

aqui o GetHighScores.php

<?php	include('ServerConnect.php');	$connection = Connect();//Attempt to Connect to MYSQL Server & DataBase		//Get variables from unity	$table = $_POST['table'];	$scope = $_POST['scope'];	$limit = $_POST['limit'];	//Security Check	$hash = $_POST['hash'];	if(CheckKey($hash,$table) == 'fail'){ //Check if hash is valid		echo 'Security Failure'; exit;	}		//Make sure all input is sql injection safe	$table = CleanInput($table);	$scope =  CleanInput($scope);	$limit =  CleanInput($limit);	//Create a Query For The Right Table	if($scope == 'AllTime'){ //Get All scores		$sql = "SELECT * FROM $table LIMIT 0,$limit";	}else{ //Get scores posted today		$date = strtotime(date("Y-m-d")); //Today's date		$sql = "SELECT * FROM $table WHERE date = '$date' LIMIT 0,$limit";	}	$result = mysql_query($sql) or Die('Query failed: ' . mysql_error());	//1.Build a string of all scores to send back	$info = "";	while($found = mysql_fetch_array($result)){		$info = $info .'@'. $found['name'] .':'. $found['score'];	}	echo $info;?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui o HighScore.js que veio junto. e tudo que quem, vc consegue ver algo que possa mudar, para o display sair email completo.

#pragma strict
import System.Security.Cryptography;
import System.Text;

@script ExecuteInEditMode()

enum TrackingType{FreeEntry,TrackProgress}
var trackType : TrackingType = TrackingType.FreeEntry;
enum DeveloperType{debug,live}
var developmentMode : DeveloperType = DeveloperType.live;

private var secretKey : String = "test";
var sendScoreURL : String = "http://nfx.comuv.com/.../SendHighScores.php?";
var getScoresURL : String = "http://nfx.comuv.com/.../GetHighScores.php?";
var resetScoresURL : String = "http://nfx.comuv.com/.../ResetHighScores.php?";
var registerUserURL : String = "http://nfx.comuv.com/.../RegisterUser.php?";
var getUserScoreURL : String = "http://nfx.comuv.com/.../GetUserScore.php?";
var DatabaseToolsURL : String = "http://nfx.comuv.com/.../DatabaseTools.php?";
//Modules Done
class Module{
	var showStatus : boolean = true;
	var showScores : boolean = true;
	var showUserScore : boolean = true;
	var showSendScore : boolean = true;
	var showDifficultySwitch : boolean = true;
	var showScopeSwitch : boolean = true;
}
var displayOptions : Module;
//Class That contains 
class Mode{
	var displayName : String = "Easy";
	var playerPrefsName : String = "Easy";
	var databaseName : String = "Easy";
}
var difficultyModes : Mode[];
var startDifficultyMode : int = 0;
private var modeIndex : int = 0;
//Score Scope
private var scoreScopeText : String = "Global";//AllTime,Daily
private var currentScope : String = "AllTime";
class ScoreScopeSettings{
	var dailyName : String = "Daily";
	var allTimeName : String = "Global";
}
var scoreScope : ScoreScopeSettings;
//Get HighScores Fields(keep the same lenght)
private var serverHighScores : String[] = new String[0];
private var scrollView : Vector2;
var scoreType : String = "Points";
var maxHighScores : int = 100;
//Send HighScores Fields
private var serverHighScoreName : String = "";
var maxNameCharacters : int = 20;
//Reset  HighScores Fields
var resetNames : int = 100;
var minResetScore : int = 100;
var maxResetScore : int = 1000;
//Bad Names
var blockBadNames : boolean = true; //Block names from bas names list
var badNamesList : TextAsset;  //List Of bad names
//PlayerPrefsName
var existingNamePlayerPrefs : String = "playerName";
//Rects
var sendScoresOffsetRect : Rect = new Rect(450,150,250,30);
var getScoresOffsetRect : Rect = new Rect(450,100,100,25);
var scoreScopeOffsetRect : Rect = new Rect(300,100,100,25);
var messageOffsetBox : Rect = new Rect(450,-150,250,25);
var localScoreOffsetRect : Rect = new Rect(450,-105,250,25);
var serverScoreOffsetRect : Rect = new Rect(450,-60,250,40);
var scoresListOffsetRect : Rect = new Rect(150,150,380,350);
private var baseRect : Rect = new Rect(Screen.width * .5F,Screen.height * .5F,100F,100F);
//status
private var year : int = 2012;
private var month : int = 9;
private var day : int = 1;
private var debugScore : int = 0;
private var deleteScore : int = 0;
private var localScore : int = 0;
private var serverScore : int = 0;
private var serverRank : int = 0;
private var status : String = ""; //Status of Server Operations
private var runningHsServer : int = 0; //Are we doing server side operations
private var runningTrack : int = 0; //Are we seeking player status
//skin
var skin : GUISkin;

function DatabaseTools(mode : int ,tables : Mode[]){
	if(runningHsServer == 1){status = "Still Running"; return;}
	runningHsServer = 1; status = "Running";
	//0 = create tables
	var hsFm : WWWForm = new WWWForm();
	hsFm.AddField("mode",mode);
	for(var md : Mode in tables){
		hsFm.AddField("table",md.databaseName);	
		var hs : WWW = new WWW(DatabaseToolsURL,hsFm);
		yield hs;
		if(hs.text.Equals("Created")){status = "Database Created";}
		else{status = "Error Occured";}
		Debug.Log(hs.text);
	}
	//Stop Running
	runningHsServer = 0;
	SynchTable();
}

function DatabaseTools(mode : int,table : String){
	if(runningHsServer == 1){status = "Still Running"; return;}
	runningHsServer = 1; status = "Running";
	//Modes
	// 1 = delete by score
	// 2 = delete by date
	var hsFm : WWWForm = new WWWForm();
	hsFm.AddField("mode",mode);
	if(mode == 1){
		hsFm.AddField("table",table);
		hsFm.AddField("score",deleteScore);
	}else if(mode == 2){
		hsFm.AddField("table",table);
		hsFm.AddField("date",year+"/"+month+"/"+day);
	}
	var hs : WWW = new WWW(DatabaseToolsURL,hsFm);
	yield hs;
	if(hs.text.Equals("Created")){status = "Database Created";}
	if(hs.text.Equals("Deleted")){status = table +" Entries Cleaned";}
	
	else{status = "Error Occured";}
	Debug.Log(hs.text);
	//Stop Running
	runningHsServer = 0;
	SynchTable();
}

function ResetHighScores(table : String,mode : String){
	if(runningHsServer == 1){status = "Still Running"; return;}
	runningHsServer = 1; status = "Running";
	//
	var hsFm : WWWForm = new WWWForm();
	hsFm.AddField("table",table);
	hsFm.AddField("mode",mode);
	hsFm.AddField("count",resetNames);
	hsFm.AddField("min",minResetScore);
	hsFm.AddField("max",maxResetScore);
	var hs : WWW = new WWW(resetScoresURL,hsFm);
	yield hs;
	//Update
	status = hs.text;
	//Running
	runningHsServer = 0;
	SynchTable();
}

function GetUserScore(table : String,name : String){
	runningTrack = 1;//We are seeking user stats
	//
	serverRank = 0;
	serverScore = 0;
	//Get User Score
	var hsFm : WWWForm = new WWWForm();
	hsFm.AddField("name",name);
	hsFm.AddField("table",table);
	hsFm.AddField("hash",GetHash(name));
	var hs : WWW = new WWW(getUserScoreURL,hsFm);
	yield hs;
	Debug.Log(hs.text);
	if(hs.text != "Not Found" && !hs.text.Contains("Query failed")){
		var userData : String[] = hs.text.Split(':'[0]);
		//Process Results
		if(userData[1] != null)serverRank = int.Parse(userData[1]);
		if(userData[2] != null)serverScore = int.Parse(userData[2]);
	}
	else if(hs.text == "Not Found"){
		PlayerPrefs.SetInt("nameRegistered",0);
	}
	runningTrack = 0;
}

function GetHighScores(table : String,scope : String,limit : int){
	if(runningHsServer == 1){status = "Still Running"; return;}
	runningHsServer = 1; status = "Running";
	//Get HighScores
	serverHighScores = new String[maxHighScores];
	for(var st : int = 0;st<serverHighScores.Length;st++){
		serverHighScores[st] = "Loading....";
	}	
	var hsFm : WWWForm = new WWWForm();
	hsFm.AddField("table",table);
	hsFm.AddField("scope",scope);
	hsFm.AddField("limit",limit);
	hsFm.AddField("hash",GetHash(table));
	var hs : WWW = new WWW(getScoresURL,hsFm);
	yield hs;
	
	if(hs.text.Length > 0){
		serverHighScores = hs.text.Split('@'[0]);
		status = "Found "+table+" HighScores";
		Debug.Log("Found HighScores: " + scope+" :" +table);
	}else{
		status = "No "+scope+" Scores";
		Debug.Log("No "+scope+" Scores");
	}
	//Stop Running
	runningHsServer = 0;
	//Get User Stats If Tracking is On & We are Registered
	if(trackType == TrackingType.TrackProgress && PlayerPrefs.GetInt("nameRegistered") == 1){
		StartCoroutine(GetUserScore(difficultyModes[modeIndex].databaseName,serverHighScoreName));
	}
}

function SendHighScores(table : Mode,name : String,score : int,difficultyModesSet : Mode[]){
	if(runningHsServer == 1){status = "Still Running"; return;}
	runningHsServer = 1; status = "Running";
	//Check If We Have Beat Our Own Score First
	if(developmentMode == DeveloperType.live){
		if(PlayerPrefs.GetInt(table.playerPrefsName) <= PlayerPrefs.GetInt("sent"+table.playerPrefsName)){
			status = table.displayName + " Score Previously Submitted"; 
			runningHsServer = 0;
			return;		
		}
	}
	//Trim
	if(name.Length > maxNameCharacters){
		runningHsServer = 0;
		status = "Name Too Long"; return;	
	}
	//Scan & Check Name
	if(blockBadNames && CheckName(name).CompareTo("offensive") == 0){
		runningHsServer = 0;
		status = "Chosen Name Is Offensive"; return;	
	}
	var updating : int = 0; //0 = no we are making a free entry/1 = updating entry
	var newRegistration : int = 0; //We are doing a new registration
	if(trackType == TrackingType.TrackProgress){
		if(PlayerPrefs.GetInt("nameRegistered") == 0){ // We are not yet registred
			newRegistration = 1;
			status = "Registering User";
			var finalResult : String = "";
			var tables : String = "";
			for(var m : int = 0; m < difficultyModesSet.Length; m++){//Create a list of tables to send
				if(m < difficultyModesSet.Length -1){
					tables += difficultyModesSet[m].databaseName + " ";	
				}else{
					tables += difficultyModesSet[m].databaseName;		
				}
			}
			var rsFm : WWWForm = new WWWForm();
			rsFm.AddField("name",name);
			rsFm.AddField("tables",tables);
			rsFm.AddField("hash",GetHash(name));
			var rs : WWW = new WWW(registerUserURL,rsFm);
			yield rs;
			Debug.Log(rs.text+" : "+table.displayName);
			finalResult = rs.text;
			if(finalResult.Equals("Already Used")){
				runningHsServer = 0;
				status = "Name Already Used"; return;
			}else if(finalResult.Equals("Registration Complete")){//We Registered Now Update Score
				PlayerPrefs.SetInt("nameRegistered",1);	
				PlayerPrefs.SetString("registeredName",name);
			}else{
				runningHsServer = 0;
				status = finalResult; return;
			}
		}
		updating = 1; //We need to update entry now
	}
	//SEND OR UPDATE SCORE
	status = "Running"; //Run Again
	var hsFm : WWWForm = new WWWForm();
	hsFm.AddField("table",table.databaseName);
	hsFm.AddField("name",name);
	hsFm.AddField("score",score);
	hsFm.AddField("updating",updating);
	hsFm.AddField("hash",GetHash(name));
	var hs : WWW = new WWW(sendScoreURL,hsFm);
	yield hs;
	Debug.Log(hs.text+" : "+table.displayName);
	//Process Results
	if(hs.text.Contains("Accepted")){
		//Update Score For Anti Spamming
		PlayerPrefs.SetInt("sent"+table.playerPrefsName,PlayerPrefs.GetInt(table.playerPrefsName));
		if(newRegistration == 1){
			status = "Registered & " + table.displayName +" Score Submitted"; 	
		}else{
			status = "New "+ table.displayName +" Score Submitted";
		}
	}
	//Stop Running
	runningHsServer = 0;
	yield new WaitForSeconds(1); //Wait A Second Before Synch
	SynchTable();
}

function SynchTable(){//Update
	StartCoroutine(GetHighScores(difficultyModes[modeIndex].databaseName,currentScope,maxHighScores));	
}
function CheckName(usedName : String) : String{ //Make sure imput name is clean
	var names : String[] = badNamesList.text.Split('\n'[0]); 
	for(var n : String in names){
		if(usedName.Trim().ToLower().IndexOf(n.Trim().ToLower()) > -1){
			return "offensive";
		}
	}
	return "clean";
} 
function GetHash(usedString : String): String{ //Create a Hash to send to server
	var md5 : MD5 = MD5.Create();
	var bytes : byte[] = Encoding.ASCII.GetBytes(usedString+secretKey);
	var hash : byte[] = md5.ComputeHash(bytes);
	
	var sb : String = "";
	for(var i : int = 0; i < hash.Length; i++){
	    sb += hash[i].ToString("x2");
	}
	return sb;
}

function Start(){
	status = "";
	runningHsServer = 0;
	runningTrack = 0;
	StopAllCoroutines();
	//Name Operations
	if(existingNamePlayerPrefs != ""){
		serverHighScoreName = PlayerPrefs.GetString(existingNamePlayerPrefs);
	}
	//Get Base
	startDifficultyMode = Mathf.Clamp(startDifficultyMode,0,difficultyModes.Length-1); //To avoid runtime errors
	modeIndex = startDifficultyMode;
	//Set Initial Settings
	scoreScopeText = scoreScope.allTimeName;
	currentScope = "AllTime";
	//Get Scores
	SynchTable();	
}
	
function OnGUI(){
	if(skin)GUI.skin = skin;
	//Set Base Rect
	baseRect = new Rect(Screen.width * .5F,Screen.height * .5F,100F,100F);
	//Update User Score
	localScore = PlayerPrefs.GetInt(difficultyModes[modeIndex].playerPrefsName);
	//Status Box
	if(displayOptions.showStatus){
		GUI.Box(new Rect(baseRect.x - messageOffsetBox.x,baseRect.y - messageOffsetBox.y,
		messageOffsetBox.width,messageOffsetBox.height),status);
	}
	if(displayOptions.showUserScore){
		//Local Score Box
		GUI.Box(new Rect(baseRect.x - localScoreOffsetRect.x,baseRect.y - localScoreOffsetRect.y,localScoreOffsetRect.width,localScoreOffsetRect.height)
			,"Local "+difficultyModes[modeIndex].displayName+" Score : "+localScore+" "+scoreType);
		if(trackType == TrackingType.TrackProgress){
			if(PlayerPrefs.GetInt("nameRegistered") == 1){
				if(runningTrack == 0){
					GUI.Box(new Rect(baseRect.x - serverScoreOffsetRect.x,baseRect.y - serverScoreOffsetRect.y,serverScoreOffsetRect.width,serverScoreOffsetRect.height)
						,"Global "+difficultyModes[modeIndex].displayName+" Score : "+serverScore+" "+scoreType +"\n"
					+ "Global Rank: "+serverRank);
				}else{
					GUI.Box(new Rect(baseRect.x - serverScoreOffsetRect.x,baseRect.y - serverScoreOffsetRect.y,
						serverScoreOffsetRect.width,serverScoreOffsetRect.height),"Seeking Stats");	
				}
			}else{
				GUI.Box(new Rect(baseRect.x - serverScoreOffsetRect.x,baseRect.y - serverScoreOffsetRect.y,
					serverScoreOffsetRect.width,serverScoreOffsetRect.height),"Send Score To Register");	
			}
		}
	}
	if(displayOptions.showDifficultySwitch){
		//Get & Show High Scores
		if(GUI.Button(new Rect(baseRect.x - getScoresOffsetRect.x,baseRect.y - getScoresOffsetRect.y,
			getScoresOffsetRect.width,getScoresOffsetRect.height),""+difficultyModes[modeIndex].displayName)){
			if(modeIndex < difficultyModes.Length - 1){
				modeIndex++;
			}else{modeIndex = 0;}
			//Update	
			StartCoroutine(GetHighScores(difficultyModes[modeIndex].databaseName,currentScope,maxHighScores));
			localScore = PlayerPrefs.GetInt(difficultyModes[modeIndex].playerPrefsName);
		}
	}
	if(displayOptions.showScopeSwitch){
		//Set Scope
		if(GUI.Button(new Rect(baseRect.x - scoreScopeOffsetRect.x,baseRect.y - scoreScopeOffsetRect.y,
			scoreScopeOffsetRect.width,scoreScopeOffsetRect.height),""+scoreScopeText)){
			if(scoreScopeText.Equals(scoreScope.allTimeName)){
				scoreScopeText = scoreScope.dailyName;
				currentScope = "Daily";
			}else{
				scoreScopeText = scoreScope.allTimeName;
				currentScope = "AllTime";
			}
			
			StartCoroutine(GetHighScores(difficultyModes[modeIndex].databaseName,currentScope,maxHighScores));
		}
	}
	if(displayOptions.showSendScore){
		//Send Scores
		GUILayout.BeginArea(new Rect(baseRect.x - sendScoresOffsetRect.x,baseRect.y - sendScoresOffsetRect.y,
			sendScoresOffsetRect.width,sendScoresOffsetRect.height));
		GUILayout.BeginHorizontal();
		if(trackType == TrackingType.TrackProgress && PlayerPrefs.GetInt("nameRegistered") == 1){
			serverHighScoreName = PlayerPrefs.GetString("registeredName");
			GUILayout.Box(serverHighScoreName,GUILayout.Width(150),GUILayout.Height(30));
		}else{
			serverHighScoreName = GUILayout.TextField(serverHighScoreName,GUILayout.Width(150));	
		}
		if(GUILayout.Button("Send")){
			StartCoroutine(SendHighScores(difficultyModes[modeIndex],serverHighScoreName,localScore,difficultyModes));
		}
		GUILayout.EndHorizontal();
		GUILayout.EndArea();
	}
	//Display Scores
	if(displayOptions.showScores){
		GUILayout.BeginArea(new Rect(baseRect.x - scoresListOffsetRect.x,baseRect.y - scoresListOffsetRect.y,
			scoresListOffsetRect.width,scoresListOffsetRect.height));
		scrollView = GUILayout.BeginScrollView(scrollView);
			for(var x : int = 1;x<serverHighScores.Length;x++){
				if(x > maxHighScores){break;}
				if(serverHighScores[x] != null){
					var score : String[] = serverHighScores[x].Split(':'[0]); //Split the Score From PHP set Up
					if(score.Length > 1){
						GUILayout.BeginHorizontal();
						GUILayout.Label(x.ToString()+": ");
						GUILayout.Space(10);
						GUILayout.Label(score[0],GUILayout.Width(200),GUILayout.Height(30));
						GUILayout.FlexibleSpace();
						GUILayout.Label(score[1]+" "+scoreType,GUILayout.Width(150),GUILayout.Height(30));
						GUILayout.EndHorizontal();
					}
				}else{
					GUILayout.Label(serverHighScores[x] +" "+scoreType,GUILayout.Width(100));
				}
			}
		GUILayout.EndScrollView();
		GUILayout.EndArea();
	}
	//Editor Tools
	if(developmentMode == DeveloperType.debug){
		EditorTools();
	}
}
	
function EditorTools(){
	GUILayout.BeginHorizontal();
	GUILayout.Label("",GUILayout.Width(Screen.width - 230));
	GUILayout.FlexibleSpace();
	GUILayout.BeginVertical();
	GUILayout.Space(100);
	GUILayout.Box("CREATE",GUILayout.Width(200));
	if(GUILayout.Button("Create Tables",GUILayout.Width(200))){
		StartCoroutine(DatabaseTools(0,difficultyModes));
	}
	GUILayout.Box("MANAGE",GUILayout.Width(200));
	if(GUILayout.Button("Reset All "+difficultyModes[modeIndex].displayName,GUILayout.Width(200))){
		StartCoroutine(ResetHighScores(difficultyModes[modeIndex].databaseName,"Reset"));	
	}
	if(GUILayout.Button("Delete All "+difficultyModes[modeIndex].displayName,GUILayout.Width(200))){
		StartCoroutine(ResetHighScores(difficultyModes[modeIndex].databaseName,"Delete"));
	}
	if(GUILayout.Button("Delete Below Score: " +difficultyModes[modeIndex].displayName ,GUILayout.Width(200))){
		StartCoroutine(DatabaseTools(1,difficultyModes[modeIndex].databaseName));	
	}
	GUILayout.BeginHorizontal();
	GUILayout.Box(""+deleteScore,GUILayout.Width(50));
	deleteScore = Mathf.CeilToInt(GUILayout.HorizontalSlider(deleteScore,1,maxResetScore,GUILayout.Width(150)));
	GUILayout.EndHorizontal();
	//
	if(GUILayout.Button("Delete Below Date: "+difficultyModes[modeIndex].displayName,GUILayout.Width(200))){
		StartCoroutine(DatabaseTools(2,difficultyModes[modeIndex].databaseName));	
	}
	GUILayout.BeginHorizontal();
	GUILayout.Label(""+year,GUILayout.Width(30));
	year = Mathf.CeilToInt(GUILayout.HorizontalSlider(year,2012,2013,GUILayout.Width(30)));
	GUILayout.Label(""+month,GUILayout.Width(20));
	month = Mathf.CeilToInt(GUILayout.HorizontalSlider(month,1,12,GUILayout.Width(40)));
	GUILayout.Label(""+day,GUILayout.Width(20));
	day = Mathf.CeilToInt(GUILayout.HorizontalSlider(day,1,31,GUILayout.Width(40)));
	GUILayout.EndHorizontal();
	GUILayout.Box("TEST DATA",GUILayout.Width(200));
	if(GUILayout.Button("Null Registration",GUILayout.Width(200))){
		PlayerPrefs.SetInt("nameRegistered",0);	
		PlayerPrefs.SetString("registeredName","");
	}
	//
	GUILayout.BeginHorizontal();
	GUILayout.Box("Score: "+PlayerPrefs.GetInt(difficultyModes[modeIndex].playerPrefsName),GUILayout.Width(100));
	PlayerPrefs.SetInt(difficultyModes[modeIndex].playerPrefsName,Mathf.CeilToInt(GUILayout.HorizontalSlider(PlayerPrefs.GetInt(difficultyModes[modeIndex].playerPrefsName),1,maxResetScore,GUILayout.Width(100))));
	GUILayout.EndHorizontal();
	//
	GUILayout.EndVertical();
	GUILayout.EndHorizontal();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É Simples!

 

Segue exemplo:

  
<?php

$email = 'nabil@hotmail.com';

#======APENAS O NOME========#
$name = preg_replace('/@.*?$/', '', $email);
echo $name;

#======EMAIL COMPLETO========#
echo '<pre>';
preg_match('/[a-z\d._%+-]+@[a-z\d.-]+\.[a-z]{2,4}\b/i', $email,$match);
print_r($match) ;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

em qual parte coloco? e qual deleto por favor

<?php
 
    function Connect(){
        //Set global variables so they can be used in this function
        global $hostName; global $userName;
        global $password; global $database;
        $status = mysql_connect($hostName,$userName,$password); //Attempt to connect to Database
     
        if(!$status){echo 'Server Not Found'; exit;} //Hosting Server not found
        if(!@mysql_select_db($database)){echo 'Database Not Found'; exit;} //Database not found
        return $status; //Return link on established connection
    }
    function CheckKey($hash,$name){  //Check weather Md5 hash matches
        global $secretKey;
        $checkHash = md5($name.$secretKey);
        if(strcmp($checkHash,$hash) == 0){
            return 'pass'; //hash matches
        }else{
            return 'fail'; //hash failed
        }
    }
    function CleanInput($input){ //Sanitize user input
        $cleanInput = mysql_real_escape_string($input); //Use string escape
        if(preg_match('/[^@.a-z_\-0-9\s]/i',$cleanInput) == 1){ // Using regular expression
            echo 'Bad Input ==> ' . $input; exit; //Failed, exit to prevemt sql injection hacks
        }
        return $cleanInput; //Return clean input
    }
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@nabilfx,

 

Essa é a função que limpa os dados enviados "Sanitize user input"

function CleanInput($input){ //Sanitize user input
        $cleanInput = mysql_real_escape_string($input); //Use string escape
        if(preg_match('/[^@.a-z_\-0-9\s]/i',$cleanInput) == 1){ // Using regular expression
            echo 'Bad Input ==> ' . $input; exit; //Failed, exit to prevemt sql injection hacks
        }
        return $cleanInput; //Return clean input
    }

Veja como funciona e adicione o que eu postei da maneira que achar melhor.

 

 

Lembrando que a intenção do fórum é ajudar e não entregar a solução pronta.

 

 

Abraço =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloquei o script assim, mais da um erro. Posso te mandar o packague que comprei na unity store, pra vc ver?

function CleanInput($input){ //Sanitize user input        $email = 'nabil@hotmail.com';                #======APENAS O NOME========#        $name = preg_replace('/@.*?$/', '', $email);        echo $name;                #======EMAIL COMPLETO========#        echo '<pre>';        preg_match('/[a-z\d._%+-]+@[a-z\d.-]+\.[a-z]{2,4}\b/i', $email,$match);        print_r($match) ;            ?>

No mysql os email esta se registrando, deve ser o dis[play que tem algo errado?

 

 

mira.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por ILR master
      Fala galera, tudo bem?
       
      Tenho o seguinte codigo:
       
       class Data {
      public static function ExibirTempoDecorrido($date)
      {
          if(empty($date))
          {
              return "Informe a data";
          }
          $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
          $duracao = array("60","60","24","7","4.35","12","10");
          $agora = time();
          $unix_data = strtotime($date);
          // check validity of date
          if(empty($unix_data))
          {  
              return "Bad date";
          }
          // is it future date or past date
          if($agora > $unix_data) 
          {  
              $diferenca     = $agora - $unix_data;
              $tempo         = "atrás";
          } 
          else 
          {
              $diferenca     = $unix_data - $agora;
              $tempo         = "agora";
          }
          for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
          {
              $diferenca /= $duracao[$j];
          }
          $diferenca = round($diferenca);
          if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
          return "$diferenca $periodos[$j] {$tempo}";
      }
      }
       
      Funciona redondinho se o valor retornado for de algumas horas, mas...
      Quando passa de dois meses, ele retorna a palavra mess. Deve ser por conta dessa linha
      if($diferenca != 1) 
          {
              $periodos[$j].= "s";
          }
       
      Quero que modre:
       
      2 meses atrás
      e não
      2 mess atrás.
       
      Espero que tenham entendido.
       
      Valeu
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.