OK, deci postez exact ce am nevoie.
1. Snippet-ul acesta
$inputFileName = $_FILES['image']['name'];
function thumbnail($inputFileName, $maxSize = 80)
{
$info = getimagesize($inputFileName);
$type = isset($info['type']) ? $info['type'] : $info[2];
// Check support of file type
if ( !(imagetypes() & $type) )
{
// Server does not support file type
return false;
}
$width = isset($info['width']) ? $info['width'] : $info[0];
$height = isset($info['height']) ? $info['height'] : $info[1];
// Calculate aspect ratio
$wRatio = $maxSize / $width;
$hRatio = $maxSize / $height;
// Using imagecreatefromstring will automatically detect the file type
$sourceImage = imagecreatefromstring(file_get_contents($inputFileName));
// Calculate a proportional width and height no larger than the max size.
if ( ($width <= $maxSize) && ($height <= $maxSize) )
{
// Input is smaller than thumbnail, do nothing
return $sourceImage;
}
elseif ( ($wRatio * $height) < $maxSize )
{
// Image is horizontal
$tHeight = ceil($wRatio * $height);
$tWidth = $maxSize;
}
else
{
// Image is vertical
$tWidth = ceil($hRatio * $width);
$tHeight = $maxSize;
}
$thumb = imagecreatetruecolor($tWidth, $tHeight);
if ( $sourceImage === false )
{
// Could not load image
return false;
}
// Copy resampled makes a smooth thumbnail
imagecopyresampled($thumb, $sourceImage, 0, 0, 0, 0, $tWidth, $tHeight, $width, $height);
imagedestroy($sourceImage);
return $thumb;
}
/**
* Save the image to a file. Type is determined from the extension.
* $quality is only used for jpegs.
* Author: mthorn.net
*/
function imageToFile($im, $fileName, $quality = 80)
{
if ( !$im || file_exists($fileName) )
{
return false;
}
$ext = strtolower(substr($fileName, strrpos($fileName, '.')));
switch ( $ext )
{
case '.gif':
imagegif($im, $fileName);
break;
case '.jpg':
case '.jpeg':
imagejpeg($im, $fileName, $quality);
break;
case '.png':
imagepng($im, $fileName);
break;
case '.bmp':
imagewbmp($im, $fileName);
break;
default:
return false;
}
return true;
}
$im = thumbnail('temp.jpg', 80);
imageToFile($im, 'temp-thumbnail.jpg');
trebuie adaptat unui form html adica acesta
<form action="trimite.php" method="post" enctype="multipart/form-data" id="formular" class="niceform" onsubmit="return formCheck(this);">
<table width="0" border="0" align="center" cellspacing="10">
<tr>
<td><strong>Nume Vanzator *</strong></td>
<td><input name="vanzator" type="text" id="vanzator" size="20" /><a href="#" class="hintanchor" onMouseover="showhint('Este important sa va alegeti un nume de vanzator, astfel veti fi foarte usor de gasit, petentialii cumparatori pot cauta doar produse inscrise de dvs, etc.', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td><strong>Nume Produs *</strong></td>
<td><input name="nume" type="text" id="nume" size="20" /><a href="#" class="hintanchor" onMouseover="showhint('Completati campul din stanga cu numele produsului.', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td><strong>Categorie *</strong></td>
<td><select name="categorie" size="1" id="select">
<option value="">Alege </option>
<option value="automoto">Auto Moto</option>
<option value="pc">Calculatoare si Accesorii</option>
<option value="electro">Electronice</option>
<option value="imobiliare">Imobiliare</option>
<option value="imbracaminte">Imbracaminte </option>
<option value="incaltaminte">Incaltaminte</option>
<option value="gsm">Telefoane si Accesorii</option>
<option value="altele">Altele</option>
</select> </td>
</tr>
<tr>
<td><strong>Pretul dorit *</strong></td>
<td><input name="pret" type="text" id="pret" size="20" /><a href="#" class="hintanchor" onMouseover="showhint('Completati campul din stanga cu pretul dorit pe produs.', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td><strong>Descriere produs *</strong></td>
<td><textarea name="detalii" id="detalii" cols="20" rows="10"></textarea></td>
</tr>
<tr>
<td><strong>Imagine produs (optional)</strong></td>
<td><input name="image" type="file" size="16" /><a href="#" class="hintanchor" onMouseover="showhint('Poti incarca o imagine a produsului pus la vanzare, aceata va fi atasata fiecarui anunt pe pagina cu anunturi.Marimea maxima este de 1 MegaByte', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td><strong>Telefon *</strong></td>
<td><input name="telefon" type="text" id="telefon" size="20" /><a href="#" class="hintanchor" onMouseover="showhint('Specifica un numar de telefon la care vei putea fi contactat de potentialii cumparatori.Acest camp este obligatoriu de completat.', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td><strong>ID Yahoo Messenger</strong></td>
<td><input name="ym" type="text" id="ym" size="20" /><a href="#" class="hintanchor" onMouseover="showhint('Specificand adresa ta de YM, potentialii cumparatori vor putea intra in contact cu tine printr-un singur click pe iconita Ym atasata fiecarui anunt.', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td><strong>Adresa E-mail *</strong></td>
<td><input name="email" type="text" id="email" size="20" /><a href="#" class="hintanchor" onMouseover="showhint('Specificand adresa ta de E-mail, potentialii cumparatori vor putea intra in contact cu tine printr-un singur click pe iconita E-mail atasata fiecarui anunt.', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td><strong>Parola pt stergere anunt *</strong> </td>
<td><input name="parola" type="text" id="parola" size="20" /><a href="#" class="hintanchor" onMouseover="showhint('Alege o parola unica.Cu ajutorul acestei parole vei putea sterge anuntul de pe site in caz ca produsul s-a vandut sau din alte motive.', this, event, '150px')">[?]</a></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<table width="89">
<tr>
<td><input name="Submit" type="submit" id="Submit" value="Adauga" /></td>
</tr>
</table>
</div></td>
</tr>
<tr>
<td colspan="2"> <strong><span class="style3">*</span> inseamna camp care trebuie completat obligatoriu</strong></td>
</tr>
</table>
</form>
Ca sa rezulte urmatorul lucru : User-ul completeaza form-ul, si alege si o poza ( care e optional ), la Submit, se ruleaza script-ul php care proceseaza poza, creaza un thumbnail dupa ea, apoi toate datele din formular, adica nume, email, pret + link-ul catre thumbnail si link-ul catre poza sursa se introduc in baza de date.
Sau, daca user-ul nu alege o poza cand completeaza formularul, la Submit, se ruleaza script-ul php exceptand partea de procesare a pozei, si astfel se introduc in baza de date doar datele ramase, adica nume, emal, pret, etc.( din cate am dedus eu, trebuie facut cu un IF, partea in care se verifica daca este existenta o poza, sa ruleze tot cod-ul, iar daca nu sa ruleze numai o anumita parte )
Asta ar fi cel mai important pt mine sa rezolv.
2.Am un search box pe pagina, care cauta in baza de date dupa criteriul cautat, si afiseaza rezultatele in tabele, cate XX pe pagina in functie de ce alege utilizatorul dintr-un dropdown box, el merge bine, dar sa zicem ca a cautat Telefon, i s-au afisat 20 de rezultate, dar cand userul da pe pagina 2, teoretic se pierde criteriul dupa care s-a cautat si numarul de rezultate afisate pe care userul le-a ales, si da eroare deoarece nu stie dupa ce sa caute.Cel mai bine puteti vedea live pe site-ul cu pricina.Am inteles ca chestia asta se rezolva folosind Sessions.
Cam astea 2 sunt problemele importante
L.E: Eu la pagina cu script-ul pentru prima problema am ajuns la versiunea de mai jos care din pacate nu functioneaza
<?php
set_time_limit(0);
$con = mysql_connect("****************","************","**********");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("*********", $con);
if(isset($_FILES['image']['name'])){
/**
* Create a thumbnail image from $inputFileName no taller or wider than
* $maxSize. Returns the new image resource or false on error.
* Author: mthorn.net
*/
if (file_exists("pics/" . $_FILES["image"]["name"])) // verificam daca fisierul exista deja pe server
{
echo "Fisierul pe care incerci sa-l uploadezi exista deja";
}
else
{
move_uploaded_file($_FILES["image"]["tmp_name"], "pics/".$_FILES["image"]["name"]); // se muta fisierul din directorul temporar al serverului in directorul final
}
$inputFileName = $_FILES['image']['name'];
function thumbnail($inputFileName, $maxSize = 80)
{
$info = getimagesize($inputFileName);
$type = isset($info['type']) ? $info['type'] : $info[2];
// Check support of file type
if ( !(imagetypes() & $type) )
{
// Server does not support file type
return false;
}
$width = isset($info['width']) ? $info['width'] : $info[0];
$height = isset($info['height']) ? $info['height'] : $info[1];
// Calculate aspect ratio
$wRatio = $maxSize / $width;
$hRatio = $maxSize / $height;
// Using imagecreatefromstring will automatically detect the file type
$sourceImage = imagecreatefromstring(file_get_contents($inputFileName));
// Calculate a proportional width and height no larger than the max size.
if ( ($width <= $maxSize) && ($height <= $maxSize) )
{
// Input is smaller than thumbnail, do nothing
return $sourceImage;
}
elseif ( ($wRatio * $height) < $maxSize )
{
// Image is horizontal
$tHeight = ceil($wRatio * $height);
$tWidth = $maxSize;
}
else
{
// Image is vertical
$tWidth = ceil($hRatio * $width);
$tHeight = $maxSize;
}
$thumb = imagecreatetruecolor($tWidth, $tHeight);
if ( $sourceImage === false )
{
// Could not load image
return false;
}
// Copy resampled makes a smooth thumbnail
imagecopyresampled($thumb, $sourceImage, 0, 0, 0, 0, $tWidth, $tHeight, $width, $height);
imagedestroy($sourceImage);
return $thumb;
}
/**
* Save the image to a file. Type is determined from the extension.
* $quality is only used for jpegs.
* Author: mthorn.net
*/
function imageToFile($im, $fileName, $quality = 80)
{
if ( !$im || file_exists($fileName) )
{
return false;
}
$ext = strtolower(substr($fileName, strrpos($fileName, '.')));
switch ( $ext )
{
case '.gif':
imagegif($im, $fileName);
break;
case '.jpg':
case '.jpeg':
imagejpeg($im, $fileName, $quality);
break;
case '.png':
imagepng($im, $fileName);
break;
case '.bmp':
imagewbmp($im, $fileName);
break;
default:
return false;
}
return true;
}
$im = thumbnail('temp.jpg', 80);
imageToFile($im, 'temp-thumbnail.jpg');
$sql = "INSERT INTO anunturi (nume, vanzator, pret, categorie, detalii, telefon, ym, email, parola, imagine, thumbnail) VALUES ('{$_POST['nume']}', '{$_POST['vanzator']}', '{$_POST['pret']}', '{$_POST['categorie']}', '{$_POST['detalii']}', '{$_POST['parola']}', '{$_POST['telefon']}', '{$_POST['ym']}', '{$_POST['email']}', '$sourceimage', '$thumb')";
} else {
$sql = "INSERT INTO anunturi (nume, vanzator, pret, categorie, detalii, telefon, ym, email, parola) VALUES ('{$_POST['nume']}', '{$_POST['vanzator']}', '{$_POST['pret']}', '{$_POST['categorie']}', '{$_POST['detalii']}', '{$_POST['parola']}', '{$_POST['telefon']}', '{$_POST['ym']}', '{$_POST['email']}')";
if(!mysql_query($sql))
echo $sql.'
'.mysql_error();
else{
?>
<script>
window.location="adaugat.htm"
</script>
<?
mysql_close($con);
}
}
?>