Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

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

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

Απάντηση
Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από ideal » 03 Δεκ 2013 23:42

Καλησπερα. Αντιμετωπιζω ενα "παραξενο" προβλημα καθως δε μπορω να το εξηγησω...

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

mysql_query("INSERT INTO $table
(id,type,region,language,title,pagetext,duration,grade,price,gallery) VALUES('$id','$type','$region','$language','$title','$text','$duration','$grade','$price','$gallery') ") 
or die('Παρουσιάστηκε σφάλμα. Παρακαλώ επικοινωνήστε με το Διαχειριστή.');

echo 'Το αντικείμενο αποθηκεύτηκε επιτυχώς!';
Εγω απο οσους υπολογιστες το εχω κανει δεν εχω προβλημα. Ο πελατης απο το γραφειο του παιρνει μηνυμα σφαλματος (or die). Το δε παραξενο ειναι οτι μπορει να κανει οποιαδηποτε αλλη εργασια μεσα στη βαση (π.χ. επεξεργασια, προσθηκη εικονων σε αλλη λειτουργια κλπ) εκτος αυτη...
Σας φαινεται λογικο; Τι μπορει να εχει γινει;
Επισημαινω οτι το εχω δοκιμασει απο αλλους υπολογιστες και δουλευει κανονικα. Το error log δε βγαζει τιποτα.

Ευχαριστω!
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από dva_dev » 04 Δεκ 2013 00:08

Όταν λες το error log δεν βγάζει τίποτα σε ποιό error log αναφέρεσαι;

Έχεις δοκιμάσει κι εσύ να καταχωρήσεις τα ίδια δεδομένα που πάει να βάλει και ο πελάτης σου και τα περνάει κανονικά;

Θα έλεγα να βάλεις να γράφει σε κάποιο log αρχείο το query που πάει να τρέξει γιατί μου μυρίζει πρόβλημα είτε στο escaping των δεδομένων είτε στο μέγεθός τους.

Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από ideal » 04 Δεκ 2013 08:45

dva_dev έγραψε:Όταν λες το error log δεν βγάζει τίποτα σε ποιό error log αναφέρεσαι;

Έχεις δοκιμάσει κι εσύ να καταχωρήσεις τα ίδια δεδομένα που πάει να βάλει και ο πελάτης σου και τα περνάει κανονικά;

Θα έλεγα να βάλεις να γράφει σε κάποιο log αρχείο το query που πάει να τρέξει γιατί μου μυρίζει πρόβλημα είτε στο escaping των δεδομένων είτε στο μέγεθός τους.
Καλημερα. Εννοω το error log του server.
Οχι δε δοκιμασα να βαλω τα ιδια δεδομενα. Δηλαδη λες να καταχωρει χαρακτηρες που δεν επιτρεπονται; Σαν μεγεθος εχω ορισει "ΤΕΧΤ" για το κειμενο. Τα υπολοιπα ειναι καποια VarChar και καποια Integer.
Πώς γινεται αυτο που λες το log του query που παει να τρεξει? Εννοεις απλως δημιουργια αρχειου με τα δεδομενα που εισαγει; Δηλαδη να τα παρω και να τα καταχωρησω σε ενα αρχειο;
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car

gvre
Δημοσιεύσεις: 992
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από gvre » 04 Δεκ 2013 09:23

Το πιθανότερο είναι ότι πληκτρολογεί τον χαρακτήρα ' σε κάποιο από τα πεδία. Πέρνα από την mysql_real_escape_string όλες τις μεταβλητές πριν κάνεις το insert και πες του να ξαναδοκιμάσει.
Υ.Γ. Το mysql extension είναι deprecated. Καλό θα ήταν να χρησιμοποιήσεις το pdo ή το mysqli.

Άβαταρ μέλους
ideal
Δημοσιεύσεις: 302
Εγγραφή: 12 Φεβ 2011 16:26

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από ideal » 04 Δεκ 2013 10:07

gvre έγραψε:Το πιθανότερο είναι ότι πληκτρολογεί τον χαρακτήρα ' σε κάποιο από τα πεδία. Πέρνα από την mysql_real_escape_string όλες τις μεταβλητές πριν κάνεις το insert και πες του να ξαναδοκιμάσει.
Υ.Γ. Το mysql extension είναι deprecated. Καλό θα ήταν να χρησιμοποιήσεις το pdo ή το mysqli.
Τα ' και " τα αλλαζω ως εξής:
$var = str_replace('"', """, $var);
$var= str_replace("'", "'", $var);
Το ειχα οντως αυτο το προβλημα παλαιοτερα αλλα τωρα δε νομιζω να υφισταται. Σωστη η σκεψη σου.
Στην ουσια εχω φτιαξει δικα μου φιλτρα γιατι οταν τα περνουσα μεσα απο mysql_real_escape_string ειχα ενα προβληματακι το οποιο οφειλεται στον τροπο με τον οποιο περναω τις μεταβλητες.
Δεν μπορούμε να λύσουμε τα προβλήματά μας χρησιμοποιώντας τον ίδιο τρόπο σκέψης που χρησιμοποιήσαμε όταν τα δημιουργήσαμε. -Α. Einstein

Rent a Car

gvre
Δημοσιεύσεις: 992
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από gvre » 04 Δεκ 2013 10:11

Βάλε σε κάποιο log αρχείο το query και δες τί γράφει ο χρήστης.
Καλό είναι πάντως να μη φτιάχνεις δικά σου φίλτρα για να κάνεις escape τα δεδομένα σου, αλλά να χρησιμοποιείς αυτά που σου δίνει το extension. Ακόμα καλύτερα είναι να χρησιμοποιείς prepared statements.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από geomagas » 04 Δεκ 2013 11:16

@ideal
Για να μην κάνουμε υποθέσεις, ποιο ακριβώς είναι το error της mysql;
Βάλε μία mysql_error() μέσα στην die(). Π.χ.

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

or die('Παρουσιάστηκε σφάλμα. Παρακαλώ επικοινωνήστε με το Διαχειριστή. (error message: '.mysql_error().')');

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από Apostolis_38 » 04 Δεκ 2013 11:48

Κάνε αυτό που λέει ο geomagas για να μην πηγαίνεις στα τυφλά.

Αλλά για να συνεισφέρω κι εγώ, στην mysql 5.5 παίζει πρόβλημα με τους unsigned integers (unsigned value is out of range) το οποίο δεν βγάζει πρόβλημα στο error_log και το πιάνεις μόνο με το mysql_error().
Αν έχεις αυτή τη version της MySQL, ψάξε κι εκεί μήπως δημιουργεί πρόβλημα.

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

Προβλημα μονο με συγκεκριμενο PC στην προσβαση στη βαση δεδομενων

Δημοσίευση από fafos » 04 Δεκ 2013 12:07

Pera apo ta parapano pou aneferan oi prolalhsantes elegxe an kapoio pedio zhta monadikes eggrafes kai o pelaths sou dinei mia pou yparxei hdh..

+1 ston gvre.. kopste thn mysql sta queries kai arxiste na mathenete thn pdo.. etsi kai allios apo hn PHP 6 den tha yposthrizetai h mysql..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

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

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

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