Estoy probando de hacer como un catalogo de productos...
el tema que cdo tengo el formulario para insertar los productos tengo problemas para poner la imagen en una carpeta llamada fotos, y que en la base de datos se inserte la ruta para después verla.
Les paso el código por si quieren verlo y me ayudan.
gracias!
Código PHP:
<?php
/* ******************** INICIO FUNCIONES PHP ******************** */
require('config.php');
$directori_foto = "fotos/";
function get_select_tree($root,$dblink,$name,$compare=0){
//Obtener los valores izq y der de la raiz - parametro.
if ($root==0){
$result= mysql_query("SELECT lft,rgt FROM secciones WHERE padre is null",$dblink);
} else {
$result= mysql_query("SELECT lft,rgt FROM secciones WHERE id=$root",$dblink);
}
$row=mysql_fetch_array($result);
//Empezar con una pila derecha vacia.
$right=array();
//Obtener todos los descendentes del nodo raiz.
$result=mysql_query("SELECT * FROM secciones WHERE lft BETWEEN ".$row["lft"]." AND ".$row["rgt"]." ORDER BY lft ASC",$dblink);
//Mostrar cada fila
echo "<select name='$name'>\n";
while ($row=mysql_fetch_array($result)){
//Solo chequear la pila si hay alguno.
if (count($right)>0){
//chequear si debemos eliminar algun nodo de la pila.
while ($right[count($right)-1]<$row["rgt"]){array_pop($right);}
}
//Mostrar el titulo del nodo indentado. y seleccionado si coincide con compare
if ($compare != 0 && $row["id"]==$compare){
echo "<option value='".$row["id"]."' selected>".str_repeat(' ',count($right)).$row["nombre"]."</option>\n";
} else {
echo "<option value='".$row["id"]."'>".str_repeat(' ',count($right)).$row["nombre"]."</option>\n";
}
//Añadir este nodo a la pila
$right[]=$row["rgt"];
}
echo "</select>\n";
}
/* Esta funcion guardara el nuevo enlace pendiente en la tabla solicitudes para luego ser aceptada o no. */
function save_url($fields,$hostname,$username,$password,$databasename){
$link = mysql_connect($hostname,$username,$password)
or die("Could not connect: " . mysql_error());
mysql_select_db($databasename, $link) or die ( mysql_error());
$sql = "INSERT INTO
`solicitudes`
( `fecha` ,
`titulo` ,
`link` ,
`imagen`,
`comment`,
`seccionid`,
`clave1`,
`destacado`,
`stock`)
VALUES
( '".date("Y-m-d H:i:s")."' ,
'".$fields['titulo']."' ,
'".$fields['link']."' ,
'".$fields['imagen']."' ,
'".nl2br(htmlentities($fields['comment']))."' ,
'".$fields['seccion']."',
'".$fields['clave1']."' ,
'".$fields['destacado']."',
'".$fields['stock']."')" ;
if ( isset( $sql ) && !empty( $sql )){
//echo "<!--".$sql."-->";
$result = mysql_query( $sql );
return $result;
}
}
/* Esta funcion comprueba la validez de los datos introducidos por el usuario. Todos ellos deben estar en la variable $_POST. */
function testFields(&$errores,&$fields){
//Obtiene los errores de validacion y los campos para insertar si todo es correcto.
//Si hay al menos un error la funcion devuelve falso.
if (isset($_POST["ttitulo"]) && !empty($_POST["ttitulo"])){
$fields["titulo"]=$_POST["ttitulo"];
} else {$fields["titulo"]="";
$errores["titulo"]="El campo título debe cumplimentarse.";
}
if (isset($_POST["tlink"]) && !empty($_POST["tlink"])){
$fields["link"]=$_POST["tlink"];
} else {$fields["link"]="";
$errores["link"]="El campo link debe cumplimentarse.";
}
if (isset($_POST["tclave1"]) && !empty($_POST["tclave1"])){
$fields["clave1"]=$_POST["tclave1"];
}
if (isset($_POST["tcomment"]) && !empty($_POST["tcomment"])){
$fields["comment"]=$_POST["tcomment"];
} else {$fields["comment"]="";
$errores["comment"]="Debe indicarse una breve descripción del sitio.";
}
if (isset($_POST["tseccion"]) && !empty($_POST["tseccion"])){
$fields["seccion"]=$_POST["tseccion"];
} else {$fields["seccion"]="";
$errores["seccion"]="La seccion no puede estar vacia.";
}
$fields["destacado"]=$_POST["tdest"];
/****************************IMAGEN***********************************/
$upload_dir = '/fotos';
$upload_file = $upload_dir . $_FILES['imagen']['name'];
$imagen = $_FILES['imagen']['name'];
$fields["imagen"]=$imagen;
if (move_uploaded_file($_FILES['imagen']['tmp_name'], $upload_file)) {
// La imagen se subio correctamente.
} else {
echo "OJO QUE FALLO LA IMAGEN";
}
/****************************IMAGEN***********************************/
if (count($errores)>0){
return false;
} else {
return true;
}
}
//Testeamos los errores en los campos de entrada
if (testFields($errores,$fields)){
//Probamos a grabar el registro.
if (save_url($fields,$hostname,$username,$password,$databasename)){
//Todo ok.
$results= '<b><font color=green>La URL ha sido enviada con éxito.<br>
En breve estudiaremos su solicitud de inclusión en el directorio</font></b>';
//Si todo va bien eliminamos el contenido de $_POST para que los campos del formulario queden en blanco.
unset($_POST);
} else {
//Error en DB contacto con webmaster.
$results= '<b><font color=red>Error al enviar URL.<br>
Si el problema persiste contacte con el administrador del sitio.</font></b>';
}
} else {
//Devolvemos los errores constados.
reset ($errores);
$results= "<b><font color=red>Errores:<br><ul>\n";
while (list ($clave, $val) = each ($errores)) {
$results.= "<li>$val</li>\n";
}
$results.= "</ul></font></b>\n";
}
/* *************** FIN FUNCIONES PHP *************** */
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Añadir URL. Redribera.es</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#diseno1{
border:1px solid #000;
}
.normal1 {
color:#0000FF;
font-size:11px;
}
.normal2 {
color:#0000FF;
}
.normal1 {
color:#000;
font-size:12px;
}
.Estilo1 {font-family: Verdana, Arial, Helvetica, sans-serif}
.Estilo2 {color: #0000FF; font-size: 11px; font-family: Verdana, Arial, Helvetica, sans-serif; }
</style>
<meta name="Autor" content="RedRibera">
</head>
<body>
<div id="diseno1">
<span class="Estilo1">
<table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color:#C2b9ce;">
</span>
<tr>
<?
if(empty($_POST["tlink"])){$_POST["tlink"]="http://";}
?>
<td width="40%" valign="top" class="Estilo2" style="padding:10px;background-color:#dfdbe6;">
<span class="titulonormal1"> Sugerir una URL al directorio.<br></span>
<span class="normal1"> Los campos marcados con * son obligatorios.<br><br></span>
<form action="<?=$_SERVER['PHP_SELF']?>?<?=SID?>" method="post" enctype="multipart/form-data">
* Nombre del producto:<br>
<input name="ttitulo" type="text" id="ttitulo" size="44" maxlength="255" value=<? echo $_POST["ttitulo"] ?>><br>
* Link (hacia alguna pagina oficial):<br>
<input name="tlink" type="text" id="tlink" size="44" maxlength="255" value=<? echo $_POST["tlink"] ?>><br>
Imagen:<br>
<input name="imagen" type="file" id="timagen" size="44" value=<? echo $_POST["timagen"] ?>><br>
* Descripcion:<br>
(Máximo 400 caracteres.)<br>
<textarea name="tcomment" id="tcomment" cols="44" rows="4" maxlength="400" onKeyUp="return ismaxlength(this)"><? echo $_POST["tcomment"] ?></textarea><br>
Palabras clave de busqueda:<br>
<input name="tclave1" type="text" id="tclave1" size="44" maxlength="128" value=<? echo $_POST["tclave1"] ?>><br>
* Pagina destacada (ver comentarios a su derecha):<br>
<select name="tdest" size="1" id="tdest" value=<? echo $_POST["tdest"] ?>>
<option value="0">NO </option>
<option value="1">SI </option>
</select><br>
* Sección:<br>
<?php
$link = mysql_connect($hostname,$username,$password)
or die("Could not connect: " . mysql_error());
mysql_select_db($databasename, $link) or die ( mysql_error());
$compare=$_POST["tseccion"]>0?$_POST["tseccion"]:0;
get_select_tree(0,$link,"tseccion",$compare);
?><br>
<br><input type="submit" value="Subir Producto" class="boton"><br>
</form> </td>
<td width="60%" valign="top" class="Estilo1" style="padding:10px;">
<?php
echo $results;
?>
</body>
</html>