Buenas.
No entiendo el motivo por el cual siempre me da error esa coño liea de php. Cambie
Código:
'INSERT INTO perfil ('image') VALUE ('$archivo') WHERE id_perfil = $_SESSION['id_perfil']'
por esta
Código:
$sql='INSERT INTO perfil image VALUE $archivo WHERE id_perfil =$_SESSION[id_perfil]';
Ahora ya no aparece ningun error de escritura. y teoricamente funciona el php, la imagen sube a la carpeta y para ver si funcionaba use en alert para que me mostrara lo que se almacena en la variable y el resultado a mi entender es correcto.
si hago el alert de $sql muestra esto.
El archivo se subio correctamente.INSERT INTO perfil image VALUE $archivo WHERE id_perfil =$_SESSION[id_perfil]
Y si lo hago de $archivo me aparece la ruta + el nombre del archivo
Pero cuando reviso la bd el campo image de la tabla perfil esta vacio.
Este campo por si hay esta el error es tipo varchar y con una longitud de 60 caracteres.
Alguien sabrria que es lo que sucede?
Por si acaso os dejo todo el php.
Código:
<?php
session_start();
include('comp/conexion.php');
// comprobamos que se haya iniciado la sesión
if(isset($_SESSION['email'])) {
?>
<?php
$imagen=$_FILES["imagen"];
$nombre=$_FILES["imagen"]["name"];
$archivo="foto/".$nombre;
$nombre=$nombre;
while(file_exists($archivo))
{
mt_srand(time());
$numero = mt_rand(0,1000);
$aux=explode(".",$nombre); //usamos el punto ya que la cadena de la imagen sera nombre.jpg
$tamano= sizeof($aux);
$extension=$aux[$tamano-1];
$pos=0;
$nombre="";
while($pos<$tamano-1)
{
$nombre.=$aux[$pos];
$pos=$pos+1;
}
$nombre=$nombre.$numero.".".$extension;
$archivo="foto/".$nombre;
}
$nombre=$nombre;
if(move_uploaded_file($imagen["tmp_name"], "foto/".$nombre))
{
echo "El archivo se subio correctamente.";
$sql='INSERT INTO perfil image VALUE $archivo WHERE email =$_SESSION[email]';
echo $sql;
echo $archivo;
}
?>
<?php
}else {
header("location:noacceso2.php");
}
?>