Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Un script care necesita putin ajutor
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
detective



Data înscrierii: 11/Apr/2008
Mesaje: 7

Trimis: Sâm Mai 10, 2008 12:14 am    Titlul subiectului: Un script care necesita putin ajutor  

Hi, am un formular care are mai multe campuri, nume, email, adresa, comentarii si care mai are si un camp pt upload poza.
Formularul are ca action o pagina php unde am un script, care introduce in BD datele din campuri, si care proceseaza poza selectata de user, ii creeaza un thumbnail, iar pe langa datele normale, nume, email, etc introduce si cele 2 link-uri catre cele 2 imagini, cea sursa, si thumb-ul.Bun pana aici, acum ce problema am si nu reusesc sa o rezolv.
Asa cum am creat script-ul pana acum merge ff bine, dar daca user-ul nu specifica si o poza, ci completeaza doar restul de camp-uri, scriptul returneaza o eroare si pe langa asta imi scoate toate permisiunile de pe folder-ul pics, folde r in care se stocheaza imaginile.Deci trebuie cumva un IF statement sau ceva, care sa verifice : - daca user-ul a specificat o imagine sa ruleze partea de cod care include si procesarea de imagine etc
- daca userul a lasat campul imagine gol, sa ruleze numai partea de cod unde sunt introduse restul de date fara partea de procesare imagine.

aceasta este eroarea care este afisata daca nu este specificata imagine in camp-ul imagine
Cod:
Warning: Division by zero in /home/content/r/o/b/robertino/html/trimite.php on line 40

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error: in /home/content/r/o/b/robertino/html/trimite.php on line 52

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'pics/' is not a valid JPEG file in /home/content/r/o/b/robertino/html/trimite.php on line 52
Problema la deschiderea imaginii sursa


Acesta este codul complet

Cod:
<link href="trimite.css" rel="stylesheet" type="text/css" />
<?php
$con = mysql_connect("host","user","pass");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("robertinodb3", $con);

if(isset($_POST['Submit'])){
     $thumbsize = 90; // dimensiunea thumbnail-ului

     $filedir = 'pics/'; // directorul imaginii pe care o vei uploada
     $thumbdir = 'pics/'; // directorul imaginii thumbnail
     $prefix = 'small_'; // prefixul adaugat imaginii
    $width = 90;
      $height = 90;
     $maxfile = '2000000';
     $mode = '0666';
     
     $userfile_name = $_FILES['image']['name'];
     $userfile_tmp = $_FILES['image']['tmp_name'];
     $userfile_size = $_FILES['image']['size'];
     $userfile_type = $_FILES['image']['type'];
     
     if (isset($_FILES['image']['name'])){
         $prod_img = $filedir.$userfile_name;
         $prod_img_thumb = $thumbdir.$prefix.$userfile_name;

         move_uploaded_file($userfile_tmp, $prod_img);
         chmod ($prod_img, octdec($mode));
      
      
   
      
       // Get new dimensions
   list($width_orig, $height_orig) = getimagesize($prod_img);

   $ratio_orig = $width_orig/$height_orig;

   if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
   } else {
   $height = $width/$ratio_orig;
   }
      
      
         

         $destimg=ImageCreateTrueColor($thumbsize, $thumbsize) or die('Problem In Creeare thumbnail');
         $srcimg=ImageCreateFromJPEG($prod_img) or die('Problem la deschiderea imaginii sursa');
         ImageCopyResampled($destimg,$srcimg,-($width/2) + ($thumbsize/2), -($height/2) + ($thumbsize/2), 0, 0, $width, $height, $width_orig, $height_orig) or die('Problem In resizing');
       $alb = imagecolorallocate($destimg, 255, 255, 255);
       imagefill($destimg, 0, 0, $alb);
         ImageJPEG($destimg, null, 93) or die('Problema la salvare');
         imagedestroy($destimg);
      
       $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']}', '$prod_img', '$prod_img_thumb')";
     
} else {

         $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']}')";   
    }

   if(!mysql_query($sql))
      echo $sql.'<br>'.mysql_error();
   else{
      ?>
    <script>
      window.location="adaugat.htm"
     </script>
      <?
      mysql_close($con);
   }

}

?>

Dupa cum se vede eu am incercat cu un IF dar sunt 100% sigur ca nu l-am scris bine deoarece nu merge.

Deci partea aceasta de cod ar trebui sa fie executata daca camp-ul imagine nu este completat, cel putin asa am gandit eu, sunt incepator asa ca nu ma criticati :lol:

Cod:
$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']}')";   
Sus  
gabysolomon



Data înscrierii: 09/Apr/2006
Mesaje: 724
Locație: Bacau

Trimis: Mie Mai 14, 2008 5:01 pm    Titlul subiectului: Re: Un script care necesita putin ajutor  

detective a scris:
Warning: Division by zero in /home/content/r/o/b/robertino/html/trimite.php on line 40


Crezi ca sta cineva sa numere liniile ... tb sa postezi partea din jurul acelei linii ... sau sa o subliniezi cumva ... ca sa stie lumea unde sa se uite
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1155
Locație: Sibiu

Trimis: Joi Mai 15, 2008 9:19 am    Titlul subiectului:  

detective a scris: Deci partea aceasta de cod ar trebui sa fie executata daca camp-ul imagine nu este completat, cel putin asa am gandit eu, sunt incepator asa ca nu ma criticati :D Cod:
    $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']}')"; Incepator sau nu, te critic pentru ca n-ai citit manualul cum trebuie. Hai sa disecam un pic codul tau:
Cod:
$sql = "INSERT INTO
anunturi
(nume, vanzator, pret, categorie, detalii, telefon, ym, email, parola, imagine, thumbnail) - 11 campuri
VALUES
('{$_POST['nume']}', '{$_POST['vanzator']}', '{$_POST['pret']}', '{$_POST['categorie']}',  '{$_POST['detalii']}', '{$_POST['parola']}', '{$_POST['telefon']}', '{$_POST['ym']}', '{$_POST['email']}') - 9 valori
";
Deci tu ii spui MySQL-ului "baga-mi astea 9 valori in astea 11 campuri. De unde vrei sa stie el care valoare in care camp sa o bage? Normal ca nu iti merge. Sper ca urmatorul cod, corectat, nu mai avea rost sa ti-l dau, dar o fac anyway: Cod:
    $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']}')";
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community