[SECCION PHP] Editor:::Linkgl --- APRENDE PHP [TUTORIAL]

Jeje si ya me e copado y me pase por algunas páginas y voy aprendiendo bien xD!
Ok. .. Por Lo Menos Este tutorial lo entendi mas que el curso de como crea mi web !! xd !!! ¿¿o sera que ahora se un poco mas que cuando empeze ???

Gracias Por El TUtorial !!
Pl100tx escribió:Ok. .. Por Lo Menos Este tutorial lo entendi mas que el curso de como crea mi web !! xd !!! ¿¿o sera que ahora se un poco mas que cuando empeze ???

Gracias Por El TUtorial !!

Jaja puede ser :roll: pero además esta muy bien explicadito xD
Escribir en archivos .TXT
Hola, de nuevo aca montando la siguiente leccion, esta trataremos de abrir, escribir y cerrar un archivo .txt (archivo de texto). Esto es muy util como para los libros de visitas, dejar comentarios y cosas por el estilo.

El archivo .TXT lo utilizamos como BASE DE DATOS en vez de mysql, es mucho mas sencillo pero menos util... bien comenzemos con un sencillo y explicado ejemplo:

bien primero creo el archivo de texto que sera mi base de datos y lo dejo en blanco, yo lo llamare:

texto.txt...



ahora, creo el formulario que envia los datos para escribirlos a el archivo de texto, yo lo llame:

ejericio-de-texto.php
<html>
<head>
<title>Escribir en doc, de texto</title>
</head>
<body>
<form action="ejercicio-de-texto2.php">
Nombre


<input type="text" name="nombre">


E-mail


<input type="text" name="mail">


<input type="submit" value="Enviar">
</form>


</body>
</html>

Como ya vimos antes, creamos dos simples input de texto, uno con tu nombre y otro con tu e mail, y el boton enviar...

ahora aqui lo interesante, crear el archivo para escribir en el texto, yo lo llamé:

ejercicio-de-texto2.php
<html>
<head>
<title>Page title</title>
</head>
<body>
<?
$abrir = fopen("texto.txt","a") or die('no se puede abrir el archivo de texto');
fwrite($abrir,$_REQUEST['nombre']);
fwrite($abrir,'\n');
fwrite($abrir,$_REQUEST['mail']);
fwrite($abrir,'\n');
fclose($abrir);
?>
El archivo se guardó correctamente, da clic
[url="texto.txt"]aquí[/url] para ver el contenido de 
el archivo de texto.
</body>
</html>

Estudiemos el codigo detenidamente....

:arrow: abrimos la etiqueta php con <?
:arrow: Creamos una variable llamada "abrir", a esta le damos el valor de "fopen" la funcion de "fopen" es:

Abrir un archivo de cualquier tipo recuerda que esto es muy util se escribe asi:

fopen(archivo para abrir, letra);

:arrow: a fopen, le ordenamos que abra texto.txt ponemos una coma "," para separar y la letra "a", bueno y para que rayos quiero la letra "a" a contunuacion lo explico:

letras:

a - sirve para crear un archivo o si no existe y si existe sirve para escribir datos al final de el archivo

r - solamente abre el archivo en modo lectura ( para que el usuario vea lo que se escribio)

w - crea el archivo pero si el archivo ya existe borra lo que hay dentro de el

en este caso nos sirve la letra a

:arrow: se pone entre comillas y se cierra el parentesis )

:arrow: Escribimos "OR DIE" esto quiere decir, si no se puede abrir el archivo que vamos a hacer?! pues esta funcion nos ayuda a eso, or die(texto o explicacion);

esta funcion la aplicamos por si no se abre o no se escribe dentro del archivo, entre el parentesis ponemos el texto que queramos que aparezca,

:arrow: cerramos la linea con ); para separar
:arrow: Aplicamos la funcino "fwrite"

fwrite(archivo, texto a escribir)

:arrow: fwrite escribe en un archivo algun texto, en este caso pusimos la variable abrir que se encarga de abrir el texto o decir que no se pudo abrir, ponemos una coma para separar y luego ponemos lo que queramos escribir....

:arrow: $_REQUEST[''];

Es la respuesta de un formulario, en este caso pusimos

:arrow: $_REQUEST['nombre']; y tambien
:arrow: $_REQUEST['mail'];

Eso quiere decri que se sustituira $_REQUES[] por lo que el usuario escribio, request se ignifica respuesta, entonces enviara la respuesta del formulario... vamos bieen!!

falta poco

:arrow: \n para que sirve??
para saltar una linea, es decir cuando el usuario vea un comentario o algo en su web no se va a poner \n si no que se va a saltar una linea (es como
o


:arrow: fclose();

fclose(archivo a cerrar);

fclose cierra un archivo...

en este caso cerramos el archivo que esta en la variable $abrir asi

fclose($abrir);

y con esto terminamos...

EJECUTAR EL EJEMPLO

nota: en vez de fwrite, podemos usar fputs que tienen casi la misma funcion solo que fwrite escribe y fputs mueve lo que escribiste del formulario :wink:
ese tipo de archivos de texto fue el ultilizado por mi para crear el sistema de comentarios que algunos buscaban, enseguida pongo como leer esos archivos en una pagina php
Los dos sirven para lo mismo, al final no puse como verlo, aqui lo dejo:
<?php
$fp=fopen("datos.txt","r") or
die("No se pudo abrir el archivo");
while (!feof($fp))
{
$linea=fgets($fp);
$lineasalto=nl2br($linea);
echo $lineasalto;
}
fclose($ar);
?>
Lo primero es abrirlo con fopen("archivo","forma") "r" es decir read (apertura para lectura), despues la función feof retorna true si se ha llegado al final del archivo en caso contrario retorna false. Y despues nl2br, que crea por linea del archivo,un salto de linea (new line to br).Eso es todo.
Disculpa linkgl no comprendi muy bien lo de bloquear paginas con contraseña... se crea un archivo html independiente o se coloca en la pagina principal?.. de ser asi, se colocaria dentro de alguna capa... saludos...
si vas a bloquear una pagina con contraseña sera mejor que uses cookies... las explicare mas adelante, ese ejemplo fue para mostrar las funciones IF pero si queires bloquear solo 1 pag quiza ese codigo te funcione, ese codigo se pone en cualquier pagina que quieras bloquear y puede ser en la ubicacion que gustes
genial... gracias, esperrare ansioso a que lo anexes al tutorial... lo que tenia en mente es bloque ar la pagina idex con la contraseña y bloquear todas las demas , esto para que solo entren los usuarios a los que lesde el codigo...
A peticion de nuestro amigo Vincent88 les enseñaré en este capitulo a bloquear paginas mediante cookies que son utilizadas en todos los sistemas de registro de usuarios....

Nosotros podemos manipular el tiempo que dura activa una cookie... para activar nuestra cookie usamos el code:

setcookie()

ahora les muestro el codigo y lo explico paso a paso, necesitaremos 2 archivos php el primero lo llamaremos formulario.php:

formulario.php
<form action="logeo.php" method="post">
Introduzca la contraseña:

<input type="password" name="pass">

<input type="submit" value="entrar">
</form>

ahi creamos el formulario con un campo para introducir una contraseña la cual activa la cookie, ahora la contraseña puede ser cualquiera, en mi caso la contraseña sera: "hola" (sin comillas)...

ahora nuestro segundo archivo que procesará el formulario se llamara:

logeo.php

<?
$pass=$_POST['pass'];
if ($pass=="hola"){
setcookie("pass", "".$pass"", time()+(3600 * 24));
echo 'La contraseña es correcta puede pasar';
}else{
echo 'la contraseña es incorrecta no puede pasar';
}
?>

bien, ahi lo que hacemos es almacenar el pass que se escribio en el form con una variable despues escribimos:

SI la contraseña es igual a hola se activa la cookie llamada "pass" con la variable $pass y se activa un tiempo de duración de 3600*24 lo cual me parece que es un tiempo estandar... ahora solo nos queda ¿como bloquear las paginas si no se ha puesto la contraseña?

es muy facil en cada pagina que queramos bloquear ponemos:

<?
$saludo = $_COOKIE['pass'];
if (!isset($_COOKIE['pass'])) die("esta zona es para usuarios con contraseña");
?>

y listo tenemos paginas protegidas

las cookies pueden llevar los nombres que queramos ponerles y se pueden activar cuantas veces sea necesario si tienen duddas posteenlas
Hola a tos, llevo mucho tiempo sin pasar por aqui, y he visto lo ed las cookies, voy de dar una expansion de lo dicho:
En la funcion setcookie("nombre_cookie","value_cookie","duracion") se puede añadir al final de duracion (o sea(q pijo suena) time()+3600*...) se puede añadir "localizacion_de_la_cookie". Un ejemplo para que lo entendais, teneis un sitio en el que solo quereis que la cookie exista solo en una carpeta determinada por ejemplo "/user" pues se pone en ese espacio, si quereis que valga en todo el sitio, se pone "/", lo digo por si algunos sitios sin el "/" no funciona, o simplemente creais la cookie en una carpeta de la web, y quereis usarla en otra. Que aveces tiene que ser asi.
el codigo quedaria asin:
setcookie("nombre_cookie","value_cookie","duracion","/carpeta")
Muchisimas gracias por el nuevo tutorial, de verda me sacaste de la insertidumbre,, disculpa por las molestias y disculpa por no agradecerte antes, ya que estaba ocupado en la universidad... de verdad, muchisimas gracias...
Bueno ya que linkgl se fugo... xD
Le pregunte por msn si podia seguir las lecciones y dijo que si, asi que me tomare el trabajo de continuar las lecciones :P

--------------------------------------------------------------------------------
Seguramente muchos se preguntan como conectarse a una base de datos, como crear una tabla alli, como crear un sistema de usuarios con eso, y cosas asi, pues no es nada dificil, lo primero que hay que hacer es la conexion y se hace asi:

<?php
$server="localhost"; // ( Todos los datos cambian depende el hosting )
$usuario="root";
$contraseña="";
$conexion = mysql_connect("$server","$usuario","$contraseña");
?>
Ahi ya tenemos la conexion, como ven yo almace cada dato en una variable y luego las utilice desde la conexion, no es necesario pero yo siempre lo recomiendo por si tenemos que cambiar de repente todos los datos si nos mudamos de hosting o cosas asi, luego lo explicare cuando explique los "includes" :wink:

ahora que dicen si creamos una tabla en nuestra base de datos? :O olvide explicar como seleccionar una base de datos para escribir en ella :P bueno aqui lo hare:
Como ya teniamos el otro archivo, solo agregamos unas lineas mas:
<?php
$server="localhost"; // ( Todos los datos cambian depende el hosting )
$usuario="root";
$contraseña="";
$basedatos="a86468_cctw"; // (aqui va el nombre de tu base de datos)
$conexion = mysql_connect("$server","$usuario","$contraseña");
// Ahora pasamos a seleccionar la base de datos de esta forma:
mysql_select_db("$basedatos", $conexion);
/* Y para no escribir tanto mas, los explico a crear una tabla:
una vez seleccionada la base de datos, ejecutamos un comando llamado "mysql_query" donde adentro se debe escribir el codigo mysql para crear la tabla, por ejemplo si creamos una tabla para un sistema de registros, pondremos dos columnas, el usuario y la contraseña, es decir: */
mysql_query("create table `nombre_tabla`(
usuario varchar(50),
contrasena varchar(50)
)", $conexion);
echo "Se creo la tabla";
//Aqui cerramos la conexion, no es obligatorio pero yo lo hago siempre :P
mysql_close($conexion);
?>

Como ven siempre al final de cada comando mysql, escribimos al final "$conexion", ya que ahi tenemos almacenada nuestra conexion al hosting verdad? Bueno espero que lo hayan entendido y si no, diganmelo y lo explico de nuevo :wink:

P.D.: Lo que comienza con // y lo que empieza y termina con /* y */ son comentarios, dentro del codigo php se pueden ingresar comentarios como en html cuando usamos , yo los uso para explicar mejor 8)
Yo no entendi xDD jaja nah es broma esta bien pero porque usas tantas conexiones ? xD mejor conecta desde el inicio para ya no volver a hacerlo en el select_db ni en el query algo como:

<?php
$server="localhost"; // ( Todos los datos cambian depende el hosting )
$usuario="root";
$contraseña="";
$basedatos="a86468_cctw"; // (aqui va el nombre de tu base de datos)
mysql_connect("$server","$usuario","$contraseña");
mysql_select_db($basedatos);
mysql_query("create table `nombre_tabla`(
usuario varchar(50),
contrasena varchar(50)
))";
mysql_close();
Eso lo hago mi amigo link, porque si tu estas haciendo una conexion a una base de datos y escribiendo en ella en un sistema operativo como Unix o Ubuntu por ejemplo, la conexion solo te sirve durante el primer uso, es decir, solo te servira el comando mysql_select_db() pero despues, se pierde la conexion y tienes que volverla a hacer, lo que pasa es que casi ningun hosting usa unix o ubuntu, casi siempre usan linux pero vale la pena hacerlo para que funcione en cualquier hosting verdad? :P
Las conexiones no se cierran al ejecutar la primera consulta, de lo contrario las conexiones a las bases de datos la saturarianya que muchos scripts en php hacen muchas consultas a bases de datos, la conexion solo se cierra cuando se ejecuta el comando mysql_close($conexion); o despues de determinado tiempo, si no se cierran las conexiones despues de ejecutar la consulta esta queda abierta determinado tiempo establecido en la configuracion, no tiene nada que ver con el sistema operativo, mas que nada tiene que ver con la configuracion del servidor de bases de datos, Unix o Ubuntu, Unix es un sistema operativo de los mas seguros del mercado, claro de paga, Ubuntu, Fedora, kannopix, Redhat, Mandrivia, Kubuntu, Suse, Opensuse, etc, todos esos son distribucciones de linux gratuitas, asi que si realmente KenLego Ubuntu es linux.
PHP Orientado a Objetos (POO)
Bueno, continuemos las clases no?
En este capitulo enseñare algo sobre poo, es decir, Programacion Orientada a Objetos.
Esto se trata de Clases, dentro de las cuales hay funciones y variables, hagamos el tipico ejemplo "hola mundo" que esta en todos los tutoriales: xD
<?php
Class HolaMundo {
private $unavariable;
public function mostrar()
{
$this->unavariable = "Hola Mundo";
echo $this->unavariable;
}
}
// Luego, para ejecutar el codigo:
$holamundo = new HolaMundo();
$holamundo->mostrar();
?>
El resultado seria:
Hola Mundo
Para iniciar una clase, se escribe Class, seguido del nombre de la clase. Luego, para devinir una variable dentro de esta clase se escribe private $unavariable.
Luego, para acceder a una variable, se debe utilizar el objeto $this->, es decir $this->unavariable.
Finalmente en la funcion mostrar() le damos un valor a la variable y la imprimimos.
es importante que una funcion la hagamos publica, anteponiendo la palabra "public", en la proxima leccion explicare por que :wink: