2016-09-05 4 views
1

Ich erhalte diesen FehlerFatal error: Uncaught Fehler: Rufen Sie auf eine Elementfunktion escape_string() auf null

Fatal error: Uncaught Error: Call to a member function escape_string() on null in C:\xampp\htdocs\url\classes\shortener.php:19 Stack trace: #0 C:\xampp\htdocs\url\shorten.php(10): Shortener->makeCode('stackove...') #1 {main} thrown in C:\xampp\htdocs\url\classes\shortener.php on line 19

ich meine eigene URL Shortener bin der Gestaltung aber es gab mir diesen Fehler, wenn ich es getestet. Der Code verwende ich für diese

Dies ist die shorten Datei, um die Eingabe url shorten.php

<?php 
session_start(); 
require_once 'classes/shortener.php'; 

$s = new Shortener; 

if(isset($_POST['url'])) { 
    $url = $_POST['url']; 

    if($code = $s->makeCode($url)) { 
     echo $code; 
    } else { 

    } 

} 

dies ist die Datei, die die URL shortener.php verkürzt zu bekommen

<?php 
class Shortener{ 
    protected $db; 

    public function _construct(){ 
     $this->db = new mysqli('localhost','root','','shortenedurl'); 
    } 

    protected function generateCode($num){ 
     return base_convert($num, 10, 36); 
    } 

    public function makeCode($url){ 
     $url = trim($url); 

     if(!filter_var($url, FILTER_VALIDATE_URL)) { 
      return ''; 
     } 
     $url = $this->db->escape_string($url); 

     $exists = $this->db->query("SELECT code FROM short_urls WHERE urlinput = '{$url}'"); 

     if($exists->num_rows) { 
      return $exists->fetch_object()->code; 
     } else { 
      $insert = $this->db->query("INSERT INTO short_urls(urlinput, created) VALUES ('{$url}', NOW())"); 

      $code = $this->generateCode($this->db->insert_id); 

      $this->db->query("UPDATE short_urls SET code ='{$code}' WHERE url ='{$url}'"); 

      return $code;  
     } 
    } 

    public function getUrl($code){ 
    } 

} 
+0

Yup ändern! Also, was ist deine Frage? – RiggsFolly

+0

Warum bekomme ich diesen Fehler .. –

+0

Schwerwiegender Fehler: Uncaught Fehler: Aufruf einer Memberfunktion escape_string() auf Null in C: \ xampp \ htdocs \ url \ Klassen \ shortener.php: 19 Stack-Trace: # 0 C: \ xampp \ htdocs \ url \ short.php (10): Kürzere-> makeCode ('http: // stackove ...') # 1 {main} wird in C: \ xampp \ htdocs \ url \ classes \ shortener geworfen. php on line 19 –

Antwort

1

Das Konstrukt muss mit zwei von '_' beginnen, also muss es '__' sein.
Sie müssen also public function _construct(){ zu diesem public function __construct(){

Verwandte Themen