xlomo Δημοσ. 5 Ιανουαρίου 2012 Δημοσ. 5 Ιανουαρίου 2012 Παιδιά λίγη βοήθεια, Χρησιμοποιώ Xampp για Windows και θέλω να φτιάξω ένα φάκελο με την PHP, οπότε γράφω : if (!mkdir("/'$username'/")) { die('Failed to create folders...'); } Και ενώ δεν μου βγάζει το μήνυμα στο die δεν μπορώ να βρώ πουθενά το φάκελο.... Που στο καλό τον τοποθετεί ?
dewn735 Δημοσ. 5 Ιανουαρίου 2012 Δημοσ. 5 Ιανουαρίου 2012 Αν θυμάμαι καλά, σε win σύστημα δε πρέπει να χρησιμοποιήσεις το πρώτο slash, επομένως τo σωστό είναι >if (!mkdir($username)) { die('Failed to create folders...'); } Δοκίμασε επίσης να ενεργοποιήσεις το error reporting της php για να δεις τι σφάλμα σου βγάζει
mharis Δημοσ. 6 Ιανουαρίου 2012 Δημοσ. 6 Ιανουαρίου 2012 γράψε το παρακάτω και πες μου, θα πρέπει να σου φτιάξει ένα φάκελο στο ίδιο φάκελο που βρίσκεται και το αρχείο > <?php error_reporting(E_ALL); ini_set('display_errors','On'); $username = "haris"; mkdir($username); ?>
xlomo Δημοσ. 6 Ιανουαρίου 2012 Μέλος Δημοσ. 6 Ιανουαρίου 2012 Ευχαριστώ dewn735 και mharis, Δούλεψε, χωρίς / θα δουλέψει σε linux server ?
thanocaster Δημοσ. 6 Ιανουαρίου 2012 Δημοσ. 6 Ιανουαρίου 2012 Παρεπιπτόντως το E_ALL δεν αρκεί για να βλέπεις όλα τα μηνύματα λάθους στην PHP. Για να εμφανίζει όλα τα μηνύματα πρέπει να του δώσεις την παρακάτω εντολή: > error_reporting(E_ALL | E_STRICT);
xlomo Δημοσ. 6 Ιανουαρίου 2012 Μέλος Δημοσ. 6 Ιανουαρίου 2012 Τώρα έχω άλλο πρόβλημα με το mkdir, Δεν δουλεύει όταν το καλώ σε scripts που έχουν γίνει include. για παράδειγμα, έχω το SignUp.php > include("classes/UserClasses.php"); include("classes/DataConnect.php"); $newConnection = new GetConnection(); $con = $newConnection->Connect(); $username = $_POST['txtname']; $psw = $_POST['txtpsw']; $email = $_POST['txtemail']; $psw = md5($psw); $NameExists = UserExists($con, $username); if(!$NameExists){ //mkdir($username); NewUser($username, $psw, $email,$con); Header('location:index.php'); }else{ Header('location:index.php?UserExists=true'); } ?> Σε αυτό το script παίρνω με post τα πεδία μιας φόρμας και θέλω να δημιουργήσω το χρήστη σε βάση δεδομένων με την μέθοδο NewUser που δηλώνεται στο "classes/UserClasses.php" Το πρόβλημά μου είναι πως ενώ η mkdir δουλεύει αν κληθεί μέσα στο signup.php δεν δουλεύει αν κληθεί μέσα στη συνάρτηση NewUser() Η NewUser() > function NewUser($username,$psw,$email, $con){ $folder = "users"; mkdir($folder); $sql="INSERT INTO Users (UserName, Password, Email, Enabled, Type) VALUES ('$username','$psw','$email', 1, 1) "; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } } Ξέρει κάποιος τι κάνω λάθος ?
dewn735 Δημοσ. 6 Ιανουαρίου 2012 Δημοσ. 6 Ιανουαρίου 2012 Φτιάχνεις συνέχεια τον ίδιο φάκελο (users). Δοκίμασε να θέσεις >$folder=$username; To slash πρόλαβες και το διόρθωσες
xlomo Δημοσ. 6 Ιανουαρίου 2012 Μέλος Δημοσ. 6 Ιανουαρίου 2012 Έκανα δοκιμες , το ./ πάντως δουλεύει στο signup.php, ενω στη συνάρτηση όχι.
dewn735 Δημοσ. 6 Ιανουαρίου 2012 Δημοσ. 6 Ιανουαρίου 2012 Γενικότερα η συνάρτηση παίζει; Βγάλε τα die(), δε βοηθάνε σε αυτές τις καταστάσεις. Επίσης, άλλαξε το include σε require μήπως και δε βρίσκει καν το αρχείο με τη συνάρτηση Αν βάλεις κάνα echo στη συνάρτηση θα στο εμφανίσει; Δοκίμασε να αφαιρέσεις τις γραμμές που αφορούν τη ΒΔ, μήπως και είναι εκεί το πρόβλημα και ψάχνεις σε άλλο σημείο
xlomo Δημοσ. 6 Ιανουαρίου 2012 Μέλος Δημοσ. 6 Ιανουαρίου 2012 Ναι η συνάρτηση παίζει, οι εγγραφές στη βάση γίνονται κανονικά, τα echo δεν φαίνονται πουθενά όταν τα καλώ από τη συνάρτηση. Θα δοκιμάσω αυτά που λες και θα ανανεώσω, αργότερα όμως γιατί τώρα το έκαψα! Λες να χτυπάει το die και να μην το βλέπω ? Αφού γίνονται τα insert.... Αργότερα αργότερα .
mharis Δημοσ. 6 Ιανουαρίου 2012 Δημοσ. 6 Ιανουαρίου 2012 Αυτό πάντως δουλεύει σε μένα μια χαρά SignUp.php > <form method="post"> <input type="text" name="txtname" > <input type="submit" value="test"> </form> <?php include("classes/UserClasses.php"); //include("classes/DataConnect.php"); //$newConnection = new GetConnection(); //$con = $newConnection->Connect(); if(isset($_POST['txtname'])) { $username = $_POST['txtname']; $psw = $_POST['txtpsw']; $email = $_POST['txtemail']; $psw = md5($psw); $NameExists = false; if(!$NameExists){ //mkdir($username); NewUser($username, $psw, $email,$con); Header('location:index.php'); }else{ Header('location:index.php?UserExists=true'); } } ?> UserClasses.php > <?php function NewUser($username,$psw,$email, $con){ $folder = $username; mkdir($folder); $sql="INSERT INTO Users (UserName, Password, Email, Enabled, Type) VALUES ('$username','$psw','$email', 1, 1) "; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } } ?>
xlomo Δημοσ. 6 Ιανουαρίου 2012 Μέλος Δημοσ. 6 Ιανουαρίου 2012 ΠΦΦΦΦΦΦ.... Εντάξει παιδιά λύθηκε, ευχαριστώ για τη βοήθειά σας, τελικά είχε δημιουργηθεί duplicate αρχείο και άλλο έγραφα εγώ άλλο χρησιμοποιούσε το script. Νιώθω την ανάγκη να το ρίξω στα ναρκωτικά για κάποιο λόγο.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα