Conceptos básicos para publicar páginas en AMEN

Principal | Usuarios | Creación web
Contacto | Publicación en AMEN

Esta página se está acutalizando casi a diario. EL diseño está en obras.

 

Como saber que versión de PHP y librerias están instaladas en el servidor

Con ejecutar la función phpinfo() es más que suficiente.

Para ver el ejemplo de la función phpinfo ejecutandose en un servidor de amen

 

Como conectarse a una base de datos

Un posible ejemplo de como realizar una conexión es el siguiente:


<HTML>
<HEAD>
	<TITLE>Prueba de login a database</Title>
</HEAD>


<BODY>

<H1>Prueba de login a database</H1>

<?php

$dbcon = mysql_connect("mysql3.amen.fr:3306","login","usuario");
if($dbcon){
 echo " Me conecte... 
"; mysql_select_db("login",$dbcon); $consulta = mysql_query("Select * from usuarios",$dbcon); if($consulta){ echo "Realice la consulta<BR>"; $res = mysql_num_rows($consulta); echo "Numero de Filas: " . $res; }else{ echo "Error en la consulta<BR>"; } }else{ echo "Sin conexion.<BR>"; } ?> </BODY> </HTML>
 

Como cargar datos en una tabla desde un fichero

Ejemplo de un fichero de nombre loaddata.php


<HTML>
<HEAD>
	<TITLE>Prueba de actualizar datos a database</Title>
</HEAD>


<BODY>

<H1>Prueba de actualizar datos a database</H1>

<?php

$dbcon = mysql_connect("mysql3.amen.fr:3306","login","password");
if($dbcon){
 echo " Me conecte... <BR>";
 mysql_select_db("login",$dbcon);

 $consulta = mysql_query("Load data local infile 'usuarios.txt' replace into table usuarios fields terminated by ',' enclosed by '\"'",$dbcon);
 

 if($consulta){
	echo "Realice la consulta<BR>";

 }else{
    echo "Error en la consulta<BR>";
 }

}else{
 echo "Sin conexion.<BR>";
	
 
}


?>

</BODY>


</HTML>

En este caso el fichero de datos podria ser algo como este:

"2","prueba1","prueba1@prueba.com","http://www.marklar-co.com/users/prueba1","0"
"3","prueba2","prueba2@prueba.com","http://www.marklar-co.com/users/prueba2","5"
"4","prueba3","prueba3@prueba.com","http://www.marklar-co.com/users/prueba3","9"
"5","prueba4","prueba4@prueba.com","http://www.marklar-co.com/users/prueba4","10"
"6","prueba5","prueba5@prueba.com","http://www.marklar-co.com/users/prueba5","23"
"7","prueba6","prueba6@prueba.com","http://www.marklar-co.com/users/prueba6","50"
"8","prueba7","prueba7@prueba.com","http://www.marklar-co.com/users/prueba7","10"
"9","prueba8","prueba8@prueba.com","http://www.marklar-co.com/users/prueba8","2"
"10","prueba9","prueba9@prueba.com","http://www.marklar-co.com/users/prueba9","90"

 

Como enviar corrreo desde PHP

Se ha de utilizar la función mail
mail(destinatario,asunto,mensaje,cabeceras_adicionales)

Pueden ver un ejemplo en esta página

Este es el código del fichero correo1.php

 <!-- http://www.marklar-co.com/docamen/php/ejemplos/correo1.php -->  
 <!-- Fecha modificacion: 2002-01-07 -->



<HTML>
<HEAD>
<TITLE>Prueba de envio de correo</TITLE>
<link rel="stylesheet" href="http://www.marklar-co.com/css/marklarmain.css" TYPE="text/css">
</HEAD>
<BODY class="ejemplos">
<div id="CapaPrincipal">
  <H1>Prueba de envio de correo</H1>

<div id="Enlaces">
<A href="http://www.marklar-co.com">Principal</a> | <A href="http://www.marklar-co.com/usuarios.html">Usuarios</a> | InfoBolsa | <A href="http://www.marklar-co.com/creaweb/">Creación web</a>

<!-- Cierre Enlaces -->
</div>

<?php

if ($reenviar == "Volver a Mandar" || empty($Enviar)){

?>

<Form name="sendmail" action="<?php echo $PHP_SELF; ?>" method=post>
<Table width="80%">
<TR>
	<TD>Destinatario: </td>
	<TD><Input type=text size=55 maxlength=65 name=HeaderTo></td>
</TR>
<TR>
	<TD>Asunto: </td>
	<TD><Input type=text size=75 maxlength=90 name=HeaderSubject></td>
</TR>
<TR>
	<TD>Mensaje:</td>
	<TD><TextArea cols=55 rows=20 name=HeaderBody></textarea></td>
</TR>
<TR><TD colspan=2 align=center>
	<Table witdh="70%">
		<TR>
			<TD width="50%" align=center><Input type=submit value="Enviar" name="Enviar"></td>
			<TD align=center><Input type=reset value="Cancelar"></TD>
		</TR>
	</table>
	</TD>
</TR>
</table>
</form>

<?php

}else{

$HeaderBody = $HeaderBody . "\n\nMensaje ofrecido por http://www.marklar-co.com";
$Headers = "FROM: <vacio@vacio.vacio>\nSender:marklar@marklar-co.com";
mail("$HeaderTo","$HeaderSubject","$HeaderBody","$Headers");

?>

Su mensaje ha sido procesado y enviado a 
<?php 
	echo $HeaderTo;
?>

<form name=reload action="<?php echo $PHP_SELF; ?>" method=post>
<Table width="50%" align=center>
	<TR>
		<TD><Input type="submit" name=reenviar value="Volver a Mandar"></TD>
	</TR>
</table>
</form>
 

<?php

}

?>

<P>  <address>Última modificación Lunes 7 de Enero de 2002</address>  
<!-- Cierre CapaPrincipal -->
</div> 

</BODY>
</HTML>



 

Como subir ficheros desde un Formulario

Se ha de utilizar la función move_uploaded_file(), no la función copy del directorio temporal, por que sino cualquier otro usuario tendría acceso a los ficheros subidos por otros.

Hay que tener también muy en cuenta que en la ruta indicada como destino el PHP ha de poder escribir ficheros.

<!-- http://www.marklar-co.com -->
<!-- Programa para transferir ficheros al servidor -->

<?php 

// La ruta en la que va a almacenar el fichero, debe tener el PHP permisos
// para escribir en ella

$rutadest="/home/sites/siteX/web";

?>

<HTML>
<HEAD>
	<TITLE>Transferencia de Ficheros</TITLE>
</HEAD>
<BODY>
<H1>Transferencia de Ficheros</h1>

<form enctype="multipart/form-data" method="post" action="<?php echo $PHP_SELF; ?>">
Selecciona un fichero a subir: <input type="file" name=fichero size=30><BR>
<input type=submit name=submit value=Enviar>
</form>

<?php
 

$filedest = "/php/pruebas/ejemplo1.tmp";

if ($fichero != ""){

	move_uploaded_file ($fichero,$filedest);

}

?>

</BODY>
</HTML>

 

Como instalar PHPnuke

Pasos a seguir para instalar PhpNuke, proceso realizado con la versión 5.6

  1. Obtener el phpnuke. A través de la página oficial o desde aqui mismo
  2. Descomprimirlo en vuestro disco duro, por ejemplo en c:\phpnuke
  3. Modificar el fichero config.php localizado en el directorio html del lugar donde se haya descomprimido el phpnuke
    • Variable $dbhost: cambiarla por el servidor de mysql, ej mysql3.amen.fr
    • Variable $dbuname: poner el nombre de usuario de acceso a mysql
    • Variable $dbpass: poner el password para acceso a mysql
    • Variable $dbname: poner el mismo que el nombre de usuario para acceso a mysql
    • El resto ya son opciones para la apariencia de phpNuke
  4. Mediante FTP subir el contenido completo del directorio c:\phpnuke\html al directorio en el servidor donde querais que este el phpNuke
  5. Asegurarse en FTP que el fichero config.php tiene permiso de escritura (chmod 666)
  6. Crear las tablas de la base de datos
    • Conectarse al servidor de mysql asignado por AMEN
    • Pulsar sobre el nombre de la base de datos
    • Ir al campo de texto que pone: Localización del archivo de texto y pulsar sobre el botón Examinar.
    • Seleccionar (en la ventana que salga) el fichero sql/nuke.sql localizado en el directorio dónde se ha descomprimido el phpnuke. (Ej: c:\phpnuke\sql\nuke.sql)
    • Pulsar sobre el botón Siga
    • Ahora apareceran todas las tablas necesarias para el phpnuke
  7. Ahora queda configurar el phpnuke, desde la página de administración. Para eso se debe visualizar desde un navegador la página admin.php que está en el directorio en el servidor de www (http)
 

Como forzar a que los Browsers guarden ficheros en la cache

Si se quiere indicar al navegador cuando expira un archivo, se ha de enviar en el encabezamiento del fichero esta información.

Para ello se usa la función headers

Notas sobre la función headers:

Para un ejemplo completo que realiza está tarea, podeis bajaros este ejemplo o en formato zip para que el explorer no se vuelva loco.

Pero, ¿Para que puede servir esto?.

Muy simple para hacer que en aquellas páginas en las que se utilizen imagenes para el propio diseño de la página (imagenes transparentes, etc..), no se carguen cada vez que un usario visita la página, aunque lo haya hecho hace 2 minutos.
Asi se consigue reducir el número de peticiones al servidor de una forma muy considerable, y disminuye de forma aparente el tiempo de carga de la página

Nota sobre versión 1.1 de este script:
Ahora está preparado para no tener que modificar el src en las imagenes, con añadir en un fichero de nombre .htaccess la línea
Action image/gif /headers.php en el direcotrio dónde queremos que se indique una fecha de expiración.

 

Como generar password para el uso con el .htaccess

El formato de cada linea en el fichero en el que se quiera guardar la informacion de un nombre de usuario y password ha de seguir el siguiente modelo:
usuario:passwordEncriptado

Un ejemplo de como generar los password lo puede ver las siguientes líneas de codigo, o verlo funcionando a través de este enlace. Se ha de utilizar el tipo de codificación htpasswd

<HTML>
      <HEAD>
      <TITLE>Generador de claves para el .htpasswd</TITLE>
      </HEAD>
<BODY bgcolor=white>

<?php

// seed with microseconds
function make_seed() {
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}

function makeMD5Salt(){
 $SALTTABLE = "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
 $res = "$1$";
 for($i=0;$i < 9; $i++){
  mt_srand(make_seed());
  $index = mt_rand(0,strlen($SALTTABLE) - 1);
  $res = $res . substr($SALTTABLE,$index,1);
 }

 return $res;
}

function makeDesSalt(){
 $SALTTABLE = "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
 $res = "";
 for($i=0;$i < 2; $i++){

  mt_srand(make_seed());
  $index = mt_rand(0,strlen($SALTTABLE) - 1);
  $res = $res . substr($SALTTABLE,$index,1);
 }

 return $res;
}

$salt_type = empty($salt_type) ? 5 : $salt_type;

if(!empty($user) & !empty($passw)){
    if($salt_type == 0){
         $res = crypt($user);
    }elseif($salt_type==1){
         $salt = makeDesSalt();
         $res = crypt($user,$salt);
    }elseif($salt_type==2){
         $salt = makeMD5Salt();
         $res = crypt($user,$salt);
    }elseif($salt_type==3){
         $salt = substr($passw,0,2);
         $res = crypt($user,$salt);
    }elseif($salt_type==4){
         $res = exec("crypt $user");
    }else{
         $res = exec("htpasswd -nb $user $passw");
         $res = substr($res,strlen($user)+1);
    }


    $res = "$user:$res";
    echo "<H2>$res</H2>";
}

?>

<Table width="80%" border=0 align=center>
<form name=encripta action="<?php echo "\"$PHP_SELF\""; ?> method=get>
<TR>
     <TD> Nombre de Usuario:</TD>
     <TD> <input type=text name=user size=10 maxlength=10></TD>
</TR>
<TR>
     <TD> Password:</TD>
     <TD><input type=password name=passw size=10 maxlength=10></TD>
</TR>

<TR>
     <TD> Tipo codificacion:</TD>
     <TD> <select name=salt_type>
             <option value=0>Sistema</option>
             <option value=1>DES</option>
             <option value=2>MD5</option>
             <option value=3>htaccess</option>
             <option value=4>crypt</option>
             <option value=5 selected>htpasswd</option>
          </select>
     </TD>
</TR>

<TR>
     <TD> <input type=submit value="enviar"></TD>
     <TD> <input type=reset value="Cancelar"></TD>
</TR>


</form>
</table>


</body>

</HTML>
 

Envio de formulario a una dirección de correo

Aqui tenis la versión 0.2 de un script para permitir enviar los datos de un formulario a una dirección de correo electronico.

Instalación: Copiar el fichero formmail.php a un direcotrio en el que podais utilizar php

Uso:
En el formulario que querais enviar poner en el action la ruta del fichero formmail.php
En method poner GET aunque también admite POST
Podeis indicar a quien va dirigido poniendo in <input type=hidden name=to>
El subject lo podeis indicar en <input type=hidden name=subject>
O podeis modificar las variables de l propio formmail.php como se indica en él.

Descarga: Marklar FormMail v0.2