juliangorge
Usuario (Argentina)

Aca empezamos Espero que les guste amigos.. comentar es agradecer
![Crea tu web con sistema de usuarios! [PHP & MYSQL]](https://storage.posteamelo.com/assets-adonis/assets/2018/06/19/big2v5-aDPScosNw3r.webp)
HOLA GENTE!!!! Todo bien? Les traigo un tutorial de cómo crear un sistema de usuarios para tu proyecto Lo que usaremos se llama programación en PHP, y es distinto al html que uno mismo puede editar y retocar en la internet (sin producir cambios globales, solo en tu pc). El PHP funciona del lado del servidor, osea que ningún usuario puede generar un quilombo en tu sistema RECUERDEN CHEKEAR ALGUN TUTO BASICO DE PHP Y MYSQL COMO TAMBIÉN DE HTML/CSS Les dejo uno mío http://www.taringa.net/posts/hazlo-tu-mismo/16321783/Queres-crear-tu-propia-web-Tutorial-HTML-y-CSS.html Necesitas una host si no tenes, con este programa podés tener tu propio localhost. Una vez descargado e instalado, lo iniciamos (RECUERDEN DONDE LO INSTALARON): Seleccionamos en START en MYSQL Y APACHE. Si quieren que siempre esté funcionando su localhost (sin necesidad de abrir el programita), tienen que instalar MYSQL Y APACHE haciendo click en el checkbox Se dirigen a la carpeta donde lo instalaron: (en mi caso disco C) C:/xampp/htdocs y creamos una carpeta para luego ir a nuestro navegador y poder entrar con http://localhost/nuestranombrecarpeta Donde no tendrán nada todavía, obviamente. Dirijámonos a http://localhost/phpmyadmin que es nuestra BASE DE DATOS Hacemos click en base de datos (arriba en el menú) y ponemos el nombre a nuestra db, por ahora: miweb. Lo que está la costado, llamado cotejamiento esta en lenguaje español para que permita subir informacion a la base de datos como ñ tildes, etc. Nos dirigimos a la sección SQL para crear una tabla y ponemos lo siguiente: CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `usuario` varchar(45) COLLATE utf8mb4_spanish_ci NOT NULL, `password` varchar(45) COLLATE utf8mb4_spanish_ci NOT NULL, `foto_perfil` varchar(120) COLLATE utf8mb4_spanish_ci NOT NULL DEFAULT 'sin-avatar.jpg', `email` varchar(60) COLLATE utf8mb4_spanish_ci NOT NULL, `pais` varchar(100) COLLATE utf8mb4_spanish_ci NOT NULL, `fecha` date NOT NULL, `ip` varchar(15) COLLATE utf8mb4_spanish_ci NOT NULL, `nombre` varchar(20) COLLATE utf8mb4_spanish_ci NOT NULL, `apellido` varchar(20) COLLATE utf8mb4_spanish_ci NOT NULL, PRIMARY KEY (`id`) ) Damos guardar y a la derecha nos aparecerá, hacemos click.. y veremos que se ha creado :3 Ahora crearemos unos archivos con las siguientes extensiones que irán adentro de la carpeta que sería nuestro "dominio": mysql.php index.php iniciando.php logout.php nuevo-usuario.php mysql.php <?php $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "miweb"; //nombre de la basedd $con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con); ?> Explicación: son los datos de la base de datos donde tomaremos los datos index.php <?php include("mysql.php"); session_start(); if(isset($_SESSION['usuario'])) { $sql = mysql_query("SELECT * FROM usuarios WHERE usuario='".$_SESSION["usuario"]."'"); $row = mysql_fetch_array($sql); $foto=$row["foto_perfil"]; $usuarios=mysql_query("SELECT * FROM usuarios"); if($user_ok = mysql_fetch_array($usuarios)) { echo ' <table background="img/menu-perfil.png" width="112" class="cuadro-foto"> <tr align="center"> <td width="70"> <img src="'.$foto.'" width="73" class="foto" height="58"> </td> <td> <b>Bienvenido </b>'.$_SESSION["usuario"].'! </td> </tr> </table> <a href="logout.php">cerrar sesion</a> '; } }else{ echo ' <table> <form action="iniciando.php" class="contacto" method="POST"> <tr> <td> </td> <td width="100">Usuario:</td> <td><input type="text" name="usuario" size="15"></td> <td rowspan="2" style="padding-left: 30px;"> </td> </tr> <tr> <td> </td> <td>Password:</td> <td><input type="password" name="password" size="15"></td> </tr> <tr style="text-align:right;"> <td> </td> <td><a href="nuevo-usuario.php">Registrarme!</a></td> <td><input type="submit" name="submit" value="Iniciar sesión"></td> </tr> <form> </table> '; } ?> Explicación del código: Hay una condicional que pregunta que si ya ha habido una sesión iniciada, recoge los datos de la base de datos y los imprime.. si no es así vuelve a poner el formulario iniciando.php <?php include('mysql.php'); session_start(); $usuario = $_POST["usuario"]; $password = $_POST["password"]; if( ($usuario == ' ' or $password == ' ')) { header("location: index.php"); }else{ $usuarios=mysql_query("SELECT * FROM usuarios WHERE usuario='".$usuario."' AND password='".$password."' limit 1"); $user_ok=mysql_fetch_array($usuarios); if($user_ok > 0) { $_SESSION['usuario'] = $user_ok["usuario"]; $_SESSION['password'] = $user_ok["password"]; $_SESSION['id'] = $user_ok["id"]; $_SESSION['foto_perfil'] = $user_ok["foto_perfil"]; $_SESSION['pais'] = $user_ok["pais"]; $_SESSION['email'] = $user_ok["email"]; header("location: ".$_SERVER['HTTP_REFERER']); }else{ echo '<script>javascript:alert("Usuario y/o password incorrectos");</script> <script>javascript:history.back(1)</script>'; } } ?> Explicacion: recoge los datos del formulario, los compara con los de la base de datos y si son correctos inicia, sino vuelve. logout.php <?php include('mysql.php'); $sql="DELETE FROM `usuarios` (status) WHERE id='$_SESSION'"; session_destroy(); header("location: index.php"); ?> Explicación: destruye la sesión. nuevo-usuario.php <html> <head> <title>Registro de usuarios</title> <link rel="stylesheet" href="registro.css"> </head> <body> <form class="contacto" method="POST"> <div><label>Usuario:</label><input type="text" name="usuario" value=""></div> <div><label>Password:</label><input type="password" name="password" value=""></div> <div><label>Confirmar password:</label><input type="password" name="repassword" value=""></div> <div><label>Email:</label><input type="text" name="email" value=""></div> <div><label>Nombre:</label><input type="text" name="nombre" value=""></div> <div><label>Apellido:</label><input type="text" name="apellido" value=""></div> <div><label>Nacionalidad:</label> <select name="pais"> <option select></option> <option value="Afganistán">Afganistán</option> <option value="Albania">Albania</option> <option value="Alemania">Alemania</option> <option value="Andorra">Andorra</option> <option value="Angola">Angola</option> <option value="Anguilla">Anguilla</option> <option value="Antártida">Antártida</option> <option value="Antigua y Barbuda">Antigua y Barbuda</option> <option value="Antillas Holandesas">Antillas Holandesas</option> <option value="Arabia Saudíta">Arabia Saudíta</option> <option value="Argelia">Argelia</option> <option value="Argentina">Argentina</option> <option value="Armenia">Armenia</option> <option value="Aruba">Aruba</option> <option value="Australia">Australia</option> <option value="Austria">Austria</option> <option value="Azerbaiyán">Azerbaiyán</option> <option value="Bahamas">Bahamas</option> <option value="Bahrein">Bahrein</option> <option value="Bangladesh">Bangladesh</option> <option value="Barbados">Barbados</option> <option value="Bélgica">Bélgica</option> <option value="Belice">Belice</option> <option value="Benin">Benin</option> <option value="Bermudas">Bermudas</option> <option value="Bielorrusia">Bielorrusia</option> <option value="Birmania">Birmania</option> <option value="Bolivia">Bolivia</option> <option value="Bosnia y Herzegovina">Bosnia y Herzegovina</option> <option value="Botswana">Botswana</option> <option value="Brasil">Brasil</option> <option value="Brunei">Brunei</option> <option value="Bulgaria">Bulgaria</option> <option value="Burkina Faso">Burkina Faso</option> <option value="Burundi">Burundi</option> <option value="Bután">Bután</option> <option value="Cabo Verde">Cabo Verde</option> <option value="Camboya">Camboya</option> <option value="Camerún">Camerún</option> <option value="Canadá">Canadá</option> <option value="Catalunya">Catalunya</option> <option value="Chad">Chad</option> <option value="Chile">Chile</option> <option value="China">China</option> <option value="Chipre">Chipre</option> <option value="Ciudad del Vaticano (Santa Sede)">Ciudad del Vaticano (Santa Sede)</option> <option value="Colombia">Colombia</option> <option value="Comores">Comores</option> <option value="Congo">Congo</option> <option value="Rep. Dem. del Congo">República Democrática del Congo</option> <option value="Corea">Corea</option> <option value="Corea del Norte">Corea del Norte</option> <option value="Costa de Marfíl">Costa de Marfíl</option> <option value="Costa Rica">Costa Rica</option> <option value="Croacia">Croacia</option> <option value="Cuba">Cuba</option> <option value="Dinamarca">Dinamarca</option> <option value="Djibouti">Djibouti</option> <option value="Dominica">Dominica</option> <option value="Ecuador">Ecuador</option> <option value="Egipto">Egipto</option> <option value="El Salvador">El Salvador</option> <option value="Emiratos Árabes Unidos">Emiratos Árabes Unidos</option> <option value="Eritrea">Eritrea</option> <option value="Eslovenia">Eslovenia</option> <option value="España">España</option> <option value="Estados Unidos">Estados Unidos</option> <option value="Estonia">Estonia</option> <option value="Etiopía">Etiopía</option> <option value="Fiji">Fiji</option> <option value="Filipinas">Filipinas</option> <option value="Finlandia">Finlandia</option> <option value="Francia">Francia</option> <option value="Gabón">Gabón</option> <option value="Gambia">Gambia</option> <option value="Georgia">Georgia</option> <option value="Ghana">Ghana</option> <option value="Gibraltar">Gibraltar</option> <option value="Granada">Granada</option> <option value="Grecia">Grecia</option> <option value="Groenlandia">Groenlandia</option> <option value="Guadalupe">Guadalupe</option> <option value="Guam">Guam</option> <option value="Guatemala">Guatemala</option> <option value="Guayana">Guayana</option> <option value="Guayana Francesa">Guayana Francesa</option> <option value="Guinea">Guinea</option> <option value="Guinea Ecuatorial">Guinea Ecuatorial</option> <option value="Guinea-Bissau">Guinea-Bissau</option> <option value="Haití">Haití</option> <option value="Honduras">Honduras</option> <option value="Hungría">Hungría</option> <option value="India">India</option> <option value="Indonesia">Indonesia</option> <option value="Irak">Irak</option> <option value="Irán">Irán</option> <option value="Irlanda">Irlanda</option> <option value="Isla Bouvet">Isla Bouvet</option> <option value="Isla de Christmas">Isla de Christmas</option> <option value="Islandia">Islandia</option> <option value="Islas Caimán">Islas Caimán</option> <option value="Islas Cook">Islas Cook</option> <option value="Islas de Cocos o Keeling">Islas de Cocos o Keeling</option> <option value="Islas Faroe">Islas Faroe</option> <option value="Islas Heard y McDonald">Islas Heard y McDonald</option> <option value="Islas Malvinas">Islas Malvinas</option> <option value="Islas Marianas del Norte">Islas Marianas del Norte</option> <option value="Islas Marshall">Islas Marshall</option> <option value="Islas menores de Estados Unidos">Islas menores de Estados Unidos</option> <option value="Islas Palau">Islas Palau</option> <option value="Islas Salomón">Islas Salomón</option> <option value="Islas Svalbard y Jan Mayen">Islas Svalbard y Jan Mayen</option> <option value="Islas Tokelau">Islas Tokelau</option> <option value="Islas Turks y Caicos">Islas Turks y Caicos</option> <option value="Islas Vírgenes (EE.UU.)">Islas Vírgenes (EE.UU.)</option> <option value="Islas Vírgenes (Reino Unido)">Islas Vírgenes (Reino Unido)</option> <option value="Islas Wallis y Futuna">Islas Wallis y Futuna</option> <option value="Israel">Israel</option> <option value="Italia">Italia</option> <option value="Jamaica">Jamaica</option> <option value="Japón">Japón</option> <option value="Jordania">Jordania</option> <option value="Kazajistán">Kazajistán</option> <option value="Kenia">Kenia</option> <option value="Kirguizistán">Kirguizistán</option> <option value="Kiribati">Kiribati</option> <option value="Kuwait">Kuwait</option> <option value="Laos">Laos</option> <option value="Lesotho">Lesotho</option> <option value="Letonia">Letonia</option> <option value="Líbano">Líbano</option> <option value="Liberia">Liberia</option> <option value="Libia">Libia</option> <option value="Liechtenstein">Liechtenstein</option> <option value="Lituania">Lituania</option> <option value="Luxemburgo">Luxemburgo</option> <option value="Macedonia">Macedonia</option> <option value="Madagascar">Madagascar</option> <option value="Malasia">Malasia</option> <option value="Malawi">Malawi</option> <option value="Maldivas">Maldivas</option> <option value="Malí">Malí</option> <option value="Malta">Malta</option> <option value="Marruecos">Marruecos</option> <option value="Martinica">Martinica</option> <option value="Mauricio">Mauricio</option> <option value="Mauritania">Mauritania</option> <option value="Mayotte">Mayotte</option> <option value="México">México</option> <option value="Micronesia">Micronesia</option> <option value="Moldavia">Moldavia</option> <option value="Mónaco">Mónaco</option> <option value="Mongolia">Mongolia</option> <option value="Montserrat">Montserrat</option> <option value="Mozambique">Mozambique</option> <option value="Namibia">Namibia</option> <option value="Nauru">Nauru</option> <option value="Nepal">Nepal</option> <option value="Nicaragua">Nicaragua</option> <option value="NÍger">NÍger</option> <option value="Nigeria">Nigeria</option> <option value="Niue">Niue</option> <option value="Norfolk">Norfolk</option> <option value="Noruega">Noruega</option> <option value="Nueva Caledonia">Nueva Caledonia</option> <option value="Nueva Zelanda">Nueva Zelanda</option> <option value="Omán">Omán</option> <option value="Países Bajos">Países Bajos</option> <option value="Panamá">Panamá</option> <option value="Papúa Nueva Guinea">Papúa Nueva Guinea</option> <option value="Paquistán">Paquistán</option> <option value="Paraguay">Paraguay</option> <option value="Perú">Perú</option> <option value="Pitcairn">Pitcairn</option> <option value="Polinesia Francesa">Polinesia Francesa</option> <option value="Polonia">Polonia</option> <option value="Portugal">Portugal</option> <option value="Puerto Rico">Puerto Rico</option> <option value="Qatar">Qatar</option> <option value="Reino Unido">Reino Unido</option> <option value="República Centroafricana">República Centroafricana</option> <option value="República Checa">República Checa</option> <option value="República de Sudáfrica">República de Sudáfrica</option> <option value="República Dominicana">República Dominicana</option> <option value="República Eslovaca">República Eslovaca</option> <option value="Reunión">Reunión</option> <option value="Ruanda">Ruanda</option> <option value="Rumania">Rumania</option> <option value="Rusia">Rusia</option> <option value="Sahara Occidental">Sahara Occidental</option> <option value="Saint Kitts y Nevis">Saint Kitts y Nevis</option> <option value="Samoa">Samoa</option> <option value="Samoa Americana">Samoa Americana</option> <option value="San Marino">San Marino</option> <option value="San Vicente y Granadinas">San Vicente y Granadinas</option> <option value="Santa Helena">Santa Helena</option> <option value="Santa Lucía">Santa Lucía</option> <option value="Santo Tomé y PrÍncipe">Santo Tomé y PrÍncipe</option> <option value="Senegal">Senegal</option> <option value="Seychelles">Seychelles</option> <option value="Sierra Leona">Sierra Leona</option> <option value="Singapur">Singapur</option> <option value="Siria">Siria</option> <option value="Somalia">Somalia</option> <option value="Sri Lanka">Sri Lanka</option> <option value="St. Pierre y Miquelon">St. Pierre y Miquelon</option> <option value="Suazilandia">Suazilandia</option> <option value="Sudán">Sudán</option> <option value="Suecia">Suecia</option> <option value="Suiza">Suiza</option> <option value="Surinam">Surinam</option> <option value="Tailandia">Tailandia</option> <option value="Taiwán">Taiwán</option> <option value="Tanzania">Tanzania</option> <option value="Tayikistán">Tayikistán</option> <option value="Territorios franceses del Sur">Territorios franceses del Sur</option> <option value="Timor Oriental">Timor Oriental</option> <option value="Togo">Togo</option> <option value="Tonga">Tonga</option> <option value="Trinidad y Tobago">Trinidad y Tobago</option> <option value="Túnez">Túnez</option> <option value="Turkmenistán">Turkmenistán</option> <option value="Turquía">Turquía</option> <option value="Tuvalu">Tuvalu</option> <option value="Ucrania">Ucrania</option> <option value="Uganda">Uganda</option> <option value="Uruguay">Uruguay</option> <option value="Uzbekistán">Uzbekistán</option> <option value="Vanuatu">Vanuatu</option> <option value="Venezuela">Venezuela</option> <option value="Vietnam">Vietnam</option> <option value="Yemen">Yemen</option> <option value="Yugoslavia">Yugoslavia</option> <option value="Zambia">Zambia</option> <option value="Zimbabue">Zimbabue</option> </select></div> <div><input type="submit" name="registro" value="Registrarme"><input type="reset" value="Limpiar datos"></div> </form> </body> </html> <?php include("mysql.php"); if(isset($_POST["registro"])) { if($_POST['usuario'] == '' or $_POST['password'] == '' or $_POST['repassword'] == '' or $_POST['email'] == '' or $_POST['pais'] == '' or $_POST['nombre'] == '' or $_POST['apellido'] == '') { echo '<script>javascript:alert("Por favor llene todos los campos");</script>'; }else{ $sql = "SELECT * FROM usuarios"; $rec = mysql_query($sql); $verificar_usuario = 0; while($result = mysql_fetch_object($rec)) { if($result->usuario == $_POST['usuario']) { $verificar_usuario = 1; } } if($verificar_usuario == 0) { if($_POST['password'] == $_POST['repassword']) { $usuario = $_POST['usuario']; $password = $_POST['password']; $email = $_POST['email']; $pais = $_POST['pais']; $nombre = $_POST['nombre']; $apellido = $_POST['apellido']; $ip = $_SERVER['REMOTE_ADDR']; $scl = "INSERT INTO usuarios (usuario,password,email,pais,ip,nombre,apellido) VALUES ('".$usuario."','".$password."','".$email."','".$pais."','".$ip."','".$nombre."','".$apellido."')"; mysql_query($scl); echo '<script>javascript:alert("Registro exitoso!");</script> <script language="JavaScript" type="text/javascript"> var pagina="index.php" function redireccionar() { location.href=pagina } setTimeout ("redireccionar()", 10); </script> '; } else { echo '<script>javascript:alert("Passwords no iguales");</script>'; } } else { echo '<script>javascript:alert("Usuario registrado anteriormente");</script>'; } } } ?> y les dejo un regalito de estilo para el registro *{ font-family: sans-serif; font-size: 12px; color: #798e94; } body{ width: 400px; margin: auto; } .contacto{ border: 1px solid #CED5D7; border-radius: 6px; padding: 45px 45px 20px; margin-top: 50px; background-color: white; box-shadow: 0px 5px 10px #B5C1C5, 0 0 0 10px #EEF5F7 inset; } .contacto label{ display: block; font-weight: bold; } .contacto div{ margin-bottom: 15px; } .contacto input, .contacto textarea{ padding: 7px 6px; width: 294px; border: 1px solid #CED5D7; resize: none; box-shadow:0 0 0 3px #EEF5F7; margin: 5px 0; } .contacto input:focus, .contacto textarea:focus{ outline: none; box-shadow:0 0 0 3px #dde9ec; } .contacto input{ border: 1px solid #CED5D7; box-shadow:0 0 0 3px #EEF5F7; padding: 8px 16px; border-radius: 20px; font-weight: bold; text-shadow: 1px 1px 0px white; background: #e4f1f6; background: -moz-linear-gradient(top, #e4f1f6 0%, #cfe6ef 100%); background: -webkit-linear-gradient(top, #e4f1f6 0%,#cfe6ef 100%); } .contacto input:hover{ background: #edfcff; background: -moz-linear-gradient(top, #edfcff 0%, #cfe6ef 100%); background: -webkit-linear-gradient(top, #edfcff 0%,#cfe6ef 100%); } .contacto input:active{ background: #cfe6ef; background: -moz-linear-gradient(top, #cfe6ef 0%, #edfcff 100%); background: -webkit-linear-gradient(top, #cfe6ef 0%,#edfcff 100%); } .contacto input, .contacto textarea{ padding: 7px 6px; width: 294px; border: 1px solid #CED5D7; resize: none; box-shadow:0 0 0 3px #EEF5F7; margin: 5px 0; } .contacto input:focus, .contacto textarea:focus{ outline: none; box-shadow:0 0 0 3px #dde9ec; } .contacto select, .contacto textarea{ padding: 7px 6px; width: 294px; border: 1px solid #CED5D7; resize: none; box-shadow:0 0 0 3px #EEF5F7; margin: 5px 0; } .contacto select:focus, .contacto textarea:focus{ outline: none; box-shadow:0 0 0 3px #dde9ec; } .contacto input{ border: 1px solid #CED5D7; box-shadow:0 0 0 3px #EEF5F7; padding: 8px 16px; border-radius: 20px; font-weight: bold; text-shadow: 1px 1px 0px white; background: #e4f1f6; background: -moz-linear-gradient(top, #e4f1f6 0%, #cfe6ef 100%); background: -webkit-linear-gradient(top, #e4f1f6 0%,#cfe6ef 100%); } .contacto input:hover{ background: #edfcff; background: -moz-linear-gradient(top, #edfcff 0%, #cfe6ef 100%); background: -webkit-linear-gradient(top, #edfcff 0%,#cfe6ef 100%); } .contacto input:active{ background: #cfe6ef; background: -moz-linear-gradient(top, #cfe6ef 0%, #edfcff 100%); background: -webkit-linear-gradient(top, #cfe6ef 0%,#edfcff 100%); } Y PRUEBEN INGRESAN TODOS LOS DATOS, ETC... CONSIGAN UNA IMAGEN PARA EL USUARIO QUE RECIÉN ENTRA y llamenla sin-avatar.jpg Pueden usar todos los datos para mostrar al principio cuando logean, ejemplo $_SESSION["email"] o pais.. SALUDOS CORDIALES!

HOLA GENTE! cómo va? En esta ocación empezaré a hacer tutoriales sobre como hacer una página web con PHP, Mysql, Javascript, etc.. parte por parte. Hoy empezaremos con un Menú y subsmenús con base a una web de compra y venta de artículos. RECUERDEN CHEKEAR ALGUN TUTO BASICO DE PHP Y MYSQL COMO TAMBIÉN DE HTML/CSS Necesitas una host si no tenes, con este programa podés tener tu propio localhost. Una vez descargado e instalado, lo iniciamos (RECUERDEN DONDE LO INSTALARON): Seleccionamos en START en MYSQL Y APACHE. Si quieren que siempre esté funcionando su localhost (sin necesidad de abrir el programita), tienen que instalar MYSQL Y APACHE haciendo click en el checkbox Se dirigen a la carpeta donde lo instalaron: (en mi caso disco C) C:/xampp/htdocs y creamos una carpeta para luego ir a nuestro navegador y poder entrar con http://localhost/nuestranombrecarpeta Donde no tendrán nada todavía, obviamente. Dirijámonos a http://localhost/phpmyadmin que es nuestra BASE DE DATOS Hacemos click en base de datos (arriba en el menú) y ponemos el nombre a nuestra db, por ahora: miweb. Lo que está la costado, llamado cotejamiento esta en lenguaje español para que permita subir informacion a la base de datos como ñ tildes, etc. Nos dirigimos a la sección SQL para crear una tabla y ponemos lo siguiente: CREATE TABLE IF NOT EXISTS `menu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(20) COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci; INSERT INTO `menu` (`id`, `nombre`) VALUES (1, 'Hogar / Oficina'), (2, 'Empleos'), (3, 'Electrónica'), (4, 'Indumentaria'), (5, 'Automotores'), (6, 'Inmobiliaria'), (7, 'Música'), (8, 'Servicios'), (9, 'Mascotas'), (10, 'Otros'); Eso fue con respecto al menu, ahora vamos con los listados del mismo ID: identificador del submenu. Nombre: titulo del submenu Menu_id: menu al que pertenece (usando ID: identificador) Cont_item: para contar la cantidad de publicaciones vinculadas a el. (Opcional) CREATE TABLE IF NOT EXISTS `submenu` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(40) COLLATE utf8_spanish_ci NOT NULL, `menu_id` int(11) NOT NULL, `cont_item` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci; INSERT INTO `submenu` (`id`, `nombre`, `menu_id`, `cont_item`) VALUES (1, 'Limpieza', 1, 0), (2, 'Decoración', 1, 0), (3, 'Muebles', 1, 0), (4, 'Baño', 1, 0), (5, 'Cocina', 1, 0), (6, 'Sala de estar', 1, 0), (7, 'Dormitorio', 1, 0), (8, 'Seguridad', 1, 0), (9, 'Jardín y exteriores', 1, 0), (10, 'Pisos, paredes y aberturas', 1, 0), (11, 'Audio / Video', 3, 0), (12, 'Computación', 3, 0), (13, 'Electrodomésticos', 3, 0), (14, 'Automóviles', 5, 0), (15, 'Camionetas', 5, 0), (16, 'Bicicletas', 5, 0), (17, 'Motos y cuatriciclos', 5, 0), (18, 'Departamentos', 6, 0), (19, 'Casas', 6, 0), (20, 'Fondos de comercio', 6, 0), (21, 'Instrumentos musicales', 7, 0), (22, 'Microfonía', 7, 0), (23, 'Sonido e Iluminación', 7, 0), (24, 'Instrumentos de cuerda', 7, 0), (25, 'Instrumentos de percusión', 7, 0), (26, 'Teclados / pianos', 7, 0), (27, 'Cursos y clases', 8, 0), (28, 'Ciudad personal', 8, 0), (29, 'Arte, música y cine', 8, 0), (30, 'Delivery', 8, 0), (31, 'Construcción / mantenimiento', 8, 0), (32, 'Vehículos', 8, 0), (33, 'Profesionales', 8, 0), (34, 'Servicio técnico', 8, 0), (35, 'Servicio para mascotas', 8, 0), (36, 'Transporte', 8, 0), (37, 'Viajes / turismo', 8, 0); Ahora iremos al php: MYSQL.PHP Nos conectaremos a la base de datos: <?php $bd_host = "localhost"; //localhost XD $bd_usuario = "root"; //usuario $bd_password = ""; //contraseña $bd_base = "miweb"; //Nombre de la db $con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con); ?> MENU.PHP <div id="menu"> <?php include("mysql.php"); //Incluimos los datos de la conexion de base de datos $menu_sql = mysql_query("SELECT id,nombre FROM menu"); //Selecciona los titulos del menu while($menu = mysql_fetch_row($menu_sql)) //Entregara los datos en forma de $menu[numero], empezando con el 0 { //Repetira el siguiente echo con todos los datos de la consulta echo ' <ul> <li> <a href="'.$menu[0].'">'.$menu[1].'</a>'; //Se usa el '. .' para "pausar" el echo y mostrar una variable acompañada siempre por puntos. $submenu_sql = mysql_query("SELECT id,nombre,menu_id,cont_item FROM submenu WHERE menu_id = '".$menu[0]."'"); //Selecciona los subsmenu con la condición de mostrar en el menu que corresponda (Por id) if(mysql_num_rows($submenu_sql) > 0) //Si la cantidad de filas que muestra la consulta es mayor a 0 imprimiria lo siguiente ( echo ) { echo ' <div> <ul>'; while($submenu = mysql_fetch_row($submenu_sql)) { echo ' <li><a href="'.$submenu[0].'">'.$submenu[1].' ('.$submenu[3].')</a></li>'; } mysql_free_result($submenu_sql); //Liberamos memoria para no saturar el servidor, si es muy visitado, pero siempre es mejor tomar precauciones :) echo ' </ul> </div>'; } echo ' </li> </ul> '; } mysql_free_result($menu_sql); //Aqui tambien liberamos la memoria en la consulta del menu mysql_close(); //Cerramos la conexion a la db ?> </div> EXPLICACIÓN GENERAL: Hemos tomado los nombres de los menus y las listas directamente de nuestra base de datos, habilitando el <div> si este menu tenía alguna lista. Y... de yapa: STYLE.CSS #menu { background: #585858; border-bottom: 1px solid #000000; height: 37px; margin-bottom: 15px; -webkit-border-radius: 5px 5px 5px 5px; -moz-border-radius: 5px 5px 5px 5px; -khtml-border-radius: 5px 5px 5px 5px; border-radius: 5px 5px 5px 5px; -webkit-box-shadow: 0px 2px 2px #DDDDDD; -moz-box-shadow: 0px 2px 2px #DDDDDD; box-shadow: 0px 2px 2px #DDDDDD; padding: 0px 5px; } #menu ul { list-style: none; margin: 0; padding: 0; } #menu > ul > li { position: relative; float: left; z-index: 20; padding: 6px 5px 5px 0px; } #menu > ul > li:hover { } #menu > ul > li > a { font-size: 13px; color: #FFF; line-height: 14px; text-decoration: none; display: block; padding: 6px 10px 6px 10px; margin-bottom: 5px; z-index: 6; position: relative; } #menu > ul > li:hover > a { background: #000000; } #menu > ul > li> div { display: none; position: absolute; z-index: 5; padding: 5px; border: 1px solid #000000; -webkit-border-radius: 0px 0px 5px 5px; -moz-border-radius: 0px 0px 5px 5px; -khtml-border-radius: 0px 0px 5px 5px; border-radius: 0px 0px 5px 5px; background: url('../img/menu.png'); } #menu > ul > li:hover > div { display: table; } #menu > ul > li > div > ul { display: table-cell; } #menu > ul > li ul + ul { padding-left: 20px; } #menu > ul > li ul > li > a { text-decoration: none; padding: 4px; color: #FFFFFF; display: block; white-space: nowrap; min-width: 120px; } #menu > ul > li ul > li > a:hover { background: #000000; } #menu > ul > li > div > ul > li > a { color: #FFFFFF; } GRACIAS POR EL VER EL POST

Llegó la hora de que estrechemos filas y unamos nuestros votos para derrotar al kirchnerismo. Ahora que las PASO silenciaron todas las encuestas tendenciosas con las que trataron de manipularnos, cerremos filas votando todos juntos al candidato con más posibilidad de derrotar a la corrupción kirchnerista y salvemos La República con un acuerdo ciudadano de unidad. Porque quiero un país mejor para todos. Porque yo no me olvido de la desnutrición y gente pobre. Porque yo no me olvido de la gente que bancamos con nuestro dinero. Porque yo no me olvido del periodismo y las causas que quedaron en la nada. Porque yo no me olvido de la gente del campo. Porque yo no me olvido de la muerte del fiscal Nisman y su post-difamación. Porque ya no se puede más con el narcotráfico. Porque la discusión es entre Clarín y el Gobierno, y no sobre las políticas y tu forma de vivir Porque no quiero un país como el de Venezuela. Porque necesitamos representar confianza al exterior. Porque PODEMOS, los argentinos somos productivos, necesitamos quienes nos administren correctamente Porque necesitamos un cambio de aires que aspire a la inversión internacional. Porque yo no me olvido de todos los jueces que fueron apartados en las múltiples de causas que tienen en la Justicia. Por la gente que pierde todo cada vez que caen dos gotas. Por la censura que sufren los medios del interior que dependen íntegramente de la pauta oficial. Porque no quiero el mismo resultado de 2011 debido a una oposición dividida. Así que te invito a votar llevando las boletas desde tu casa. Que no te roben más el voto con dudosos movimientos en las mesas. Que tu voto no sea uno más, que marque la diferencia. Si no estás de acuerdo con el candidato, recordá: al fin y al cabo siempre se vota por el que es menos peor. Hacelo por tus hijos, por vos y por mi. Hacelo por la potencia que podríamos ser y que estamos desaprovechando hace muchos años Post realizado por un ciudadano, que votó por primera vez ( y no a Macri), que no es afiliado a ningún partido, pero que quiere un futuro mejor para todos, no para los amigos del poder. Evento en facebook: ¡Ahora todos juntos! https://www.facebook.com/events/356300514568380/
![[PHP y MYSQL] Script de noticias](https://storage.posteamelo.com/assets-adonis/assets/2018/06/10/859.jpg-XKx9pzyPlDI.webp)
Buenas gente de Taringa! les traigo, en mi regreso XD, un script de noticias con el index y noticia completa para que ya puedan visualizarlo. RECUERDEN CHEKEAR ALGUN TUTO BASICO DE PHP Y MYSQL COMO TAMBIÉN DE HTML/CSS Les dejo uno mío http://www.taringa.net/posts/hazlo-tu-mismo/16321783/Queres-crear-tu-propia-web-Tutorial-HTML-y-CSS.html Necesitas una host si no tenes, con este programa podés tener tu propio localhost. Una vez descargado e instalado, lo iniciamos (RECUERDEN DONDE LO INSTALARON): Seleccionamos en START en MYSQL Y APACHE. Si quieren que siempre esté funcionando su localhost (sin necesidad de abrir el programita), tienen que instalar MYSQL Y APACHE haciendo click en el checkbox Se dirigen a la carpeta donde lo instalaron: (en mi caso disco C) C:/xampp/htdocs y creamos una carpeta para luego ir a nuestro navegador y poder entrar con http://localhost/nuestranombrecarpeta Donde no tendrán nada todavía, obviamente. Dirijámonos a http://localhost/phpmyadmin que es nuestra BASE DE DATOS Hacemos click en base de datos (arriba en el menú) y ponemos el nombre a nuestra db, por ahora: miweb. Lo que está la costado, llamado cotejamiento esta en lenguaje español para que permita subir informacion a la base de datos como ñ tildes, etc. Nos dirigimos a la sección SQL para crear una tabla y ponemos lo siguiente: CREATE TABLE IF NOT EXISTS `noticias` ( `not_id` int(11) NOT NULL AUTO_INCREMENT, `not_titulo` varchar(60) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, `not_seccion` int(1) NOT NULL, `not_bajada` varchar(300) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, `not_completa` text CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, `not_fecha` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`not_id`) ) CREATE TABLE IF NOT EXISTS `secciones` ( `sec_id` int(11) NOT NULL, `sec_nombre` varchar(20) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, `sec_bgcopete` varchar(6) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`sec_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO `secciones` (`sec_id`, `sec_nombre`, `sec_bgcopete`) VALUES (1, 'Fútbol', '485'), (2, 'Básquet', 'C33'), (3, 'Vóley', '09C'), (4, 'Automovilismo', 'F03'), (5, 'Hockey', '939'), (6, 'Gimnasia', '999'); MYSQL.php Para la conexión con la base de datos, cargamos entre las comillas los datos correspondientes. <?php $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "deportivo"; $con = mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base, $con); ?> NUEVA.php Aquí hacemos el archivo para subir la noticia. <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" /> <link rel="stylesheet" type="text/css" href="css/style.css" /> <title>JulianGorge :: Script de Noticias</title> <script> var ns6=document.getElementById&&!document.all function restrictinput(maxlength,e,placeholder) { if (window.event&&event.srcElement.value.length>=maxlength) return false else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength) { var pressedkey=/[a-zA-Z0-9.,/]/ if (pressedkey.test(String.fromCharCode(e.which))) e.stopPropagation() } } function countlimit(maxlength,e,placeholder){ var theform=eval(placeholder) var lengthleft=maxlength-theform.value.length var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder) if (window.event||e.target&&e.target==eval(placeholder)) { if (lengthleft<0) theform.value=theform.value.substring(0,maxlength) placeholderobj.innerHTML=lengthleft } } function displaylimit(theform,thelimit) { var limit_text='Quedan <b><span id="'+theform.toString()+'">'+thelimit+'</span></b> caracteres ' if (document.all||ns6) document.write(limit_text) if (document.all) { eval(theform).onkeypress=function() { return restrictinput(thelimit,event,theform) } eval(theform).onkeyup=function() { countlimit(thelimit,event,theform) } } else if (ns6){ document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); } } </script> </head> <body> <?php include("divs/header.htm"); ?> <div id="contenido"> <br> <table class="nueva"> <tr> <td> <img src="img/editar.gif"> <font size="3" face="Arial"> <b>Añadir noticias</b> </font><br /> </td> </tr> <tr> <td> <br /> <form action="enviar.php" method="post" name="nueva_noticia"> <input type="text" name="titulo" size="80"> <select name="seccion"> <?php include("mysql.php"); $sec = mysql_query("SELECT * FROM secciones"); while ($seccion = mysql_fetch_row($sec)) { echo '<option value="'.$seccion[0].'">'.$seccion[1].'</option> '; } ?> </select> <br /> <script>displaylimit("document.nueva_noticia.titulo",60)</script> <br /><br /> Bajada<br /> <textarea name="bajada" cols="80" rows="6"></textarea><br /> <script>displaylimit("document.nueva_noticia.bajada",300)</script> <br /><hr size="1"> <br /> Noticia<br /> <textarea name="completa" cols="80" rows="10"></textarea> <br /><br /> <input style="width:100%" name="nueva-noticia" type="submit" value="Enviar"></form> </td> </tr> </table> <br> </div> <?php include("divs/footer.htm"); ?> </body> </html> ENVIAR.php Envia los datos a la db <?php require("mysql.php"); if(isset($_POST["nueva-noticia"])) { $titulo = $_POST["titulo"]; $seccion = $_POST["seccion"]; $bajada = $_POST["bajada"]; $completa = $_POST["completa"]; if($titulo == '' or $seccion == '' or $bajada == '' or $completa == '') { echo 'Completa todos los datos'; } else { $sql = "INSERT INTO `noticias` (not_titulo,not_seccion,not_bajada,not_completa,not_fecha) VALUES ('".$titulo."','".$seccion."','".$bajada."','".$completa."',now())"; mysql_query($sql); echo '<script>javascript:window.alert("Noticia publicada");</script> <script language="JavaScript" type="text/javascript"> var pagina="index.php" function redireccionar() { location.href=pagina } setTimeout ("redireccionar()", 10); </script> '; } } else { echo '<script>javascript:window.alert("Error al publicar noticia");</script>'; echo '<script>javascript:history.back(1);</script>'; } ?> LISTO DDDDD ???? Te explico, hicimos el formulario y el envío (php) junto a la conexión con la mysql, preo para no dejarlo tan flojito les daré el menu principal para el gestor de noticias, css, editar noticia y el index donde se ven las noticias