Πρόβλημα με script

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από vassilism » 15 Νοέμ 2007 18:50

Καλησπέρα σας.
Έχω ανάγκη την πολύτιμη βοήθειά σας σχετικά με ένα script, το οποίο θεωρώ ένα πολύ σημαντικό κομμάτι ενός CMS, που φτιάχνω εδώ και αρκετό καιρό.
Αυτό το script κάνει μια εγγραφή στην βάση δεδομένων και επίσης αποθηκεύει ένα αρχείο εικόνας στον server.
Το script λειτούργει καλά, αλλά έχω ένα πρόβλημα. Αν δεν επιλέξω κάποιο αρχείο δεν μου κάνει την εγγραφή στην βάση.
Αυτό που θέλω είναι να γίνετε η εγγραφή, χωρίς απαραίτητα να καταχωρώ και αρχείο.

Κώδικας: Επιλογή όλων

<?php 
include &#40;'dbconnect.php'&#41;;
              
      $upload_path = $_SERVER&#91;'DOCUMENT_ROOT'&#93; . "/fotos/";
      $upload_url = "http&#58;//www.myserver.com/fotos/";

		
if &#40;count&#40;$_FILES&#91;'file'&#93;&#41;&#41; &#123; 
      $tmp_name = $_FILES&#91;'file'&#93;&#91;'tmp_name'&#93;; 
      $name = $_FILES&#91;'file'&#93;&#91;'name'&#93;; 
      $size = $_FILES&#91;'file'&#93;&#91;'size'&#93;; 
      $size = &#40;$size >= 5024&#41; ? floor&#40;$size / 5024&#41; . "kbytes" &#58; $size . "bytes"; 

$allowed_ext = array&#40;"gif", "jpg", "png", "bmp", "ico", "JPG", "GIF", "jpeg", "tif", "psd", "eps", "tga", "JPEG", "BMP"&#41;;        
if &#40;!in_array&#40;substr&#40;$name,strlen&#40;$name&#41;-3,strlen&#40;$name&#41;&#41;, $allowed_ext&#41;&#41;&#123; 
   echo "Η εγγραφή δεν καταχωρήθηκε.<br>Το αρχείο " . $name . " δεν αντιστοιχεί σε εικόνα.<br>Επιλέξτε ένα αρχείο εικόνας&#58; ".implode&#40;", ", $allowed_ext&#41;."";
   echo "<p><a href=\"javascript&#58;history.back&#40;-1&#41;;\" class=\"selidopoiisi\">&#91;Πίσω&#93;</a></p>";  
   exit; 
&#125;
    
if &#40;file_exists&#40;$upload_path . "/" . $name&#41;&#41; &#123; 
echo "Η εγγραφή δεν καταχωρήθηκε.<br>Το αρχείο που επιλέξατε υπάρχει ήδη.<br>Αλλάξτε το όνομα του αρχείου και προσπαθήστε ξανά.";
echo "<p><a href=\"javascript&#58;history.back&#40;-1&#41;;\" class=\"selidopoiisi\">&#91;Πίσω&#93;</a></p>";  
exit;  
         &#125; 
         if &#40;move_uploaded_file&#40;$tmp_name,$upload_path . "/" . $_FILES&#91;'file'&#93;&#91;'name'&#93;&#41;&#41; &#123; 
            echo "Το αρχείο καταχωρήθηκε επιτυχώς.<br /><br />Όνομα αρχείου&#58; " . $name . "<br />Μέγεθος&#58; " . $size; 
         &#125; else &#123; 
            echo "Δεν ήταν δυνατή η καταχώρηση του αρχείου."; 
         &#125; 
      &#125; else &#123; 
         echo "Δεν ήταν δυνατή η καταχώρηση του αρχείου."; 
      &#125; 
  
 
         $id = $_POST&#91;"id"&#93;;
         $name = $_POST&#91;"name"&#93;; 
	 
         //Create query        
         $query = "insert into imageuploads values'".$id."','".$upload_url."','".$file_name."','".$name."'&#41;"; 
		 $result = mysql_query&#40;$query&#41;;             

           &#123; 		  
              echo&#40; "<P>Η εγγραφή  καταχωρήθηκε.</P>" &#41;; 
           &#125;     
?>

Άβαταρ μέλους
AAT
Δημοσιεύσεις: 379
Εγγραφή: 23 Αύγ 2007 16:31
Τοποθεσία: Lemesos, Limassol
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από AAT » 15 Νοέμ 2007 19:30

ti les gia ayto?

Κώδικας: Επιλογή όλων

$fields=array&#40;'name' => $name, 'email' => $email, 'file' => $file&#41;;

foreach&#40;$fields as $key => $val&#41; &#123;
if&#40;empty&#40;$val&#41;&#41; &#123; //elegkxei...
$error_msg.="Parakalw simpliroste $key .<br />";
&#125;
&#125;

if&#40;$error_msg==''&#41; &#123;
&#125; 

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από vassilism » 15 Νοέμ 2007 19:59

Για να σου πω την αλήθεια δεν το κατάλαβα.
Που πρέπει να μπει αυτό το κομμάτι κώδικα?

Άβαταρ μέλους
AAT
Δημοσιεύσεις: 379
Εγγραφή: 23 Αύγ 2007 16:31
Τοποθεσία: Lemesos, Limassol
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από AAT » 15 Νοέμ 2007 20:16

kane prota ta $file $email $name an thes kai alla kai prosthese kai sinthese ta sto script.

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από vassilism » 15 Νοέμ 2007 20:29

Η μεταβλητή $email που κολάει?

Άβαταρ μέλους
AAT
Δημοσιεύσεις: 379
Εγγραφή: 23 Αύγ 2007 16:31
Τοποθεσία: Lemesos, Limassol
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από AAT » 15 Νοέμ 2007 20:47

ypethesa oti tha itheles na baloyn email gia apla na xereis pios se kathe pic.

P.X egw gia na apofigw ta bots stelnw email gia energopiish ths neas dinatotitas My AAT Website gia ton kathe xrhsth.

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από Alice_Cooper » 16 Νοέμ 2007 01:10

xmmm malon mono ena perito { ... } eixes ..... oi egrafes ginotane alla den se enimerone malon look thn db

Κώδικας: Επιλογή όλων

<?php
include &#40;'dbconnect.php'&#41;;
             
      $upload_path = $_SERVER&#91;'DOCUMENT_ROOT'&#93; . "/fotos/";
      $upload_url = "http&#58;//www.myserver.com/fotos/";
if &#40;count&#40;$_FILES&#91;'file'&#93;&#41;&#41; &#123;
      $tmp_name = $_FILES&#91;'file'&#93;&#91;'tmp_name'&#93;;
      $name = $_FILES&#91;'file'&#93;&#91;'name'&#93;;
      $size = $_FILES&#91;'file'&#93;&#91;'size'&#93;;
      $size = &#40;$size >= 5024&#41; ? floor&#40;$size / 5024&#41; . "kbytes" &#58; $size . "bytes";
      $allowed_ext = array&#40;"gif", "jpg", "png", "bmp", "ico", "JPG", "GIF", "jpeg", "tif", "psd", "eps", "tga", "JPEG", "BMP"&#41;;
      if &#40;!in_array&#40;substr&#40;$name,strlen&#40;$name&#41;-3,strlen&#40;$name&#41;&#41;, $allowed_ext&#41;&#41;&#123;
           echo "Η εγγραφή δεν καταχωρήθηκε.<br>Το αρχείο " . $name . " δεν αντιστοιχεί σε εικόνα.<br>Επιλέξτε ένα αρχείο εικόνας&#58; ".implode&#40;", ", $allowed_ext&#41;."";
           echo "<p><a href=\"javascript&#58;history.back&#40;-1&#41;;\" class=\"selidopoiisi\">&#91;Πίσω&#93;</a></p>";
           exit;
      &#125;

     if &#40;file_exists&#40;$upload_path . "/" . $name&#41;&#41; &#123;
            echo "Η εγγραφή δεν καταχωρήθηκε.<br>Το αρχείο που επιλέξατε υπάρχει ήδη.<br>Αλλάξτε το όνομα του αρχείου και προσπαθήστε ξανά.";
            echo "<p><a href=\"javascript&#58;history.back&#40;-1&#41;;\" class=\"selidopoiisi\">&#91;Πίσω&#93;</a></p>"; 
            exit; 
     &#125;
     if &#40;move_uploaded_file&#40;$tmp_name,$upload_path . "/" . $_FILES&#91;'file'&#93;&#91;'name'&#93;&#41;&#41; &#123;
            echo "Το αρχείο καταχωρήθηκε επιτυχώς.<br /><br />Όνομα αρχείου&#58; " . $name . "<br />Μέγεθος&#58; " . $size;
     &#125; else &#123;
            echo "Δεν ήταν δυνατή η καταχώρηση του αρχείου.";
     &#125;
&#125; else &#123;
         echo "Δεν ήταν δυνατή η καταχώρηση του αρχείου.";
&#125;
         $id = $_POST&#91;"id"&#93;;
         $name = $_POST&#91;"name"&#93;;
         //Create query       
         $query = "insert into imageuploads values'".$id."','".$upload_url."','".$file_name."','".$name."'&#41;";
       $result = mysql_query&#40;$query&#41;;             
       echo&#40; "<P>Η εγγραφή  καταχωρήθηκε.</P>" &#41;;
?>

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από vassilism » 18 Νοέμ 2007 16:21

Alice δυστυχώς δεν είναι αυτό το πρόβλημα, το διόρθωσα αλλά δεν αλλάζει κάτι.
Για να εξηγήσω αλλά μια φορά, με αυτό το script κάνω μια εγγραφή στην βάση δεδομένων (μέσω μιας φόρμας) και αποθηκεύω ένα αρχείο εικόνας στον server.
Έτσι όπως είναι το script δουλεύει κανονικά (κάνει και την εγγραφή και την αποθήκευση του αρχείου).
Αλλά αν δεν επιλέξω (από την φόρμα) κάποιο αρχείο δεν μου κάνει την εγγραφή στην βάση.
Αυτό που θέλω είναι, να γίνετε η εγγραφή, ακόμη και αν δεν επιλέγω κάποιο αρχείο για upload.

Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από Risk » 18 Νοέμ 2007 17:37

Ειλικρινά δεν έχω εξετάσει το script σου,αλλά μου ήρθε μια αιτία στο μυαλό πολύ σημαντική η οποία δεν έχει να κάνει με το script. Αν το πεδίο όπου καταχωρείς την εικόνα σου στην βάση έχει οριστεί ως not null είναι επόμενο να μην μπορεί να λειτουργήσει. Όπως λες εσύ λοιπόν όταν κάνει την εγγραφή και την αποθήκευση του αρχείου όλα γίνονται όπως πρέπει, όταν όμως κάνει την εγγραφή χωρίς αποθήκευση αρχείου τότε δεν γίνεται η εγγραφή, άρα λοιπόν το sql ερώτημα που στέλνει τα στοιχεία στην βάση για εγγραφή "χτυπάει". Για τον λόγο αυτό θα σου έλεγα να έλεγχες λίγο το ενδεχόμενο αυτό.
Εικόνα

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από vassilism » 18 Νοέμ 2007 18:17

Φίλε Risk σευχαριστώ για την απάντησή σου.
Η εικόνα δεν αποθηκεύετε στην βάση, αλλά στον server.
Στην βάση αποθηκεύετε το path της εικόνας.
Χρησιμοποιώ το πεδίο upload_url και file_name για να κρατάω στην βάση, που βρίσκετε το αρχείο.
Τα πεδία αυτά τα έχω ορίσει ως tinytext και είναι όντως not null.
Το not null σημαίνει ότι το πεδίο μπορεί να δέχεται τιμές (αλλά αν δεν του δόσεις τιμή δεν υπάρχει πρόβλημα).
Π.χ Το πεδίο name είναι και αυτό not null, αλλά αν δεν του δόσεις τιμή κάνει καταχώριση στην βάση μια κενή εγγραφή.
Οπότε αποκλείω την περίπτωση να φταίει αυτό.
Πιστεύω ότι το πρόβλημα είναι στην ροή του script.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με script

Δημοσίευση από fafos » 18 Νοέμ 2007 18:41

vassilism έγραψε:Φίλε Risk σευχαριστώ για την απάντησή σου.
Η εικόνα δεν αποθηκεύετε στην βάση, αλλά στον server.
Στην βάση αποθηκεύετε το path της εικόνας.
Χρησιμοποιώ το πεδίο upload_url και file_name για να κρατάω στην βάση, που βρίσκετε το αρχείο.
Τα πεδία αυτά τα έχω ορίσει ως tinytext και είναι όντως not null.
Το not null σημαίνει ότι το πεδίο μπορεί να δέχεται τιμές (αλλά αν δεν του δόσεις τιμή δεν υπάρχει πρόβλημα).
Π.χ Το πεδίο name είναι και αυτό not null, αλλά αν δεν του δόσεις τιμή κάνει καταχώριση στην βάση μια κενή εγγραφή.
Οπότε αποκλείω την περίπτωση να φταίει αυτό.
Πιστεύω ότι το πρόβλημα είναι στην ροή του script.
Re sy patrida.. afou les sto script an den vrei thn sosth katalhksh na kanei exit.. vale to query prin auto to if..

Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από Risk » 18 Νοέμ 2007 19:04

vassilism έγραψε:Φίλε Risk σευχαριστώ για την απάντησή σου.
Η εικόνα δεν αποθηκεύετε στην βάση, αλλά στον server.
Στην βάση αποθηκεύετε το path της εικόνας.
Χρησιμοποιώ το πεδίο upload_url και file_name για να κρατάω στην βάση, που βρίσκετε το αρχείο.
Τα πεδία αυτά τα έχω ορίσει ως tinytext και είναι όντως not null.
Το not null σημαίνει ότι το πεδίο μπορεί να δέχεται τιμές (αλλά αν δεν του δόσεις τιμή δεν υπάρχει πρόβλημα).
Π.χ Το πεδίο name είναι και αυτό not null, αλλά αν δεν του δόσεις τιμή κάνει καταχώριση στην βάση μια κενή εγγραφή.
Οπότε αποκλείω την περίπτωση να φταίει αυτό.
Πιστεύω ότι το πρόβλημα είναι στην ροή του script.
Λέγοντάς σου πως "το πεδίο όπου καταχωρείς την εικόνα στη βάση" σίγουρα εννοούσα, αυτό που λεσ εσύ, ότι δηλαδή κρατάς στην βάση το path, απλά το είπα πιο απλοϊκά. Τώρα όσο για την παρατήρησή σου για τα not null πεδία, έχεις δίκιο, δική μου παράληψη!!!!
Εικόνα

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από vassilism » 18 Νοέμ 2007 19:08

Πατρίδα μου φαίνετε ότι αν δεν το πεις εσύ δεν υπακούει. :P
Το είχα δοκιμάσει έτσι αλλά δεν δούλευε. Τώρα που το δοκίμασα πάλι, ως δια μαγείας δουλεύει μια χαρά.
Τελικά ήταν τόσο απλό.
Σας ευχαριστώ πολύ όλους.

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από Alice_Cooper » 18 Νοέμ 2007 19:34

xmmm to prob etc einai oti kai apla lathos epektash na exei ...
tha mpenei h egrafh kai meta ta vgazei error gia to file

kane enan elegxo an den yparxei file na synexizei ...
opos ki exeis alla kati den doulevei kala ...
an vro time tha to kitakso ....
malon to vradi ...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα με script

Δημοσίευση από vassilism » 18 Νοέμ 2007 19:42

Ακριβώς.
Τώρα το μετέτρεψα λίγο και είναι ok.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες