Manual de programador sistema experto bovino online

4,232 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,232
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
155
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Manual de programador sistema experto bovino online

  1. 1. UNIVERSIDAD DEL TOLIMAIDEAD PROGRAMA INGENIERIA DE SISTEMAS POR CICLOSPROYECTO:DIAGNOSTICACION DE ENFERMEDADES EN EL GANADO BOVINO ASISTIDOPOR UN SOFTWARE DE SISTEMA EXPERTO.MANUAL DEL PROGRAMADORPROYECTO FIN DE CARRERAREALIZADO POR: EDWIN GEOVANNY SANCHEZ JARAMILLOGIOVANNI ALEJANDRO GONZALEZ GARAVITOHENRY MAURICIO ARENAS CANIZALESOSCAR ANIBAL BERNAL GARCIADIRIGIDO POR EL TUTOR: ANGEL ALBERTO CANOINGENIERO DE SISTEMASIbagué 23 de junio 2013
  2. 2. SOFTWARE DE GESTION Y DIAGNOSTICO VIRTUAL DE TRATAMIENTO DEENFERMEDADES EN EL GANADO BOVINOTrabajo presentado como requisito para proyecto de investigación formativaCICLO PROFESIONALEDWIN GEOVANNY SANCHEZ JARAMILLOGIOVANNI ALEJANDRO GONZALEZ GARAVITOHENRY MAURICIO ARENAS CANIZALESOSCAR ANIBAL BERNAL GARCIAUNIVERSIDAD DEL TOLIMAINSTITUTO DE EDUCACION A DISTANCIA IDEADINGENIERIA DE SISTEMAS POR CICLOSIBAGUE -TOLIMA2013
  3. 3. SEB-ONLINESISTEMA EXPERTO BOVINO – ONLINE
  4. 4. INDICE (MANUAL DEL PROGRAMADOR)1. INTRODUCCION AL MANUAL DEL PROGRAMADOR………………….11.- Introducción…………………………………………....12. PROGRAMACION………………………….…………………………………21.- Fundamentos de Programación……………………..12.- Programación del Programa Principal.....……….....2
  5. 5. 1. INTRODUCCIO AL MANUAL DEL PROGRAMADOR.1.- Introducción.El propósito de este manual del programador, es dar a conocer al lector loscódigos fuentes del programa realizado. Para ello tratamos de forma amena yconcisa cada uno de los códigos junto con la programación utilizada en eldesarrollo del software, esto con el fin de que el usuario pueda modificar a gustoalguno de los valores y parámetros de las funciones que se encuentran expuestasen la programación del SBE-ONLINE.
  6. 6. 2. PROGRAMACION1.- Fundamentos de programación.Para inicial el programa se utilizan dos opciones esenciales, primero registrarse, ysegundo después de estar registrado, Loguearse.Hemos incluido un ejemplo que ilustrara fácilmente la iniciación de los dos pasosanteriormente enunciados, esto será utilizado para que los usuarios nuevos seenteren de cómo se da inicio o arranque al programa.Primero Registrarse:Damos clic en, ¿no estas registrado?
  7. 7. Segundo paso: al introducir el usuario y la contraseña creada el programa nos dala bienvenida mostrándonos un menú donde encontraremos las diferentesfunciones que nos ofrece el servicio del programa.Lo presentado anteriormente es únicamente la forma de inicio necesario para elprograma, la cual es la forma estándar de inicio.De esta manera estamos dentro delformulario de registro de usuarioLuego de llenar los espacios damosregistrarRegistros Consultas Diagnostico
  8. 8. 2.- Programación del programa principaluser_auth_fns:mysqli_query:Realiza una consulta o busqueda(query) en la base de datos.Para consultas que no sean DML (distintas de INSERT, UPDATE oDELETE), esta funcion es similar a invocar a mysqli_real_query()seguida de mysqli_use_result() o mysqli_store_result().<?require_once("db_fns.php");$error;function register($username, $email, $password, $nombre,$apellido,$celular){if ($conn = db_connect()) {// check if username is unique$result=mysqli_query($conn,"select * from user whereusername=$username");if (!$result){global $error;$error="No se pudo ejecutar la petición";return false;exit;}else{$num=mysqli_num_rows($result);
  9. 9. if($num > 0) {global $error;$error= "Ese nombre de usuario ya esta ocupado -vuelve y elige otro.";return false;exit;}else{$result=mysqli_query($conn,"insert into user(username, pass, email, nombre, apellido, celular) values($username,SHA1($password), $email,$nombre,$apellido,$celular)");if (!$result) {global $error;$error="No has podido ser registrado enla base de datos - por favor inténtalo más tarde.";return false;}else return true;}}}else {global $error;$error= "No se puede conectar al servidor de la base dedatos - por favor inténtalo más tarde.";return false;}}function login($username, $password){if ($conn = db_connect()){// check if username is unique$result = mysqli_query($conn,"select * from user whereusername=$username and pass = SHA1($password)");$num=mysqli_num_rows($result);if ($num > 0)return true;elsereturn false;}}function check_valid_user()// see if somebody is logged in and notify them if not{if (isset($_SESSION["valid_user"])){$valid_user = $_SESSION["valid_user"];
  10. 10. echo "Logged in como $valid_user";echo "<br>";}else{// they are not logged indo_html_heading("Problema:");echo "No estás logged in.<br>";do_html_url("index.php", "Login");do_html_footer();exit;}}?>show_med<?require("bovino_fns.php");session_start();do_html_header("Medicamentos");check_valid_user();$med_array = get_meds($_GET["cod]);display_meds($med_array);do_html_footer();
  11. 11. ?>register_new:Nota:ECHO no es realmente una función (es una construcción dellenguaje), por lo que no es necesario utilizar paréntesis con él.Echo (a diferencia de algunas otras construcciones de lenguaje)no se comporta como una función, por lo que no siempre puedeser utilizado en el contexto de una función. Además, si usteddesea pasar más de un parámetro de eco, los parámetros nodeben estar encerrados entre paréntesis.
  12. 12. $_POST:Un array asociativo de variables pasadas al script actual a travésdel método HTTP POST.$HTTP_POST_VARS contiene la misma información inicial, perono es una superglobal. (Nótese que $HTTP_POST_VARS y$_POST son diferentes variables y que PHP las trata de formadistinta)<?require_once("bovino_fns.php");session_start();if(isset($_POST) && !empty($_POST)){if(filled_out($_POST)){var_dump($_POST);$pass = $_POST["pass"];if (strlen($pass)<6 || strlen($pass) >100){do_html_header("Problema:");echo "Tu contraseña debe tener minimo 6caracteres y max 100 ."."Por favor vuelve e inténtalo de nuevo.";do_html_footer();exit;}if ($pass != $_POST["passwd2"]){do_html_heading("Problema:");echo "La contraseña que has entrado no concuerda- por favor vuelve"." e inténtalo de nuevo.";do_html_url("register_form.php", "atras");do_html_footer();exit;}if (!valid_email($_POST["email"])){do_html_header("Problema:");echo "No es una dirección email válida. Porfavor vuelve "." e inténtalo de nuevo.";do_html_footer();exit;}
  13. 13. $celular = $_POST["celular"];if (!valid_cel($celular)){do_html_header("Problema:");echo "No es un numero celular válido. Por favorvuelve "." e inténtalo de nuevo.";do_html_footer();exit;}if (strlen($celular)<10){do_html_header("Problema:");echo "Tu celular debe tener 10 numeros ."."Por favor vuelve e inténtalo de nuevo.";do_html_footer();exit;}$reg_result = register($_POST["username"],$_POST["email"],$pass,$_POST["nombre"],$_POST["apellido"],$celular);if ($reg_result){$valid_user = $_POST["username"];$_SESSION["valid_user"] = $valid_user;do_html_header("Registro correcto");echo "Tu registro se ha hecho correctamente.";display_user_menu();do_HTML_URL("member.php", "Ir a la página demiembros");do_html_footer();exit;}else{do_html_header("Problema:");echo"no se pudo registrar el usuario ";echo $GLOBALS[error];do_html_footer();exit;}}else{do_html_header("Problema:");echo "No has cubierto el formulario correctamente- Por favor vuelve e inténtalo de nuevo. ";do_html_footer();exit;}}else{echo <scripttext="text/javascript">location.href="register_form.php"</script>;}
  14. 14. ?>register_form:<?require_once("bovino_fns.php");do_html_header("Registrar Usuario");display_registration_form();do_html_footer();?>
  15. 15. register_ani:$GLOBALS — Hace referencia a todas las variables disponiblesen el ámbito globalDescripción:Es un array asociativo que contiene las referencias a todas lavariables que están definidas en el ámbito global del script. Losnombres de las variables son las claves del array.<?require_once("bovino_fns.php");session_start();if(isset($_POST) && !empty($_POST)){if(filled_out($_POST)){$username= $_SESSION["valid_user"];$reg_result = registerAnimal($username,$_POST["nomanimal"], $_POST["estatura"], $_POST["peso"],$_POST["color"], $_POST["raza"], $_POST["sexo"],$_POST["nacimiento"]);if ($reg_result){do_html_header("Registro correcto");
  16. 16. echo "Tu registro se ha hechocorrectamente.";display_user_menu();do_html_footer();exit;}else{do_html_header("Problema:");echo"no se pudo registrar el animal. ";echo $GLOBALS[error];display_user_menu();do_html_footer();exit;}}else{do_html_header("Problema:");echo "No has cubierto el formulario correctamente- Por favor vuelve e inténtalo de nuevo.";do_html_footer();exit;}}else{echo <scripttext="text/javascript">location.href="ani_regis_form.php"</script>;}?>
  17. 17. output_fn:<INPUT>La tag <input> define la introducción de variables. Junto a estatag encontraremos los siguientes atributos:type="" Indicará el tipo de variable a introducir.text Indica que el campo a introducir será un texto. Sus atributos:maxlenght="" Seguido de un valor que limitará el número máximode carácteres a introducir en ese campo.size="" Seguido de un valor que limitará el numero de carácteresa mostrar en pantalla.value="" Indica que no hay valor inicial del campo.Password Indica que el campo a introducir será una palabra depaso. Mostrará asteriscos en lugar de letras escritas. Susatributos serán los mismos que para text.
  18. 18. Checkbox El campo se elegirá marcando de entre varias opcionesuna casilla cuadrada.value="" Entre comillas se indicará el valor de la casilla.checked La casilla aparecerá marcada por defecto.Radio El campo se elegirá marcando de entre varias opciones unacasilla circular.value="" Entre comillas se indicará el valor de la casilla.Image El campo contendrá el valor en coordenadas del punto dela imagen que haya pinchado. Atributo obligatorio:src="" Entre comillas escribiremos el nombre del archivo deimagen.hidden El visitante no puede modificar su valor ya que no estávisible. Se manda siempre junto al atributo value= seguido de suvalor entre comillas.Name="" Indicará el nombre que se asigna a un determinadocampo.<?phpfunction do_html_header($title){// print an HTML header?><!DOCTYPE HTML><html lang="es"><head><title><?=$title?></title><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><link rel="stylesheet" href="js/jquery.mobile.structure.css"/><link rel="stylesheet" href="css/jquery.mobile.css" /><script src="js/jquery.js"></script><script src="js/jquery.mobile.js"></script><style type="text/css">li.centrado, h1.centrado,p.centrado{text-align:center;}</style></head><body><div data-role="page"><?if($title)do_html_heading($title);
  19. 19. }function do_html_footer(){// print an HTML footer?></div><!--page--></body></html><?}function do_html_heading($heading){// print heading?><header data-role="header"><h1><?=$heading?></h1><a href="#" data-rel="back">atras</a><a href="info.php">info</a></header><?}function display_user_menu(){// display the menu options on this page?><footer data-role="footer" data-position="fixed"><nav data-role="navbar"><ul><li><a href="member.php" data-icon="home">Inicio</a></li><li><a href="ani_regis_form.php" data-icon="edit">Registraranimal</a></li><li><a href="ani_query_form.php" data-icon="search">Consultar animales</a></li><li><a href="diag_form.php" data-icon="grid">Diagnosticar</a></li><li><a href="logout.php" data-icon="back">Logout</a></li></ul></nav></footer><?}function do_html_URL($url, $name){// output URL as link and br?><br><a href="<?=$url?>"><?=$name?></a><br><?
  20. 20. }function display_site_info(){// display some marketing info?><section><p class="centrado">Registra tus animales!diagnostica sus enfermedades!</p></section><?}function display_login_form(){?><article data-role="content"><h1>Login</h1><a href="register_form.php" data-transition="slidedown">¿No estas registrado?</a><form action="member.php" method="post"><table><tr><td>Usuario:</td><td><input type="text" name=username required></td></tr><tr><td>Contraseña:</td><td><input type="password" name=passrequired></td></tr><tr><td></td><td><input type="submit" value="conectar"></td></tr></table></form></article><?}function display_registration_form(){?><article data-role="content">
  21. 21. <form action="register_new.php" method="post" ><table><tr><td>Nombre usuario<br>(max 20 caract):</td><td><input type=text name=username size=16 maxlength=20required></td></tr><tr><td>Contraseña <br>(min 6 caract):</td><td ><input type=password name=pass size=16 maxlength=16required></td></tr><tr><td>Confirmar contraseña:</td><td><input type=password name=passwd2 size=16maxlength=16 required></td></tr><tr><td>Direccion email:</td><td><input type=email name=emailplaceholder="usuario@dominio.com" size=30 maxlength=100required></td></tr><tr><td>Nombre:</td><td><input type=text name=nombre size=30 maxlength=50required></td></tr><tr><td>Apellido:</td><td><input type=text name=apellido size=30 maxlength=50required></td></tr><tr><td>celular:</td><td><input type=text name=celular size=10 maxlength=10required></td></tr><tr><td colspan=2 align=center><input type=submit value="Registrar"></td></tr></table></form></article><?}function display_animal($resultado){$num=mysqli_num_rows($resultado);if($num == 0){echo "No has registrado animales";display_user_menu();do_html_footer();exit;
  22. 22. }?><article data-role="content"><ul data-role="listview" data-filter="true"><?for($i=0; $i<$num; $i++){$row=mysqli_fetch_array($resultado);echo "<li>";echo "<strong>Nombre: </strong> ";echo stripslashes($row[0]);echo "<br>";echo "<strong>Estatura: </strong> ";echo stripslashes($row[1])." cm";echo "<br>";echo "<strong>Peso: </strong> ";echo stripslashes($row[2])." Kg";echo "<br>";echo "<strong>Color: </strong> ";echo stripslashes($row[3]);echo "<br>";echo "<strong>Raza: </strong> ";echo stripslashes($row[4]);echo "<br>";echo "<strong>Sexo: </strong> ";echo stripslashes($row[5]);echo "<br>";echo "<strong>Edad: </strong> ";echo stripslashes($row[6]);echo "</li>n";}?></ul></article><?}function display_add_ani_form(){// display the form for people to ener a new animal in?><article data-role="content"><form action="register_ani.php" method="post" ><!--<form action="probador.php" method="post" > --><table><tr><td>Nombre bovino:</td><td><input type=text name=nomanimal size=20 maxlength=50required></td>
  23. 23. </tr><tr><td>Estatura(cm):</td><td><input type=number min=0 name=estatura size=10maxlength=10 required></td></tr><tr><td>Peso(Kg):</td><td><input type=number min=0 name=peso size=10maxlength=10 required></td></tr><tr><td>Color:</td><td><input type=text name=color size=10 maxlength=30required></td></tr><tr><td>Raza:</td><td><input type=text name=raza size=10 maxlength=30required></td></tr><tr><td>Sexo:</td><td><input type=radio name=sexo value=mchecked="checked"/>M<input type=radio name=sexo value=f/>F</td></tr><tr><td>Nacimiento:</td><td><input type=date name=nacimiento value="2013-01-29"size=10 maxlength=10 required></td></tr><tr><td colspan=2 align=center><input type=submit value="Registrar"></td></tr></table></form></article><?}function display_diag_form(){?><article data-role="content"><form method=post action="diag_query.php"><fieldset data-role="fieldcontain"><label for="sin1">Sintoma:</label><input id="sin1" type="text" name=sin1 size="30" required></fieldset><fieldset data-role="fieldcontain"><label for="sin2">Sintoma:</label><input id="sin2" type="text" name=sin2 size="30"></fieldset><fieldset data-role="fieldcontain">
  24. 24. <label for="sin3">Sintoma:</label><input id="sin3" type="text" name=sin3 size="30"></fieldset><fieldset data-role="fieldcontain"><label for="sin4">Sintoma:</label><input id="sin4" type="text" name=sin4 size="30"></fieldset><input type=submit data-role="button" value="Consultar" ></form></article><?}function display_diag($resultado){//$array = mysqli_fetch_all($resultado);$num=mysqli_num_rows($resultado);if($num == 0) {echo "No hay coincidencias, cambia los terminos de consulta";display_user_menu();do_html_footer();exit;}?><article data-role="content"><ul data-role="listview" data-filter="true" data-inset="true"><?for($i=0; $i<$num; $i++){$row=mysqli_fetch_array($resultado);echo "<li>";echo "<strong>Enfermedad: </strong> ";echo stripslashes($row[0]);echo "<br>";echo "<strong>coincidencias: </strong> ";echo stripslashes($row[1]);$url="show_med.php?cod=".($row[2]);do_html_url($url,"medicamentos");echo "</li>";}?></ul></article><?}function display_meds($resultado){$num=mysqli_num_rows($resultado);if ($num==0)
  25. 25. echo "No hay medicamentos disponibles<br>";else {?><article data-role="content"><ul data-role="listview" data-inset="true"><?for($i=0; $i<$num; $i++){$row=mysqli_fetch_array($resultado);echo "<li>";echo stripslashes($row[0]);echo "</li>";}?></ul></article><?}}?>_____________________________________________________________________Member:
  26. 26. $_SESSION:Las sesiones son una forma sencilla de almacenar datos parausuarios de manera individual usando un ID de sesión único. Estose puede usar para hacer persistente la información de estadoentre peticiones de páginas. Los ID de sesiones normalmente sonenviados al navegador mediante cookies de sesión, y el ID se usapara recuperar los datos de sesión existente. La ausencia de unID o una cookie de sesión permite saber a PHP para crear unanueva sesión y generar un nuevo ID de sesión.Las sesiones siguen un flujo de trabajo sencillo. Cuando unasesión se inicia, PHP recuperará una sesión existente usando elID pasado (normalmente desde una cookie de sesión) o, si no sepasa una sesión, se creará una sesión nueva. PHP rellenará lavariable superglobal $_SESSION con cualesquiera datos desesión de que se inicie la seisón. Cuando PHP se cierra,automáticamente toma el contenido de la variable superglobal$_SESSION, la serializa, y la envía para almacenarla usando elgestor de almacenamiento de sesiones.<?// include function files for this applicationrequire_once("bovino_fns.php");session_start();if (isset($_POST["username"])) {$username = $_POST["username"];$pass = $_POST["pass"];if (login($username, $pass)){// if they are in the database register the user id$valid_user = $username;$_SESSION["valid_user"]=$username;}else{// unsuccessful login
  27. 27. do_html_header("Problema:");echo "No has podido hacer logged in. Debes estar logged inpara ver esta p�gina.";do_html_url("index.php", "Login");do_html_footer();exit;}}do_html_header("Menu");check_valid_user();?><article data-role="content"><h1 class="centrado">Bienvenidos al sistema experto bovinoonline</h1></article><?// give menu of options*/display_user_menu();do_html_footer();?>
  28. 28. Logout:<?// include function files for this applicationrequire_once("bovino_fns.php");session_start();// start output htmldo_html_header("Logging Out");if (!empty($_SESSION["valid_user"])){unset($_SESSION["valid_user"]);$result_dest = session_destroy();if ($result_dest){// if they were logged in and are now logged outecho "chao, vuelve pronto<br>";do_html_url("index.php", "Login");}else{// they were logged in and could not be logged outecho "No hemos podido hacer Log Out.<br>";
  29. 29. }}else{// if they werent logged in but came to this page somehowecho "No te encuentras logged in, así que no hemos podido hacerlogged out.<br>";do_html_url("index.php", "Login");}do_html_footer();?>Info:<?// include function files for this applicationrequire_once("bovino_fns.php");// start output htmldo_html_header("Info");?><ul data-role="listview" data-inset="true"><li class="centrado">Sistema experto bovino virtual V 1.0<br>
  30. 30. Proyecto de investigacion formativa<br>Universidad del Tolima<br>Ibague<br>2013</li></ul><?do_html_footer();?>Index:<?phprequire_once("bovino_fns.php");do_html_header("Sistema experto bovino online");display_site_info();display_login_form();do_html_footer();?>diag_query:<?require_once("bovino_fns.php");session_start();do_html_header("Diagnostico");check_valid_user();if (isset($_POST["sin1"])) {$var1=prepararsintoma($_POST["sin1"]);$var2=prepararsintoma($_POST["sin2"]);$var3=prepararsintoma($_POST["sin3"]);$var4=prepararsintoma($_POST["sin4"]);$cod1=codificarsintoma($var1);$cod2=codificarsintoma($var2);$cod3=codificarsintoma($var3);$cod4=codificarsintoma($var4);if($resultado=get_enfermedad($cod1,$cod2,$cod3,$cod4)){display_diag($resultado);}}
  31. 31. elseecho <scripttext="text/javascript">location.href="diag_form.php"</script>;display_user_menu();do_html_footer();?>_____________________________________________________________________diag_form:<?// include function files for this applicationrequire_once("bovino_fns.php");session_start();// start output htmldo_html_header("Diagnosticar enfermedad");check_valid_user();display_diag_form();display_user_menu();
  32. 32. do_html_footer();?>db_fns:ArraysUn array en PHP es realmente un mapa ordenado. Un mapa es untipo de datos que asocia valores con claves. Este tipo esoptimizado para varios usos diferentes; puede ser usado comouna matriz real, una lista (vector), una tabla asociativa (unaimplementación de un mapa), diccionario, colección, pila, cola, yposiblemente más. Ya que los valores de un array pueden serotros arrays, árboles y también son posibles arraysmultidimensionales.<?function db_connect(){//$connect = mysqli_connect("localhost", "observat_bovino","*1085*sb","observat_sebovino");$connect = mysqli_connect("localhost", "root", "","login");if (!$connect){echo "error al conectar: ".mysqli_connect_error();return false;}elsereturn $connect;}function db_result_to_array($result){$res_array = ();for ($count=0; $row = @mysql_fetch_array($result); $count++)$res_array[$count] = $row;return $res_array;}?>
  33. 33. _____________________________________________________________________data_valid_fns:foreach:El constructor foreach proporciona un modo sencillo de iterarsobre arrays. foreach funciona sólo sobre arrays y objetos, yemitirá un error al intentar usarlo con una variable de un tipodiferente de datos o una variable no inicializada.<?function filled_out($form_vars){$flag=true;foreach ($form_vars as $key => $value){if (empty($value)) {$flag=false;}}return $flag;}function valid_email($address){// check an email address is possibly validif (preg_match("#^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$#", $address))return true;elsereturn false;}function valid_cel($cel){if (preg_match("#[0-9.]#", $cel))return true;elsereturn false;}function valid_string($str){if (preg_match("#[a-zA-Z]#", $str))return true;elsereturn false;}?>____________________________________________________________________
  34. 34. bovino_fns:<?// We can include this file in all our files// this way, every file will contain all our functionsrequire_once("data_valid_fns.php");require_once("db_fns.php");require_once("user_auth_fns.php");require_once("output_fns.php");require_once("animal_fns.php");?>animal_fns:
  35. 35. trigger_error — Generar un mensaje de error/advertencia/aviso denivel de usuarioSe usa para provocar una condición de error de usuario, se puedeutilizar junto con el gestor de errores interno o con una funcióndefinida por el usuario que ha sido establecida como el nuevogestor de errores.Esta función es útil cuando se necesita generar una respuesta enparticular a una excepción en tiempo de ejecución<?require_once("db_fns.php");$error;function registerAnimal($username, $nomanimal, $estatura, $peso,$color, $raza, $sexo, $nacimiento){// connect to dbif ($conn = db_connect()) {// check if nomanimal is unique$result=mysqli_query($conn,"select * from animal whereusername=$username and nomanimal=$nomanimal");if (!$result) {global $error;$error= "No se pudo ejecutar la peticion";return false;exit;}else{$num=mysqli_num_rows($result);if($num > 0) {global $error;$error="Ese nombre de animal ya esta ocupado - vuelve yelige otro.";return false;exit;}else{$resultado=mysqli_query($conn,"insert into animal(username, nomanimal, estatura, peso, color, raza,sexo,nacimiento)values ($username,$nomanimal,$estatura,$peso,$color,$raza,$sexo,$nacimiento)");if (!$resultado) {global $error;$error= "No has podido hacer el registro enla base de datos - por favor intentalo mas tarde.";return false;}else return true;}}
  36. 36. }else {global $error;$error="No se ha podido conectar a la base datos";return false;}}function get_animal($username){//extract from the database all the animals this user has storedif ($conn = db_connect()) {$sql="selectnomanimal,estatura,peso,color,raza,sexo,(YEAR(CURDATE())-YEAR(nacimiento)) - (RIGHT(CURDATE(),5)<RIGHT(nacimiento,5)) asedad from animal where username = $username";/* $result = $conn->query( "selectnomanimal,estatura,peso,color,raza,sexo,(YEAR(CURDATE())-YEAR(nacimiento)) - (RIGHT(CURDATE(),5)<RIGHT(nacimiento,5)) asedad from animal where username = $username");*/$result=mysqli_query($conn,$sql);if (!$result)return false;}return $result;};function get_enfermedad($sin1,$sin2="",$sin3="",$sin4=""){if ($conn = db_connect()) {$sql="SELECT e.nombre, count(d.cod_s) as coincide,e.codigofrom enfermedad as e, detalle as dwhere e.codigo=d.cod_eand d.cod_s in($sin1,$sin2,$sin3,$sin4)group by e.nombreorder by count(d.cod_s) desclimit 3";//$result = $conn->query($sql);$result=mysqli_query($conn,$sql);if(!$result)return false;return $result;}else return false;}function get_cod_sin($s){if ($conn = db_connect()) {$sql="select codigo_s from sintomas where nombre_s=$s";//$result = $conn->query($sql);$result=mysqli_query($conn,$sql);
  37. 37. if (!$result)return false;return $result;}elsereturn false;}function prepararsintoma($value){if(!empty($value)){$value=strip_tags(trim($value));$valor=addslashes($value);return $valor;}else return false;}function codificarsintoma($x){if($codigo = get_cod_sin($x)){$array = mysqli_fetch_assoc($codigo);if(count($array) > 0)return $array[codigo_s];elsereturn false;}elsereturn false;}function get_meds($cod){if ($conn = db_connect()) {$sql = "select m.nom_med as nombrefrom medicamento as m, tratamiento as twhere t.cod_enf=$cod andt.cod_med=m.cod_med";//$result = $conn->query($sql);$result=mysqli_query($conn,$sql);if (!$result)return false;//$array = mysqli_fetch_all($result);if(mysqli_num_rows($result) == 0)return false;return $result;}else return false;}?>
  38. 38. ani_regis_form:session_start — Iniciar una nueva sesión o reanudar la existentesession_start() crea una sesión o reanuda la actual basada en unidentificador de sesión pasado mediante una petición GET oPOST, o pasado mediante una cookie.Cuando session_start() es llamada o cuando se auto inicia unasesión, PHP llamará a los gestores de almacenamiento desesiones open y read. Éstos serán un gestor de almacenamientoproporcionado por omisión o por extensiones de PHP (comoSQLite o Memcached); o pueden ser un gestor personalizadocomo está definido en session_set_save_handler(). La llamada deretorno read recuperará cualquier información se de sesiónexistente (almacenada en un formato serializado especial) y serádeserializada y usada para rellenar automáticamente la variablesuperglobal $_SESSION cuando la llamada de retorno readdevuelva la información de sesión guardada a la gestión desesiones de PHP.
  39. 39. Para usar una sesión nominada llame a session_name() antes dellamar a session_start().<?// include function files for this applicationrequire_once("bovino_fns.php");session_start();// start output htmldo_html_header("Registrar Animal");check_valid_user();display_add_ani_form();display_user_menu();do_html_footer();?>_____________________________________________________________________ani_query_form:start output: Esta función activará el almacenamiento en búfer desalida. Mientras dicho almacenamiento esté activo, no se enviaráninguna salida desde el script (aparte de cabeceras), en su lugarla salida se almacenará en un búfer interno.
  40. 40. El contenido de este búfer interno se puede copiar a una variablede tipo string usando ob_get_contents(). Para producir la salidade lo almacenado en el búfer interno se ha de usarob_end_flush(). De forma alternativa, ob_end_clean() desecharáde manera silenciosa el contenido del búfer.<?// include function files for this applicationrequire_once("bovino_fns.php");session_start();// start output htmldo_html_header("Consultar animales");check_valid_user();if ($ani_array = get_animal($_SESSION["valid_user"])){display_animal($ani_array);}display_user_menu();do_html_footer();?>

×