[PHP] Loginscript und Datenuploadscript

Fou-Lu

Lt. Junior Grade
Registriert
Aug. 2006
Beiträge
290
Hallo Leute,
ich bin grad dabei für mein Browsergame ein "Loginscript" zu proggen, aber es will nicht so richtig funktionieren.
Als ich meinem Kumpel den Code gezeigt habe, da antwortete er mir es ist so aufgebaut, dass es davon ausgeht du wärst bereits mit mysql verbunden also habe ich ein script geschrieben das mich damit verbindet und habe dann das loginscript includet.

Bei mir taucht aber folgender fehler auf:

Code:
Benutzeraccount
Name: 	Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Hier ist die SQL datei:

PHP:
<?php
error_reporting(E_All);
include("login.php");
$db_link = mysql_connect(localhost, xxx, xxx);
if($db_link) {
	echo "Verbindung wurde aufgebaut<br />\n";
	echo "In der Variable steht folgendes: ".$db_link;
	} else {
	echo "Es konnte keine Verbindung aufgebaut werden";
	}
?>

Und hier das Loginscript:

PHP:
<?php
    if(isset($_GET['action']) AND ("logout" == $_GET['action'])) {
        session_destroy();
        echo "<p>\n";
        echo "    Sie haben sich ausgeloggt. Um zu ihrem Account zu gelangen\n";
        echo "    müssen sie sich wieder Einloggen\n";
        echo "</p>\n";
    } else {
        if(isset($_POST['UserID']) AND '0' == $_POST['UserID']) {
            echo "<p>\n";
            echo "    Bitte wählen sie einen Benutzernamen aus.\n";
            echo "</p>\n";
        } else {
            if(isset($_POST['UserID'], $_POST['Password']) AND
               login_right(addslashes($_POST['UserID']),
                           addslashes($_POST['Password']))) {
                $_SESSION['ID'] = $_POST['UserID'];
            }
            if(isset($_SESSION['ID'])) {
                echo "<p>\n";
                echo "    Willkommen in ihrem Account <br />\n";
                echo "    <a href=\"index.php?section=admin&amp;".SID."\">Repeat</a>\n";
                echo "    <a href=\"index.php?section=admin&amp;action=logout&amp;".SID."\">Ausloggen</a>\n";
                echo "</p>\n";
            } else {
                if(isset($_POST['submit'])) {
                     // Der Submit-Button wurde gedrückt
                     // aber der Login ist falsch. Deshalb
                     // erstellen wir eine Fehlermeldung
                     echo "<p class=\"error\">\n";
                     echo "    Der Benutzername ist nicht vorhanden oder Sie haben das falsche PAsswort eingegeben.\n";
                     echo "</p>\n";
                }
                echo "<form action=\"index.php?section=admin\" method=\"post\" class=\"admin_form\">\n";
                echo "    <table>\n";
                echo "        <tr>\n";
                echo "            <th colspan=\"2\">\n";
                echo "                <h2>Benutzeraccount</h2>\n";
                echo "            </th>\n";
                echo "        </tr>\n";
                echo "        <tr>\n";
                echo "            <td>\n";
                echo "                <label for=\"name\">Name:</label>\n";
                echo "            </td>\n";
                echo "            <td>\n";
                $sql = "SELECT
                            `ID`,
                            `Name`
                        FROM
                            `users`
                        ORDER BY
                            `Name` ASC;";
                $result = mysql_query($sql) OR die(mysql_error());
                echo "                <select size=\"1\" name=\"UserID\" id=\"name\">\n";
                echo "                    <option value=\"0\" selected=\"selected\">Bitte wählen</option>\n";
                while($row = mysql_fetch_assoc($result)) {
                    echo "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
                }
                echo "                </select>\n";
                echo "            </td>\n";
                echo "        </tr>\n";
                echo "        <tr>\n";
                echo "            <td>\n";
                echo "                <label for=\"password\">Password:</label>\n";
                echo "            </td>\n";
                echo "            <td>\n";
                echo "                <input type=\"password\" name=\"Password\" id=\"password\"/>\n";
                echo "            </td>\n";
                echo "        </tr>\n";
                echo "        <tr>\n";
                echo "            <td colspan=\"2\">\n";
                echo "                <input type=\"submit\" name=\"submit\" value=\"Abschicken\" />\n";
                echo "                <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                echo "            </td>\n";
                echo "        </tr>\n";
                echo "    </table>\n";
                echo "</form>\n";
            }
        }
    }
?>

So was habe ich da falsch gemacht?

PS: das Loginsystem habe ich mir eigentlich runtergeladen und nur einige Echo Texte verändert sonst müsste alles so sein wie's war ;)
 
Und hier mein zweites Problem das allerdings denke ich leichter zu lösen ist als das mit dem loginsystem.
Habe ein Dateiuploadscript gemacht scheint aber auch nicht zu funzen.
Was ist daran falsch bzw. wie kann ich bei meinem php so machen, dass es schreibrechte bekommt?

Uploaddatei:

HTML:
 <form action="datei.php" method="post" enctype="multipart/form-data">
    <p>Datei: <input type="file" name="userfile" /></p>
    <p><input type="submit" value="Abschicken" /></p>
</form>

Und hier die eigentliche Scriptdatei:

PHP:
<?php
$_FILES["userfile"]["name"];
$_FILES["userfile"]["type"];
$_FILES["userfile"]["size"];
$_FILES["userfile"]["tmp_name"];
$_FILES["userfile"]["error"];
?>
<?php
    $dir_upload = "/var/www/files/upload/"; //Pfad auf dem Server, wo die Datei gespeichert werden soll (PHP muss Schreibrechte besitzen!)
    
    if (move_uploaded_file($_FILES["userfile"]["tmp_name"], $dir_upload.$_FILES["userfile"]["name"])) { //Kopiervorgang
    echo "File ".$_FILES["userfile"]["name"]." erfolgreich hochgeladen.";
    } else {
        echo "Fehler beim Upload! Info:";
        echo "<pre>"; var_dump($_FILES); echo "</pre>";
    }
?>


Hier die folgende Meldung bekomme ich wenn ich was uploaden will:

Code:
SecureSSI: Das Script (/usr/export/www/hosting/bestia/datei.php) hat versucht ausserhalb von ihrem Userverzeichniss auf die Datei /var/www/files/upload/06090556Rick%20copy.jpg zuzugreifen.
Dies ist nicht erlaubt!

Warning: move_uploaded_file() [function.move-uploaded-file]: Sicherheitsverletzung: in /usr/export/www/hosting/bestia/datei.php on line 11
Fehler beim Upload! Info:

array(1) {
  ["userfile"]=>
  array(5) {
    ["name"]=>
    string(23) "06090556Rick%20copy.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(25) "/usr/export/tmp/phpMgqI1K"
    ["error"]=>
    int(0)
    ["size"]=>
    int(337110)
  }
}
 
MAAAAAAAAAAAAAAAAAAAAAN bei dem dateiuploadscript konnte mir nicht mal chmod 777 helfen eh.
ich hoffe ihr könnt mir wenigstens helfen obwohl es eh sinnlos is zu fragen T_T
 
hi,

Sieht nicht nach PHP-Problem aus, sondern eher nach MySQL (servereinstellung oder so.. ka...)

Das zweite dürfte selbsterklärend sein.. du darfst die Datei nicht hochladen^^

SecureSSI: Das Script (/usr/export/www/hosting/bestia/datei.php) hat versucht ausserhalb von ihrem Userverzeichniss auf die Datei /var/www/files/upload/06090556Rick%20copy.jpg zuzugreifen.
Dies ist nicht erlaubt!


sieh dir den Komentar vom quelltext an:

PHP:
 $dir_upload = "/var/www/files/upload/"; //Pfad auf dem Server, wo die Datei gespeichert werden soll (PHP muss Schreibrechte besitzen!)

Lade die Datei woanders hin... (irgendwo in DEIN userverzeichnis)

Hoffe das hilft!
MfG
 
Zuletzt bearbeitet:
theGregg schrieb:
hi,

Sieht nicht nach PHP-Problem aus, sondern eher nach MySQL (servereinstellung oder so.. ka...)

MfG

kann es sein, dass ich noch die felder zur eingabe in einer extra datei oder gar dieser hier eingeben muss, aber davor noch manuel den acc anlegen?
das habe ich nämlich noch gar nicht gemacht ^_^"


PS: das mit dem uploadscript habe ich endlich hingekriegt. wer es haben will meldet euch per pn. sind eh gerade mal 2 files :D
 
Zuletzt bearbeitet:
Zurück
Oben