2017-03-11 2 views
0

Verzeihung für einen seltsamen Titel, wusste nicht, wie man es ausdrückt. Im Grunde kann ich nach meinem bestehenden PHP-Code nichts schreiben (er enthält eine Klasse, ein paar Funktionen und ein Echo einer Funktion). Ich habe versucht, einfaches HTML und mehr PHP, nichts davon funktioniert.Wie mache ich zusätzlichen Code nach vorhandenem PHP-Skript?

Wenn ich mich an Python erinnere, scheint es, dass es eine Schleife ist, die immer noch läuft und somit verhindert, dass etwas anderes funktioniert.

Mein Code:

<?php 

//We're using a newer and older generation algorithms in order to create different results 
//The time and date is used as a basic "salting" mechanism, which will make the number hard to determine without knowing the generation time 
//I should consider using more secure generation, such as "random_int" 
//EXTREMELY WIP!!! 

class authGeneration 
{ 

    private function gen($maxOne) { 

     $begin_value_one = date("sih") * rand(1,100); 
     $auth_value_one = mt_rand($begin_value_one, $maxOne); 
     echo $auth_value_one; 
    } 

    private function genAdd($maxTwo) { 

     $begin_value_two = date("his") + mt_rand(1000,1000000); 
     $auth_value_two = rand($begin_value_two, $maxTwo); 
     echo $auth_value_two; 
    } 

    public function finalGen() { 

     $begin_value_three = date("dmY"); 
     $auth = $this->gen(999999999) + $this->genAdd(999999999); //No more than 999999999, no less than 100000000 (for both) 
     $add = $auth + $begin_value_three; 
     echo parseFloat ($add); 
    } 

} 

function authCode() { 
    $obj = new authGeneration(); 
    echo $obj->finalGen(); 
} 

echo "Authentication code: "; authCode(); 
echo "MD5 Checksum: "; md5(authCode); //Doesn't work :(

Das erste Echo von authCode(); Arbeiten jedoch die Zeile darunter nicht der Fall, unabhängig davon, was ich dort schreiben. Irgendeine Idee, was das Problem ist? Oder wenn es die oben erwähnte "Schleife" ist, wie entkomme ich ihr? Fühlen Sie sich frei, meine Dummheit zu skizzieren.

Hinweis, PHP ist nicht meine Spezialität, ich benutze hauptsächlich Java und/oder C# (weil sie mehr Spaß als PHP sind), und nur beschlossen, etwas Spaß in PHP, daher meine Kenntnis der Sprache ist relativ begrenzt.

Antwort

0

Versuchen Sie Folgendes am Ende Ihres Skripts auszuführen.

echo "Authentication code: " . authCode(); 
echo "MD5 Checksum: " . md5(authCode()); 

Ich glaube, dass Sie nur nicht die PHP an die echo-Anweisung als ';' kennzeichnet ein Zeilenende in PHP.

Bei weiterem Hinsehen sieht es aus, als ob Ihre zweite Instanz von authCode die öffnende und schließende Klammer fehlt.

Es könnte besser sein, eine Zeichenfolge in Ihrer authCode() - Funktion zurückzugeben und die Ergebnismenge authCode() gleich einer Variablen zu setzen, so dass Sie die Funktion authCode() nicht zweimal aufrufen. Ex:

function authCode() { 
    $obj = new authGeneration(); 
    return $obj->finalGen(); 
} 


var $authvar = authCode(); 
echo "Authentication code: " . authvar; 
echo "MD5 Checksum: " . md5(authvar); 
+0

nahmen noch einen Blick, sieht aus wie die letzte Zeile haben sollte() nach Authcode wie es unter Bezugnahme auf den Berechtigungscode() Funktion .. – curtiplas

+0

** UPDATE: ** I losgeworden Error 500, es jetzt zeigt nur die Nummer ohne "Authentication code:" an und die Zeile darunter erscheint immer noch nicht (siehe obigen Link für das Live-Ergebnis) – ThatGuy

+0

Die Verwendung 'authvar' erzeugt Fehler 500' Parse error: Syntaxfehler, unerwarteter 'var' (T_VAR) in /var/www/html/auth.php in Zeile 39' ** UPDATE: ** Das Problem behoben, der Text immer noch nicht angezeigt – ThatGuy

Verwandte Themen