PHP Funktion Parameter

10/28/2012 21:35 bloodx#1
Hey Hou, ich arbeite seit neustem mit PHP und probiere grade etwas.


ich will einer Funktion mit Prameter etwas übergeben das aber überhaupt nicht Funktioniert -.-..



Code:
$requested = $_GET['req'];
$newRequest = StrDelete($requested, 0, 31);
$sNewRequest = StrDelete($newRequest, 0, 1);

$requestID2 = StrExplode($sNewRequest, 4);
Code:
class PacketHeaders {
 
    const CreateCharacter = '001';
    const LoginCharacter = '002';
 
}
Code:
 function Login($Packet)
 {
     
            $accountData = explode(";", $Packet);
            $userName = StrDelete($accountData[0], 0, 3);
            $passWord = $accountData[1];
 
 
            $query = mysql_query("SELECT * FROM users WHERE name='$userName' AND password='$passWord'");
            $row = mysql_fetch_array($query);
            //echo $row;               
            if ($row) {
 
                $_SESSION['name'] = $row['name'];
                $_SESSION['id'] = $row['userID'];
 
             echo "aaaaa";
            } else {
                echo "E006";
            }
            
 }
Code:
switch ($requestID) {
    case PacketHeaders::CreateCharacter: {
        }
        break;
    case PacketHeaders::LoginCharacter: {
            Login($sNewRequest);
        }
        break;
}
so die funktion macht nun leider garnix ._. wieso?!
10/29/2012 10:34 Cr4nkSt4r#2
Und jetzt hast du alles einzeln hier iwo rein gehauen und keiner weis was in welcher Datei steht.
Auch gibt es deine Variable $requestID nirgends, zumindest kann ich sie nicht sehen.
Was soll also passieren? Lediglich $requestID2 ist definiert.
Du musst doch irgendwelche Fehlermeldungen bzw. Warnmeldungen bekommen wenn du den Code wie oben benutzt.

Mit so wenigen Infos die hier gegeben sind kann man auch nur spekulieren, wer sich die Zeit nehmen will, ok, aber poste einfach anständige Infos.


~ regards
10/29/2012 10:38 bloodx#3
requestID2 ist requestID nur vergessen beim posten um zu bennen, wieso sollte ich irgendwelche Fehlermeldungen oder Warnungen bekommen? in PHP kann man ja anscheinend leider machen was man will.

und es steht alles in der selben datei.
10/29/2012 10:42 Cr4nkSt4r#4
Wie rufst du dein script auf?
Du musst ja min. den GET Parameter übergeben da der switch keinen default-Aufruf hat.
Und nein, in PHP kann man nicht machen was man will ;)

Dafür gibt es ja error_reporting(E_ALL);
Aber da du nur beim hereinkopieren einen Fehler gemacht hast, passt es ja so weit und er sollte keinen Error schmeißen außer wenn kein GET gesetzt ist.

Und darf ich auch erfahren was genau die StrDelete() Funktion macht?
Die ist oben nirgends definiert.


~ regards
10/29/2012 10:45 bloodx#5
das PHP script arbeitet mit einem swf file zusammen. Wird von dort auch aufgerufen dann filtere ich die Requests raus.

wenn ich den Login code direkt in das case reinschreibe geht ja alles..

aber eben nicht wenn ich es einer Funktion übergebe was ich sehr mysteriös finde.
10/29/2012 10:47 boxxiebabee#6
StrDelete & StrExplode.. woher hast du bitte diese Funktionen? :>
10/29/2012 10:56 Cr4nkSt4r#7
Poste bitte einmal folgendes Ergebnis:

PHP Code:
<?php
echo '<pre>';
print_r($_GET);
echo 
'</pre>';

echo 
$newRequest;
echo 
'<br />';

echo 
$sNewRequest;
echo 
'<br />';

echo 
$requestID;
echo 
'<br />';
?>
Aber eig. sollte dir Anhand dieser Ausgabe schon etwas auffallen, denn das Script an sich müsste so auch funktionieren. Es können nur falsche Werte übergeben werden wodurch es nicht läuft. Und da ich die SWF Datei nicht kenne, kann ich dir das auch nicht vorhersagen.

Doch so viel Interesse an diesem Thema oder selber den Fehler bemerkt aber hier nicht mehr posten wollen aus Scham?
Naja...

#closerequest


~ regards
11/07/2012 16:09 eXidal#8
Hast du überhaupt am Anfang die session gestartet?