无法在Codeigniter(PHP)中获得相同值的True结果

时间:2017-07-29 10:06:24

标签: php codeigniter

我正在尝试比较Codeigniter中的两个值,但即使值和类型相同,结果也始终为false。 我在CodeIgniter中使用这段代码。 下面的代码。

$return_name = $this->db->get('feegroup');
$data = $return_name->result();
foreach($data as $d)
{
    $name = $d->name;
    if(($name) === ($this->input->post("name")))
    {
        $this->session->set_flashdata('error_message',"Sorry cannot create $name fee group, you cannot have two similar fee groups. Either edit or delete $name fee group or change name to create a new fee group.");
        redirect(base_url("feegroup/add"));
    }#EOF IF
}#EOF foreach

我已经使用了trim(),strlen(),is_string()来查看每次显示的结果,但在比较相同的数据时它会返回false。

如果来自DB的值来自样本,并且如果用户键入样本,则返回false但是如果来自DB的值来自样本且如果用户键入< strong>示例它返回True 它没有检查案例。

例如:

1父母===父母=真

2父=== parent = False

3父母=== Sam = False

4 Sam === sam = False

5 heLLO === hello = False

2 个答案:

答案 0 :(得分:3)

您使用strtolower函数将文本转换为小写并将其正确比较

if(strtolower($name) === strtolower($this->input->post("name")))

答案 1 :(得分:1)

试试这个

import UIKit
import JSQMessagesViewController
import MobileCoreServices
import AVKit
import FirebaseDatabase
import FirebaseStorage
import FirebaseAuth
import SDWebImage

class ChatViewController: JSQMessagesViewController {
var messages = [JSQMessage]()
var avatarDict = [String: JSQMessagesAvatarImage]()
var messageRef = FIRDatabase.database().reference().child("messages")

override func viewDidLoad() {
    super.viewDidLoad()

    if let currentUser = FIRAuth.auth()?.currentUser
    {
        self.senderId = currentUser.uid

        if currentUser.isAnonymous == true
        {
           self.senderDisplayName = "anonymous"
        } else
        {
            self.senderDisplayName = "\(currentUser.displayName!)"
        }

    }

    observeMessages()
}

func observeUsers(_ id: String)
{
    FIRDatabase.database().reference().child("users").child(id).observe(.value, with: {
        snapshot in
        if let dict = snapshot.value as? [String: AnyObject]
        {
            let avatarUrl = dict["profileUrl"] as! String

            self.setupAvatar(avatarUrl, messageId: id)
        }
    })

}

func setupAvatar(_ url: String, messageId: String)
{
    if url != "" {
        let fileUrl = URL(string: url)
        let data = try? Data(contentsOf: fileUrl!)
        let image = UIImage(data: data!)
        let userImg = JSQMessagesAvatarImageFactory.avatarImage(with: image, diameter: 30)
        self.avatarDict[messageId] = userImg
        self.collectionView.reloadData()

    } else {
        avatarDict[messageId] = JSQMessagesAvatarImageFactory.avatarImage(with: UIImage(named: "profileImage"), diameter: 30)
         collectionView.reloadData()
    }

}

func observeMessages() {
    messageRef.observe(.childAdded, with: { snapshot in
       // print(snapshot.value)
        if let dict = snapshot.value as? [String: AnyObject] {
            let mediaType = dict["MediaType"] as! String
            let senderId = dict["senderId"] as! String
            let senderName = dict["senderName"] as! String

            self.observeUsers(senderId)                                
            switch mediaType {

            case "TEXT":

                let text = dict["text"] as! String
                self.messages.append(JSQMessage(senderId: senderId, displayName: senderName, text: text))

            case "PHOTO":

                let photo = JSQPhotoMediaItem(image: nil)
                let fileUrl = dict["fileUrl"] as! String
                let downloader = SDWebImageDownloader.shared()
                downloader.downloadImage(with: URL(string: fileUrl)!, options: [], progress: nil, completed: { (image, data, error, finished) in
                    DispatchQueue.main.async(execute: {
                        photo?.image = image
                        self.collectionView.reloadData()
                    })
                })

                self.messages.append(JSQMessage(senderId: senderId, displayName: senderName, media: photo))

                if self.senderId == senderId {
                    photo?.appliesMediaViewMaskAsOutgoing = true
                } else {
                    photo?.appliesMediaViewMaskAsOutgoing = false
                }


            case "VIDEO":

                let fileUrl = dict["fileUrl"] as! String
                let video = URL(string: fileUrl)!
                let videoItem = JSQVideoMediaItem(fileURL: video, isReadyToPlay: true)
                self.messages.append(JSQMessage(senderId: senderId, displayName: senderName, media: videoItem))

                if self.senderId == senderId {
                    videoItem?.appliesMediaViewMaskAsOutgoing = true
                } else {
                    videoItem?.appliesMediaViewMaskAsOutgoing = false
                }

            default:
                print("unknown data type")

            }

            self.collectionView.reloadData()

        }
    })
}

override func didPressSend(_ button: UIButton!, withMessageText text: String!, senderId: String!, senderDisplayName: String!, date: Date!) {

    let newMessage = messageRef.childByAutoId()
    let messageData = ["text": text, "senderId": senderId, "senderName": senderDisplayName, "MediaType": "TEXT"]
    newMessage.setValue(messageData)
    self.finishSendingMessage()
}

override func didPressAccessoryButton(_ sender: UIButton!) {
    print("didPressAccessoryButton")

    let sheet = UIAlertController(title: "Media Messages", message: "Please select a media", preferredStyle: UIAlertControllerStyle.actionSheet)
    let cancel = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel) { (alert:UIAlertAction) in

    }

    let photoLibrary = UIAlertAction(title: "Photo Library", style: UIAlertActionStyle.default) { (alert: UIAlertAction) in
        self.getMediaFrom(kUTTypeImage)
    }

    let videoLibrary = UIAlertAction(title: "Video Library", style: UIAlertActionStyle.default) { (alert: UIAlertAction) in
        self.getMediaFrom(kUTTypeMovie)

    }


    sheet.addAction(photoLibrary)
    sheet.addAction(videoLibrary)
    sheet.addAction(cancel)
    self.present(sheet, animated: true, completion: nil)


}

func getMediaFrom(_ type: CFString) {
    print(type)
    let mediaPicker = UIImagePickerController()
    mediaPicker.delegate = self
    mediaPicker.mediaTypes = [type as String]
    self.present(mediaPicker, animated: true, completion: nil)
}

override func collectionView(_ collectionView: JSQMessagesCollectionView!, messageDataForItemAt indexPath: IndexPath!) -> JSQMessageData! {
    return messages[indexPath.item]
}

override func collectionView(_ collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAt indexPath: IndexPath!) -> JSQMessageBubbleImageDataSource! {
    let message = messages[indexPath.item]
     let bubbleFactory = JSQMessagesBubbleImageFactory()
    if message.senderId == self.senderId {

        return bubbleFactory!.outgoingMessagesBubbleImage(with: .black)
    } else {

        return bubbleFactory!.incomingMessagesBubbleImage(with: .blue)

    }


}

override func collectionView(_ collectionView: JSQMessagesCollectionView!, avatarImageDataForItemAt indexPath: IndexPath!) -> JSQMessageAvatarImageDataSource! {
    let message = messages[indexPath.item]

    return avatarDict[message.senderId]
    //return JSQMessagesAvatarImageFactory.avatarImageWithImage(UIImage(named: "profileImage"), diameter: 30)
}

override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    print("number of item:\(messages.count)")
    return messages.count
}

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = super.collectionView(collectionView, cellForItemAt: indexPath) as! JSQMessagesCollectionViewCell

    return cell
}

override func collectionView(_ collectionView: JSQMessagesCollectionView!, didTapMessageBubbleAt indexPath: IndexPath!) {
    print("didTapMessageBubbleAtIndexPath: \(indexPath.item)")
    let message = messages[indexPath.item]
    if message.isMediaMessage {
        if let mediaItem = message.media as? JSQVideoMediaItem {
            let player = AVPlayer(url: mediaItem.fileURL)
            let playerViewController = AVPlayerViewController()
            playerViewController.player = player
            self.present(playerViewController, animated: true, completion: nil)

        }
    }
}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
@IBAction func logoutDidTapped(_ sender: AnyObject) {

    do {
        try FIRAuth.auth()?.signOut()
    } catch let error {
        print(error)
    }

    // Create a main storyboard instance
    let storyboard = UIStoryboard(name: "Main", bundle: nil)

    // From main storyboard instantiate a View controller
    let LogInVC = storyboard.instantiateViewController(withIdentifier: "LogInVC") as! LogInViewController

    // Get the app delegate
    let appDelegate = UIApplication.shared.delegate as! AppDelegate

    // Set LogIn View Controller as root view controller
    appDelegate.window?.rootViewController = LogInVC
}

func sendMedia(_ picture: UIImage?, video: URL?) {
    print(picture)
    print(FIRStorage.storage().reference())
    if let picture = picture {
        let filePath = "\(FIRAuth.auth()!.currentUser)/\(Date.timeIntervalSinceReferenceDate)"
        print(filePath)
        let data = UIImageJPEGRepresentation(picture, 0.1)
        let metadata = FIRStorageMetadata()
        metadata.contentType = "image/jpg"
        FIRStorage.storage().reference().child(filePath).put(data!, metadata: metadata) { (metadata, error)
            in
            if error != nil {
                print(error?.localizedDescription)
                return
            }

            let fileUrl = metadata!.downloadURLs![0].absoluteString

            let newMessage = self.messageRef.childByAutoId()
            let messageData = ["fileUrl": fileUrl, "senderId": self.senderId, "senderName": self.senderDisplayName, "MediaType": "PHOTO"]
            newMessage.setValue(messageData)

        }

    } else if let video = video {
        let filePath = "\(FIRAuth.auth()!.currentUser)/\(Date.timeIntervalSinceReferenceDate)"
        print(filePath)
        let data = try? Data(contentsOf: video)
        let metadata = FIRStorageMetadata()
        metadata.contentType = "video/mp4"
        FIRStorage.storage().reference().child(filePath).put(data!, metadata: metadata) { (metadata, error)
            in
            if error != nil {
                print(error?.localizedDescription)
                return
            }

            let fileUrl = metadata!.downloadURLs![0].absoluteString

            let newMessage = self.messageRef.childByAutoId()
            let messageData = ["fileUrl": fileUrl, "senderId": self.senderId, "senderName": self.senderDisplayName, "MediaType": "VIDEO"]
            newMessage.setValue(messageData)

        }
    }
}
}

extension ChatViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    print("did finish picking")
    // get the image
    print(info)
    if let picture = info[UIImagePickerControllerOriginalImage] as? UIImage {

        sendMedia(picture, video: nil)
    }
    else if let video = info[UIImagePickerControllerMediaURL] as? URL {

        sendMedia(nil, video: video)

    }

    self.dismiss(animated: true, completion: nil)
    collectionView.reloadData()


}
}