Hola usuarios de phperos, en estos días he estado aprendiendo un poco de
PHP y quiero compartir algunos conocimientos que he adquirido para los demas usuarios, que también quieran aprender
PHP, cosas de lo que Posteare lo podéis encontrar en otros temas también explicados... pero de otra forma. Empezemos.
1- EXPLICACION DE VARIABLES. -
Vamos a definir las variables: las variables empiezan por el simbolo $ y no tenemos que definirlas antes de usarlas.
- Debemos de tener
¡CUIDADO! con las mayúsculas y las minúsculas en ellas, un ejemplo:
$phperos es una variable
$Phperos es una variable distinta. Cuidado con esos errores, cuando ya se maneja PHP no suceden...
- En las variables, podemos almacenar distintos tipos de datos, por ejemplo:
$phperos = "hola amigos"; // en este caso almacena un *string
$phperas = 123456; // en este caso almacena un *integer *¿Qué es un String?: un String almacena cadenas de texto ente "".
*¿Qué es un Integer?: Un integer almacena números enteros (Rectificacion por Physlet).
Operaciones con variables. - Dentro de las variables existen unas opciones para realizar operaciones que son los
"Operadores", algunos son:
- "-": nos resta valores de variables
- "+": nos suma valores de variables
- "*": nos multiplica valores de variables
- "/": nos divide valores de variables
Vamos a realizar una simple suma para que podais entenderlo mejor

primero os pongo el codigo de una y después lo explicamos
$variable1 = 5;
$variable2 = 6;
$resultado = $variable1 + $variable2; // sumamos los dos numeros
echo " el resultado es $resultado"; // con echo mostramos una variable, antes no lo dije se me olvidó
con echo , que antes no lo dije mostramos el valor de una variable, como podeis ver en el ejemplo. para estas operaciones sencillas las mostramos como echo "$variable"; muy simple.
Comparaciones de variables las comparaciones con variables las usamos para comparar y actuan de una manera u otra segun devuelvan True o False.
un ejemplo:
- "==": nos da True si los valores comparados coinciden
- "===": nos da True si los valores comparados coinciden y son del mismo tipo, como ya os hable antes, este diferencia integer de string, que es el que usaremos en este caso estos 2
Aquí el ejemplo:
$soyjoaquin = "5";
$siquillote = 5;
if($siquillote==$soyjoaquin) {
echo "coinciden porque los valores son iguales 5 y 5";
}else{
echo "no coinciden";
}
if($siquillote===$soyjoaquin) {
echo "son iguales";
}else{
echo "no son iguales";
}
explicaremos bien lo que hemos usado...
if: es una condicion, traducida al español si...
una traducción completa para entender seria
si(condicion) {
semuestra "se ha cumplido";
}si no{
semuestra " no se cumple";
- En el primer caso con == nos dira que son iguales, pero en el segundo con el operador comparativo === nos dira que no son iguales ya que este diferencia tambien el tipo que es so integer o string
- Una cosa que se me ha olvidado es decir que hay variables predefinidas del servidor como: POST, GET, SESSION, COOKIE...
2- CREANDO FUNCIONES (AQUÍ SERE MUY MUY MUY BREVE, LUEGO AMPLIARÉ MÁS COSAS) Os enseñaré a crear una
*función muy simple por el momento, ya que no me quiero enrollar mucho en esto...
¿Qué es una *"Function"?: Como todo son lineas de código que dandole unos parametros nos realizará una acción.
Único ejemplo que haré es: (después lo explico)
function phperos() {
echo "hii usuarios locosss";
} Ahora ya tenemos la función mas simple de todas creada XDDD! pero si la ejecutamos no se vera nada

para que la veamos tenemos que añadir
phperos(); asi siempre nos mostrara
hii usuarios locosss cada vez que lo pongamos
3- FUNCIONES YA PREDEFINIDAS DE PHP Hay unas funciones que son propias de PHP que no hacen falta crearlas, nose si me explico bien... yo solo os enseñare
*"strlen" y
*"str_replace" *DEFINO STRLEN: Nos sirve para contar carácteres de una frase.
*DEFINO STR_REPLACE: En este tutorial solo lo usare para reemplazar palabras en una frase.
STRLEN $phperos = "hola amigos de phperos"; // eligimos una variable y su contenido
$medidaphperos = strlen($phperos); // con la funcion strlen medimos los caracteres de una frase
echo "la variable $phperos mide $medidaphperos caracteres xdd"; // mostramos caracteres STR_REPLACE
$frase3 = "siquillote"; // ponemos la palabra a buscar para ser reemplazada
$frase2 = "sergiopina"; // aqui ponemos la palabra para reemplazar a la buscada
$frase = "estoy en casa de siquillote tomandome una cerveza xdd"; // aqui la frase original que queremos editar
$frase4 = str_replace($frase3, $frase2, $frase); // con la funcion str_replace busca las palabras semejantes y las reemplaza por la que elijamos
echo "la nueva frase es $frase4"; // Aqui ya mostramos la frase cambiada Bueno me aburría y he decidido seguir con el tutorial
4- UN TIPO DE ARRAY "ASOCIATIVO" Bueno en esta parte primero que nada os enseñare la definicion de array y un array simple, después os enseñare a hacer un tipo de array llamado
ARRAY ASOCIATIVO OS DEFINO ARRAY: Podríamos decir chicos, que un array es como... una variable que dentro de esa variable tiene como valor muchas variables dentro, ahora pondré un
array asociativo y lo explicaré para que podáis hacerlo vosotros.
$nombreyweb = array("soyjoaquin."=>"uphabbo","Naveda"=>"phperos","siquillote"=>"phperos tambien xdd"); // Definimos los nombres y webs de cada user
foreach($nombreyweb as $usuario=>$web) { // con la funcion foreach
echo "el usuario $usuario pertenece a la web $web";
}- Lo primero de todo que hemos hecho ha sido definir el array con distintos valores.
- hemos usado el operador => que significa "Tal que" Gracias a FeDe por la correción.
- hemos separado los usuarios y webs por comas (,),
- con foreach() hemos recorrido todo el array y podemos hacer con los valores lo queramos dentro de las llaves {}
- con echo hemos mostrado el resultado de las variables $usuario y $web dentro de foreach, de sus llaves
5- EMPEZANDO CON MYSQL Y BASES DE DATOS. Bueno, en este punto 5 que llevo ya en PHPEROS os enseñaré a como hace un simple simple simple formulario y hacer que se registre en una tabla con los datos que la persona haya puesto, para eso necesitaremos un
conectar.php, no os preocupeis yo os enseñare como hacerlo ya que es facilísimo de hacer un simple
conectar.php, Empezemos con el codigo:
$servidor =""; // aqui chicos ponemos nuestro servidor
$usuario =""; // el usuario del servidor y bd
$clave =""; // clave de acceso a bd
$nombrebd =""; // nombre de la base de datos
$conectamos = mysql_connect($servidor, $usuario, $clave) or die (mysql_error());
mysql_select_db($nombrebd, $conectamos);
- Con mysql_connect() conectamos a nuestro servidor de mysql
- or die() se muestra si ha ocurrido un error al conectar siempre es preferible poner mysql_error()
- con mysql_select_db() decimos a que base de datos nos debemos conectar
Vamos a seguir de nuevo con el tutorial 
Bueno, una vez que ya tenemos nuestro conectar.php para conectar a la base de datos, ahora vamos a lo realmente interesante, de momento os voy a explicar paso a paso como realizar un simple formulario con los campos que queramos, para que al enviarlos, estos se registren en una tabla especifica de nuestra base de datos. Empezemos,
- Crearemos un archivo llamado formulario.php, el action del <form será formulario.php, el mismo archivo que estamos creando
- En la parte superior del todo, no olvidar se de poner
<?php
include('conectar.php); // include significa incluir sirve para incluir un archivo es lo más básico del php
?>
Vamos ahora a ver como quedaría con el formulario puesto:
<?php
include('conectar.php');
?>
<form action="formulario.php" method="post">
usuario:<input type="text" name="usuario" />
web:<input type="text" name="web" />
mision:<input type="text" name="mision" />
<input type="submit" name="enviar" value="enviar">
</form>
Ya tenemos el
formulario creado con el
conectar.php incluido, pero de momento no hemos hecho nada aún... hemos hecho lo más simple de todo, ahora pondre el codigo php para que se registre en la base de datos, después explicaré todo muy muy muy detalladamente para que lo podáis entender
<?php
// defino las variables de los post usuario web y mision
$usuario = $_POST['usuario']; // post debido a que el metodo que pusimos es method="post" y usuario por el name
$web = $_POST['web']; // web por el name que le pusimos "web"
$mision = $_POST['mision']; // mision por el name que le pusimos en el form "mision"
// vamos a por los array
if(isset($_POST['enviar'])) {
if(!empty($_POST['usuario']) && !empty($_POST['web']) && !empty($_POST['mision'])) { // comprobamos que no esten vacios podeis usar && o and
$enviamos = 'INSERT INTO usuarios (usuario, web, mision) VALUES(\''.$usuario.'\',\''.$web.'\',\''.$mision.'\')';
//registramos en bd
if(mysql_query($enviamos)) {
echo "Has quedado registrado en nuestra base de datos";
}else{
echo "algun error ha ocurrido mientras te registrabas";
}else{
echo "te has dejado algun campo vacio";
}
}
}
?>
Hemos utilizado:- isset();: esta funcion nos comprueba si hay un valor dentro
- empty();: esta función nos comprueba si esta vacio el campo
- 'INSERT INTO': su traducción seria insertar en... y a continuación el nombre de la tabla de la db que conectamos
- 'VALUES': indica que Valores van a ser introducidos en la tabla
- mysql_query();: ejecuta nuestro codigo en la base de datos...
- && ó and: lo usamos para decir "y..."
Traduccion hecha por mi para los que lo quieran entender todo bien.
si(sehapulsado($_POST['enviar'])) { // si se pulsa se muestra... se puede hacer lo siguiente con if o elseif
if(!noestavacio($_POST['usuario']) y !noestavacio$_POST['web']) y !noestavacio($_POST['mision'])) {
$enviamos = 'INSERTAR EN usuarios (usuario, web, mision) VALORES(\''.$usuario.'\',\''.$web.'\',\''.$mision.'\')';
// registramos en bd
if(siejecutaelcodede($enviamos)) {
semuestra "has quedado registrado en nuesta base de datos";
}sino{
semuestra "algun error ha ocurrido mientras te registrabas";
}sino{
semuestra "te dejaste algun campo vacío";
}
}
}
5.1- PROTEGIENDO NUESTROS POST. Bueno muchas
inyecciones sql se producen debido a que no protegemos nuestros post, por ejemplo eso me puede pasar ami con el codigo que os enseñé antes, os voy a enseñar con unas simples funciones a como proteger los post y hacer a los hacker la tarea más dificil a la hora de intentar hackearnos, las funciones que os enseñaré serán:
- htmlspecialchars();: Esta funcion nos censura caracteres como <h1>hola</h1>...
- mysql_real_escape_string();: Quita o escapa caracteres especiales en una cadena a la hora de ejecutarlos en SQL
- stripslashes();: añade slashes "/" a las comillas, <,>,'
- strip_tags();: Eliminamos marcas PHP y HTML en una cadena.
Estos siempre los debemos de poner en un
$_POST que este en una variable o solo, pero si esta dentro de un
if no debemos ponerlo, ya que en un if no se puede hack por esos métodos, digamoslo asi jajaja xd!... Ahora os pondre el mismo code pero editado para que lo veáis
<?php
// defino las variables de los post usuario web y mision
$usuario = mysql_real_escape_string(htmlspecialchars(stripslashes(strip_tags($_POST['usuario'])))); // post debido a que el metodo que pusimos es method="post" y usuario por el name
$web = mysql_real_escape_string(htmlspecialchars(stripslashes(strip_tags($_POST['web'])))); // web por el name que le pusimos "web"
$mision = mysql_real_escape_string(htmlspecialchars(stripslashes(strip_tags($_POST['mision'])))); // mision por el name que le pusimos en el form "mision"
?>
Bueno ya lo he dejado un poco más actualizado, después seguiré más o decido si lo termino aqui ya
Agradecimientos a: - Soyjoaquin. y Sergiopina por rectificar mis codigos y ayudarme a entender mejor PHP.
- Dev-postnuke por impartirme las clases de php y enseñarme todo lo que se XDD
¡SEGUIMOS DE NUEVO!6- VAMOS A CREAR UNA HERRAMIENTA A LA QUE SOLO TENGAN ACCESO LOS ADMINISTRADORES O CIERTOS RANGOSBueno vamos a seguir con esto de una vez, espero que hubieseis entendido todo lo anterior que explicado, los 5 PUNTACOS, continuamos con el punto 6
Como siempre pongo el código y después lo explico lo que he realizado en ese codigo:
<?php session_start();
include ("connect.php");
$resultante = mysql_query("SELECT * FROM "nombre de tabla de usuarios sin estas comillas" WHERE "campo de usuario sin comillas esto" ='".$_SESSION["nombredenuestrasesión"]."'");
$comprobacion = mysql_fetch_array($resultante);
?>
<?php
if ($comprobacion[rango] == "Administrador" or $comprobacion[rango] == "cualquierotro" ){
?>
Vamos a parar aquí porque muchos de los que quereis aprender estaréis diciendo:
¿Que c***jones está haciendo? aquí la explicación por partes,
LO PRIMERO:<?php session_start();
include ("connect.php");Qué significa
session_start(); una definición simple es que con eso permitimos que en esa pagina (minombe.com/esapagina.php) se permitan las sesiones ($_SESSION).
Con
include("connect.php");incluimos el archivo en el que
conectamos con nuestra
base de datos.** ¿QUÉ SIGNIFICA
$resultante = mysql_query("SELECT * FROM "nombre de tabla de usuarios sin estas comillas" WHERE "campo de usuario sin comillas esto" ='".$_SESSION["nombredenuestrasesión"]."'");
$comprobacion = mysql_fetch_array($resultante);- En la primera variable llamada
$resultante con mysql_query seleccionamos la tabla de usuarios donde el campo del usuario es igual que el de nuestra session.
- En la segunda variable llamada
$comprobacion comprobamos con mysql_fetch_array el mysql_query de la variable enterior (ES MI MANERA DE EXPLICARLO!!)
- Una vez hecho esto que es lo mas difícil ya solo que da lo más facil que es
<?php
if ($comprobacion[rango] == "Administrador" or $comprobacion[rango] == "cualquierotro" ){
?> explico la siguiente parte que es:
if ($comprobacion[rango] == "Administrador" or $comprobacion[rango] == "cualquierotro" ){ - Bueno pues con $comprobacion[] buscamos el campo determinado que corresponde al usuario con la session iniciada puede ser $comprobacion[monedas] $comprobacion[placas], pero en este caso es [rango] o el nombre que tu tengas en el campo para los rangos, yo he puesto rango porque es lo más lógico, entonces con == estamos diciendo <<si solo si>> es igual a administrador o el que quieras, esto quiere decir que si el usuario que ha iniciado sesion su rango es por ejemplo administrador vera el contenido si no no.
- Con "or" sin comillas claro está. Decimos que puede haber varios rangos que lo puedan ver por ejemplo Administrador o moderador y lo ponemos de la siguiente manera if($comprobacion[rango]="administrador" or $comprobacion[rango] == "moderador") {
VEN? la traduccion al español seria: SI EL RANGO ES ADMINISTRADOR O EL RANGO ES MODERADOR {
despues de { cerramos el codigo con ?> y ponemos a continuación lo que queremos mostrar por ejemplo:
<? if($comprobacion[rango] == "administrador" or $comprobacion[rango] == "moderador") { ?>
<div> hola </div>
<? } else{
echo" debes ser admin o moderador para ver el contenido"; } ?>EL ELSE LO PONGO POR SI NO HA INICIADO SESIÓN O NO ES NINGUNO DE ESOS DOS RANGOS SALGA ESE MENSAJE !
7. EN DESARROLLO