• Welcome to Simple Machines Community Forum. Please login or sign up.

Πρόβλημα με την χειροκίνητη δημιουργία νέου πεδίου σε προφίλ

Started by Eva, October 19, 2007, 09:45:52 AM

Previous topic - Next topic

Eva

Δημιούργησα χειροκίνητα ένα νέο πεδίο στο προφίλ με όνομα 'mobilephone' το οποίο όλα τα μέλη πρέπει να συμπληρώσουν κατά την εγγραφή.
Πριν αναβαθμίσω το φόρουμ σε SMF1.1.4 ο κώδικας δούλευε μια χαρά αλλά όταν ξαναπέρασα χειροκίνητα τον κώδικα στα νέα αρχεία source και template κάτι πήγε στραβά μιας και υπάρχουν σημαντικές διαφορές μεταξύ των παλαιών και των νέων αρχείων...  :(

Η φόρμα εγγραφής λειτουργεί κανονικά και οι κανόνες του validation που έχω ορίσει δουλεύουν επίσης. Το πρόβλημα ξεκινάει στο προφιλ...

Όταν κάποιο μέλος προσπαθεί να αλλάξει τις ρυθμίσεις λογαριασμού του (συμπεριλαμβανομένου και του κινητού) ο κώδικας λειτουργεί και εμφανίζεται σφάλμα όταν δεν συμπληρωθεί το πεδίο ή δεν ακολουθεί τους κανόνες που έχω ορίσει.

Το πρόβλημα είναι ότι τα σφάλματα αυτά εμφανίζονται ακόμα και όταν κάποιος προσπαθεί να αποθηκεύσει οποιαδήποτε μορφής αλλαγή στις ρυθμίσεις του προφίλ του (όπως πχ. στις ρυθμίσεις ειδοποιήσεων ή στις ρυθμίσεις προσωπικών μηνυμάτων) όπου φυσικά το πεδίο του κινητού δεν υπάρχει...

Έχετε καμία ιδέα γιατί μπορεί να συμβαίνει αυτό?  ???

Ο κώδικας που χρησιμοποίησα στο Profile.php είναι:

// Want to change their mobile number?
{
if (!isset($_POST['mobilephone']) || trim($_POST['mobilephone']) == '')
$post_errors[] = 'no_mobilephone';

if (preg_match('~^[6]+[9]+[3-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]$~', stripslashes($_POST['mobilephone'])) == 0)
$post_errors[] = 'bad_mobilephone';


$profile_vars['mobilephone'] = '\'' . $_POST['mobilephone'] . '\'';
}


Και τον τοποθέτησα κάτω από αυτό:

// Check the name and email for validity.
if (trim($_POST['emailAddress']) == '')
$post_errors[] = 'no_email';
if (preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@[\w\-]+(\.[\w\-]+)*(\.[\w]{2,6})$~', stripslashes($_POST['emailAddress'])) == 0)
$post_errors[] = 'bad_email';

// Email addresses should be and stay unique.
$request = db_query("
SELECT ID_MEMBER
FROM {$db_prefix}members
WHERE ID_MEMBER != $memID
AND emailAddress = '$_POST[emailAddress]'
LIMIT 1", __FILE__, __LINE__);
if (mysql_num_rows($request) > 0)
$post_errors[] = 'email_taken';
mysql_free_result($request);


$profile_vars['emailAddress'] = '\'' . $_POST['emailAddress'] . '\'';

}



Πιστεύετε ότι το θέμα προκύπτει από το σημείο στο οποίο τοποθέτησα τον κώδικα ή λείπει κάτι άλλο το οποίο εγώ αγνοώ?  :-[

Ευχαριστώ εκ των προταίρων :)

agridoc

Οι αλλαγές στο Profile.php δεν είναι μεγάλες στην 1.1.4. Από τι version έγινε αναβάθμιση;

Υπάρχει backup του φόρουμ με τα αρχεία, όπως λειτουργούσαν σωστά;

Είναι σίγουρο οτι θα μπει στο Profile.php και όχι στο Profile.template.php;

Ισως σου φανεί χρήσιμο το Creating custom profile fields in SMF.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

Eva

Έχω κάνει αλλαγές και στο profile_template και σε άλλα αρχεία, αλλά μετά από διάφορες δοκιμές κατέληξα ότι αυτό το σημείο του κώδικα σε αυτό το αρχείο είναι που φταίει...  :-\

Το custom profile fields το δοκίμασα αλλά δεν βολεύει γιατί πρώτον δεν αποθηκεύει τα στοιχεία στην βάση μαζί με τα άλλα στοιχεία του προφίλ, δεύτερον δεν μπορείς να του ρυθμίσεις που θα δείχνει και από που θα αλλάζει το νέο πεδίο και τρίτον δεν μπορείς να του βάλεις rules σαν αυτό που θέλω εγώ...  :-[

Greek

Το Custom Profile Field επιτρέπει την προσθήκη υποχρεωτικού (προαιρετικά) πεδίου κατά την εγγραφή.
Τα υπόλοιπα ομολογώ ότι δεν τα πολυκατάλαβα.
Πάντως το κάθε μέλος μπορεί να τροποποιήσει το κάθε επιπλέον πεδίο, όπως και τα αρχικά του SMF, μέσα από το προφίλ του.

agridoc

Eva δεν πήρα απάντηση στο αν υπάρχει backup από τα αρχεία του SMF πριν την αναβάθμιση.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

Eva


agridoc

Τι version έτρεχε πριν την αναβάθμιση;

Κάνε σύγκριση των αρχείων που έτρεχαν σωστά με τα original της version που έτρεχε πριν την αναβάθμιση.

Θα βρεις που τα είχες βάλει.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

Eva

Aυτό έκανα όταν τα πέρασα manually, το πρόβλημα προκύπτει γιατί κάποια σημεία όπου είχα βάλει τον κώδικα δεν υπάρχουν στα καινούργια αρχεία...  :-\

agridoc

  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.


agridoc

Το φανταζόμουνα οτι θα είναι από 1.0x, οι διαφορές από 1.1 Final  και μετά είναι μικρές.

Θέλει συνολικά μελέτη, λυπάμαι που δεν μπορώ να βοηθήσω άλλο.
  For Greek aeromodellers and our friends around the world  - Greek Button sets for SMF - Greeklish to Greek mod
Δeν αφιερώνω χρόνο για μηνύματα σε greeklish.

Eva


Eva


Advertisement: