Conversion de php5 a php7

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
lesthersrv
Forista Nuevo
Forista Nuevo
Mensajes: 7
Registrado: Vie Ene 26, 2018 1:41 am

Conversion de php5 a php7

Mensaje por lesthersrv » Sab Ene 27, 2018 10:03 am

Hola amigos,

Como podria converti, este codigo de php5 a php7, resulta que actualice y me lleve en el saco toda la aplicacion :(

Código: Seleccionar todo

<?php 

include_once("./config/config.php");


function connect_to_users_db() {
	global $C_USERS_DBHOST,$C_USERS_DB, $C_USERS_DBUSER, $C_USERS_DBPASS,$lang;
	$link = mysql_connect($C_USERS_DBHOST, $C_USERS_DBUSER, $C_USERS_DBPASS) 
		or 
		die($lang['cf']['noconnect']." $C_USERS_DBHOST, $C_USERS_DBUSER , $C_USERS_DBPASS ". mysql_error());
	
	if (!mysql_select_db($C_USERS_DB)) {
		// couldn't connect
		echo $lang['cf']['noselect']." ($C_USERS_DB)";
	}
	return $link;
}

function mydie($string)
{
	echo "<p class='error'> $string </p>";
	exit();
}

function send_confirmation_email($email,$token) {
	global $C_web_master,$C_web_master_EMAIL,$lang;
	$base = dirname($_SERVER["PHP_SELF"]);
	$WiFiAdmin_BASE_URL =  "http://".$_SERVER["SERVER_NAME"].$base."/";
	return mail($email, 
	$lang['cf']['msg'],
	$lang['cf']['msg2']. $WiFiAdmin_BASE_URL."confirm_account.php?token=".base64_encode($token).$lang['cf']['tx'].$C_web_master,
	 "From: $C_web_master <$C_web_master_EMAIL>\n");    
}

function echo_user_add_form(){
	global $lang;
	?>
	<h2><?php echo $lang['useredit']['regnewusr']?></h2>
	<form name="register" onSubmit="submitonce(this)" action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
	<table class="t1" align="center">
		<tr><td><?php echo $lang['useredit']['uname'] ?></td><td><input type="text" name="username"></td></tr>
		<tr><td><?php echo $lang['useredit']['pass'] ?></td><td><input type="password" name="password"></td></tr>
		<tr><td><?php echo $lang['useredit']['repass'] ?></td><td><input type="password" name="retype"></td></tr>
		<tr><td><?php echo $lang['useredit']['mail'] ?></td><td><input type="text" name="email"></td></tr>
		<tr><td><?php echo $lang['useredit']['macaddr'] ?></td><td><input type="text" name="mac"></td></tr>
		<tr><td><?php echo $lang['useredit']['ipaddr'] ?></td><td><input type="text" name="ip"></td></tr>
		<tr><td><?php echo $lang['useredit']['subnet'] ?></td><td><input type="text" name="subnet"></td></tr>
		<tr><td><?php echo $lang['useredit']['fname'] ?></td><td><input type="text" name="firstname"></td></tr>
		<tr><td><?php echo $lang['useredit']['lname'] ?></td><td><input type="text" name="lastname"></td></tr>
		<tr><td><?php echo $lang['useredit']['phone1'] ?></td><td><input type="text" name="phone1"></td></tr>
		<tr><td><?php echo $lang['useredit']['phone2'] ?></td><td><input type="text" name="phone2"></td></tr>
		<tr><td><?php echo $lang['useredit']['ant'] ?></td><td><input type="text" name="antenna"></td></tr>
		<tr><td><?php echo $lang['useredit']['windid'] ?></td><td><input type="text" name="nodedb_id"></td></tr>
		<tr><td valign="top"><?php echo $lang['useredit']['services'] ?></td><td><textarea rows="5" cols="25" name="services"></textarea></td></tr>
		<tr><td><?php echo $lang['useredit']['comment'] ?></td><td><input type="text" name="comment"></td></tr>
		<tr><td colspan="2" class="error"><?php echo $lang['general']['mandatory'] ?></td>
	</table>
	<input type="hidden" name="action" value="add_user">
	<div align="center"><input type="submit" value="<?php echo $lang['useredit']['submituser']?>"></div>
	</form>
<br \>
<br \>
	
	<?php
}

function add_user( $user_info, $send_confirmation_email){
	global $C_USERS_DB,$lang;
	//form completion errors
	$errors = "";
	if(empty($user_info['username']))
		$errors = error_echo($lang['useredit']['enouser']);
	if(empty($user_info['password']))
		$errors .= error_echo($lang['useredit']['enopass']);
	if($user_info['password']!=$user_info['retype'])
		$errors .= error_echo($lang['useredit']['enopassmatch']);
	if(empty($user_info['email']))
		$errors .= error_echo($lang['useredit']['enoemail']);
	if(empty($user_info['mac']) || !isset($user_info['ip']))
		$errors .= error_echo($lang['useredit']['enomac']);

	if(strlen($errors))		//if there are user errors, print and die
		mydie($errors);

	//database errors
	connect_to_users_db();

	foreach($user_info as $key=>$var)
	{
		$user_info[$key]=mysql_escape_string($var);
		if(!isset($user_info[$key]))
			$user_info[$key]="";
	}

	$sql = "SELECT username FROM $C_USERS_DB.user WHERE username = '".$user_info['username']."'";
	$user = mysql_query($sql) or
		mydie($lang['dict']['error']." ". mysql_error() );
	if(mysql_fetch_array($user))
		mydie($lang['cf']['eusernameexist']);

	$sql = "SELECT email FROM $C_USERS_DB.user WHERE email = '".$user_info['email']."'";
	$email = mysql_query($sql) or
		mydie($lang['dict']['error']." ". mysql_error());
	if(mysql_fetch_array($email))
		mydie($lang['cf']['eemailexist']);

////Insert DATA into user database!
	 $insert =	"INSERT INTO $C_USERS_DB.user
	(username,password,email,mac,ip,owns_subnet,services,phone1,phone2,antenna,nodedb_id,comment,firstname,lastname,password_string)
     VALUES ('" .$user_info['username']. "', '" .md5($user_info['password']). "', '" .$user_info['email']. "',
     '" .$user_info['mac']. "', '" .$user_info['ip']. "','" .$user_info['subnet']. "', '" .$user_info['services'].
     "', '" .$user_info['phone1']. "', '" .$user_info['phone2']. "', '" .$user_info['antenna']."', '" .$user_info['nodedb_id']."', '"
     .$user_info['comment']. "', '" .$user_info['firstname']."', '" .$user_info['lastname']."', '".$user_info['password']."')";

	$privilege = "INSERT INTO $C_USERS_DB.privileges
	(username,view_status,view_status_ext,view_macs,ban_users,access_ifs,edit_users, edit_privileges  )
	VALUES ('".$user_info['username']."','true','false','false','false','false','false','false')";

 	mysql_query($insert)
  		or mydie($lang['cf']['eusrreg']." ". mysql_error());

  	mysql_query($privilege)
  		or mydie($lang['cf']['eusrreg2']." ". mysql_error());
	
	
	if ($send_confirmation_email){
		send_confirmation($user_info['username']);
	}
	else{
		$token = time() . "::".$user_info["username"];
		$sql = "INSERT INTO user_tokens (username,status,token) VALUES ('".$user_info['username']."','enabled','".mysql_escape_string($token)."')";
		mysql_query($sql) or mydie("Error in query: $sql - ".mysql_error());
		echo "<p>".$lang['cf']['success']."</p>";
	}
}

function send_confirmation($username) {
	global $lang;

	$sql = "SELECT email FROM user WHERE username = '".$username."'";
	$user = mysql_query($sql) or mydie($lang['dict']['error']." ". mysql_error() );
	if(! $row = mysql_fetch_array($user)) 
		mydie($lang['cf']['eusernamebexist']);
	$email = $row[0];
	
	$token = time() . "::".$username;
	$sql = "SELECT * FROM user_tokens WHERE username='".$username."'";
	$result = mysql_query($sql) or mydie("Error in query: $sql - ".mysql_error());
	if(mysql_fetch_array($result)) 
		$sql = "UPDATE user_tokens SET token='".mysql_escape_string($token)."',status='unconfirmed' WHERE username='".$username."'";
	else
		$sql = "INSERT INTO user_tokens (username,status,token) VALUES ('".$username."','unconfirmed','".mysql_escape_string($token)."')";
	mysql_query($sql) or mydie("Error in query: $sql - ".mysql_error());

	if (!send_confirmation_email($email,$token))
		mydie($lang['fpass']['error']);
	else
		echo ("<p>".$lang['cf']['confirm']."</p>");
}


?>
Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1801
Registrado: Dom Oct 10, 2004 7:00 am

Re: Conversion de php5 a php7

Mensaje por neurus » Sab Ene 27, 2018 5:51 pm

Ese código es un caos. Hay html mezclado con funciones php, las claves de la base de datos, en lugar de estar en un archivo aparte al que se llama con include (en realidad una función de conexión, ya que no estás usando clases), están como variables globales...

Aparentemente es un formulario de registro. No es tan largo ni tan complejo hacerlo de nuevo, bien hecho.

En cualquier caso: ¿cuál es el error que te da el sistema? A lo mejor puedes arreglar sólo esa parte, por ahora. Pero tarde o temprano a ese código hay que reescribirlo.
Avatar de Usuario
maiku
Moderador
Moderador
Mensajes: 1520
Registrado: Jue Abr 19, 2007 7:00 am
Ubicación: Cojutepeque, El Salvador C. A.
Contactar:

Re: Conversion de php5 a php7

Mensaje por maiku » Sab Ene 27, 2018 9:30 pm

Utiliza mysqli o PDO en vez de mysql
Esta extensión fue declarada obsoleta en PHP 5.5.0 y eliminada en PHP 7.0.0. En su lugar debería utilzarse las extensiones MySQLi o PDO_MySQL.
http://php.net/manual/es/function.mysql-connect.php
Grüße...
Maiku

Full linux alchemist!!!
lesthersrv
Forista Nuevo
Forista Nuevo
Mensajes: 7
Registrado: Vie Ene 26, 2018 1:41 am

Re: Conversion de php5 a php7

Mensaje por lesthersrv » Dom Ene 28, 2018 9:48 am

Ese es el problema, que no se usar mysqli ni tampoco pdo. Voy a buscar como hacer rollback de version de php :(
Avatar de Usuario
maiku
Moderador
Moderador
Mensajes: 1520
Registrado: Jue Abr 19, 2007 7:00 am
Ubicación: Cojutepeque, El Salvador C. A.
Contactar:

Re: Conversion de php5 a php7

Mensaje por maiku » Dom Ene 28, 2018 3:09 pm

Por gracioso que parezca, todas tus funciones únicamente deben llevar "mysqli", y funcionarán, algunas no podrán hacerlo claro está, pero funciona en la gran mayoría. Debes planear una migración, más por seguridad que por otra cosa.
Grüße...
Maiku

Full linux alchemist!!!
Avatar de Usuario
elhui2
Forista Medio
Forista Medio
Mensajes: 361
Registrado: Vie Abr 11, 2008 7:00 am
Ubicación: D.Fectuoso
Contactar:

Re: Conversion de php5 a php7

Mensaje por elhui2 » Dom Ene 28, 2018 10:55 pm

Deberías plantearte reescribir ese código, pero si necesitas echar a andar ese proyecto urgentemente, yo hice esto y me funciono.

https://unix.stackexchange.com/question ... -on-debian

Saludos.
No te establezcas en una forma, adáptala y construye la tuya propia, y déjala crecer, sé como el agua. Vacía tu mente, se amorfo, moldeable, como el agua. B.L.
Mi Blog
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje