Ankündigung

Einklappen
Keine Ankündigung bisher.

Skript funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema Skript funktioniert nicht.

    Skript funktioniert nicht

    Warum funktioniert dieses Skript nicht? Ich hab schon 'ne Stunde den Fehöler gesucht, aber ihn nicht gefunden. Wenn ich einen neuen Dateinamen angebe und auf umbenen drücke, erscheint eine weiße Seite, anstatt die Weiterleitung.

    PHP-Code:
    if( (isset($_POST['umbenennen'])) && (empty($_POST['dateiaktion'])) ){
        ?><div style="position: absolute; left: 5%; top: 3%; width: 40%; height: 40%; background-color: #EEE8CD; border: 1px solid">
        [img]images/fehler.gif[/img]
        <span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #9C9C9C; position: absolute; top: 20%; left: 34%">
        Ein Fehler ist aufgetreten:


        Sie haben keine Datei

        zum umbenennen ausgew&auml;hlt!
        </span>




            
        [url="exec.php?action=hochladen"]<span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #4F4F4F">Zur&uuml;ck zum Men&uuml;</span>[/url]
        <?php
        
    exit;



    if( (isset(
    $_POST['umbenennen'])) && (!empty($_POST['dateiaktion'])) ){
    ?>
    <form action="<?php $PHP_SELF ?>" method="post" style="position: absolute; left: 3%; top: 5%">
    <span style="font-family: arial; font-size: 9pt; font-weight: bold; color: #000000">
    Bitte geben Sie einen neuen Dateinamen ein:
    </span>


    <span style="font-family: arial; font-size: 8pt; color: #000000">
    (Die Endung muss auch angegeben werden, z.B.: .jpg oder .zip)



    <input type="text" size="25" name="newname">

    <input type="submit" name="umbenennen2" value="umbenennen" style="border: 1px solid; position: relative; top: 2px">
    </form>

    <?php
    if( (isset($_POST['umbenennen2'])) && (empty($_POST['newname'])) ){
    ?><div style="position: absolute; left: 5%; top: 3%; width: 40%; height: 40%; background-color: #EEE8CD; border: 1px solid">
        [img]images/fehler.gif[/img]
        <span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #9C9C9C; position: absolute; top: 20%; left: 34%">
        Ein Fehler ist aufgetreten:


        Sie haben keinen neuen

        Dateinamen angegeben!
        </span>




            
        [url="exec.php?action=hochladen"]<span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #4F4F4F">Zur&uuml;ck zum Men&uuml;</span>[/url]<?php
    exit;
    }
    $newname=basename($_POST['newname']);

    if( (isset(
    $_POST['umbenennen2'])) && (!eregi(".pdf$"$newname)) &&  (!eregi(".css$"$newname)) && (!eregi(".gif$"$newname)) && (!eregi(".jpg$"$newname)) && (!eregi(".jpeg$"$newname)) && (!eregi(".jpe$"$newname)) && (!eregi(".mpeg$"$newname)) && (!eregi(".mpg$"$newname)) && (!eregi(".mpe$"$newname)) && (!eregi(".qt$"$newname)) && (!eregi(".mov$"$newname)) && (!eregi(".rtf$"$newname)) && (!eregi(".png$"$newname)) && (!eregi(".mid$"$newname)) && (!eregi(".midi$"$newname)) && (!eregi(".txt$"$newname)) && (!eregi(".g$"$newname)) && (!eregi(".h$"$newname)) && (!eregi(".c$"$newname)) && (!eregi(".cc$"$newname)) && (!eregi(".hh$"$newname)) && (!eregi(".m$"$newname)) && (!eregi(".f90$"$newname)) && (!eregi(".avi$"$newname)) && (!eregi(".wav$"$newname)) && (!eregi(".zip$"$newname)) ){
    ?><div style="position: absolute; left: 5%; top: 3%; width: 40%; height: 40%; background-color: #EEE8CD; border: 1px solid">
        [img]images/fehler.gif[/img]
        <span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #9C9C9C; position: absolute; top: 20%; left: 34%">
        Ein Fehler ist aufgetreten:


        Falsche Endung!
        </span>




            
        [url="exec.php?action=hochladen"]<span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #4F4F4F">Zur&uuml;ck zum Men&uuml;</span>[/url]<?php
    exit;
    }

    if(!empty(
    $newname)){ 
    $dateiaktion=$_POST['dateiaktion'];
    rename("/srv/www/htdocs/web98/files/files/$sess_username/$dateiaktion""/srv/www/htdocs/web98/files/files/$sess_username/$newname");

    include(
    "/srv/www/htdocs/web98/files/hpworld.inc.php");
        
    $renamesql="UPDATE dateien SET name='$newname' WHERE benutzername='$sess_username' AND name='$dateiaktion'";
        
    mysql_query($renamesql);
        
    mysql_close();
    }

    }
    ?>

  • Gast-Avatar
    Ein Gast antwortete
    Aha, dann sollte dir das doch zu denken geben, oder? Also mal nachdenken, warum die Variablen leer sind.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von phpfan
    Zitat von phpmensch
    So hab ichs auch gemacht, bevor ich hier gefragt habe.
    2 Möglichkeiten:

    1. Du bist nicht in der Lage, simple echo's an die richtige Stelle zu setzen.
    2. Du erzählst uns hier was vom Pferd.

    Gruß
    phpfan
    Ich habe die echos schon an die richtige Stelle gesetzt. Sie geben aber überhaupt nichts aus

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von phpmensch
    So hab ichs auch gemacht, bevor ich hier gefragt habe.
    2 Möglichkeiten:

    1. Du bist nicht in der Lage, simple echo's an die richtige Stelle zu setzen.
    2. Du erzählst uns hier was vom Pferd.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von phpfan
    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

    Gruß
    phpfan
    So hab ichs auch gemacht, bevor ich hier gefragt habe.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von xabbuh
    Die Dateiendung sagt absolut nichts über den Dateityp aus. Diese Antwort von karl-150 in deinem anderen Thema sollte dich da wohl eher weiterbringen.
    Das weiß ich. Aber es könnte ja ein User hingehen, eine .txt-Datei mit php-Inhlt hochladen und diese dann in Php umbenennen. Deshalb wird die Endung geprüft, damit man sowas nicht machen kann.

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    Die Dateiendung sagt absolut nichts über den Dateityp aus. Diese Antwort von karl-150 in deinem anderen Thema sollte dich da wohl eher weiterbringen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von phpmensch
    Zitat von Bruchpilot
    und $extension = $info["extension"]; kann man sich sogar auch noch sparen.
    Aber die Register_Globals sind bei mir auf off. Also muss man das auch angeben.
    Nein, register_globals hat damit rein garnichts zu tun.
    PHP-Code:
    function is_valid_extension($filename)
    {
        
    $extensions = array("pdf",  "css""gif""jpg""jpeg""jpe""mpeg",
                           
    "mpg",  "mpe""qt",  "mov""rtf",  "png""mid",
                           
    "midi""txt""g",   "h",   "c",    "cc",  "hh",
                           
    "m",    "f90""avi""wav""zip");
        
    $info pathinfo($filename);                        
        return 
    in_array($info["extension"], $extensions);

    Aber egal, Du hast erstmal völlig andere Probleme.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich hab alles versucht. Aber das Skript will irgendwie nicht gehen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
    4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

    Gruß
    phpfan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Bruchpilot
    und $extension = $info["extension"]; kann man sich sogar auch noch sparen.
    Aber die Register_Globals sind bei mir auf off. Also muss man das auch angeben.

    Leider geht mein Skript immer noch nicht. Es sieht jetzt so aus:

    PHP-Code:
    <?php
    if( (isset($_POST['umbenennen'])) && (empty($_POST['dateiaktion'])) ){
        
    ?><div style="position: absolute; left: 5%; top: 3%; width: 40%; height: 40%; background-color: #EEE8CD; border: 1px solid">
        [img]images/fehler.gif[/img]
        <span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #9C9C9C; position: absolute; top: 20%; left: 34%">
        Ein Fehler ist aufgetreten:


        Sie haben keine Datei

        zum umbenennen ausgew&auml;hlt!
        </span>




            
        [url="exec.php?action=hochladen"]<span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #4F4F4F">Zur&uuml;ck zum Men&uuml;</span>[/url]
        <?php
        
    exit;



    if( (isset(
    $_POST['umbenennen'])) && (!empty($_POST['dateiaktion'])) ){
    ?>
    <form action="<?php $PHP_SELF ?>" method="post" style="position: absolute; left: 3%; top: 5%">
    <span style="font-family: arial; font-size: 9pt; font-weight: bold; color: #000000">
    Bitte geben Sie einen neuen Dateinamen ein:
    </span>


    <span style="font-family: arial; font-size: 8pt; color: #000000">
    (Die Endung muss auch angegeben werden, z.B.: .jpg oder .zip)



    <input type="text" size="25" name="newname">

    <input type="submit" name="umbenennen2" value="umbenennen" style="border: 1px solid; position: relative; top: 2px">
    </form>

    <?php
    if( (isset($_POST['umbenennen2'])) && (empty($_POST['newname'])) ){
    ?><div style="position: absolute; left: 5%; top: 3%; width: 40%; height: 40%; background-color: #EEE8CD; border: 1px solid">
        [img]images/fehler.gif[/img]
        <span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #9C9C9C; position: absolute; top: 20%; left: 34%">
        Ein Fehler ist aufgetreten:


        Sie haben keinen neuen

        Dateinamen angegeben!
        </span>




            
        [url="exec.php?action=hochladen"]<span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #4F4F4F">Zur&uuml;ck zum Men&uuml;</span>[/url]<?php
    exit;
    }
    $newname=basename($_POST['newname']);


    function 
    is_valid_extension($filename)
    {
       
    $info pathinfo($filename);
       
    $extension $info["extension"];
       
       
    $extensions = array("pdf",  "css""gif""jpg""jpeg""jpe""mpeg",
                           
    "mpg",  "mpe""qt",  "mov""rtf",  "png""mid",
                           
    "midi""txt""g",   "h",   "c",    "cc",  "hh",
                           
    "m",    "f90""avi""wav""zip");
                            
        return 
    in_array($extension$extensions);




    if( (isset(
    $_POST['umbenennen2'])) && (!is_valid_extension($newname)) ){
    ?><div style="position: absolute; left: 5%; top: 3%; width: 40%; height: 40%; background-color: #EEE8CD; border: 1px solid">
        [img]images/fehler.gif[/img]
        <span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #9C9C9C; position: absolute; top: 20%; left: 34%">
        Ein Fehler ist aufgetreten:


        Flasche Dateiendung
        </span>




            
        [url="exec.php?action=hochladen"]<span style="font-family: arial; font-size: 8pt; font-weight: bold; color: #4F4F4F">Zur&uuml;ck zum Men&uuml;</span>[/url]<?php
    exit;
    }

    if( (isset(
    $_POST['umbenennen2'])) && (is_valid_extension($newname)) ){
    $dateiaktion=$_POST['dateiaktion'];
    rename("/srv/www/htdocs/web98/files/files/$sess_username/$dateiaktion""/srv/www/htdocs/web98/files/files/$sess_username/$newname");

    include(
    "/srv/www/htdocs/web98/files/hpworld.inc.php");
        
    $renamesql="UPDATE dateien SET name='$newname' WHERE benutzername='$sess_username' AND name='$dateiaktion'";
        
    mysql_query($renamesql);
        
    mysql_close();
    }

    }
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    und $extension = $info["extension"]; kann man sich sogar auch noch sparen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von phpfan
    Zitat von phpmensch
    Hast du 'ne andere Idee, wie man die Endung prüfen kann?
    Mal kurz nachgedacht (was man ja ruhig mal machen darf) und ups, das ist doch ganz einfach und übersichtlich:
    PHP-Code:
    function is_valid_extension($filename)
    {
       
    $info pathinfo($filename);
       
    $extension $info["extension"];
       
       
    $extensions = array("pdf",  "css""gif""jpg""jpeg""jpe""mpeg",
                           
    "mpg",  "mpe""qt",  "mov""rtf",  "png""mid",
                           
    "midi""txt""g",   "h",   "c",    "cc",  "hh",
                           
    "m",    "f90""avi""wav""zip");
                            
        return 
    in_array($extension$extensions);

    }
    if( (isset(
    $_POST['umbenennen2'])) && is_valid_extension($newname)) 
    Gruß
    phpfan
    Danke.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von phpmensch
    Hast du 'ne andere Idee, wie man die Endung prüfen kann?
    Mal kurz nachgedacht (was man ja ruhig mal machen darf) und ups, das ist doch ganz einfach und übersichtlich:
    PHP-Code:
    function is_valid_extension($filename)
    {
       
    $info pathinfo($filename);
       
    $extension $info["extension"];
       
       
    $extensions = array("pdf",  "css""gif""jpg""jpeg""jpe""mpeg",
                           
    "mpg",  "mpe""qt",  "mov""rtf",  "png""mid",
                           
    "midi""txt""g",   "h",   "c",    "cc",  "hh",
                           
    "m",    "f90""avi""wav""zip");
                            
        return 
    in_array($extension$extensions);

    }
    if( (isset(
    $_POST['umbenennen2'])) && is_valid_extension($newname)) 
    Gruß
    phpfan

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von phpfan
    Dara kann ich auch nichts ändern.
    Warum das denn nicht? Grübel Muss man nicht verstehen, oder?

    Gruß
    phpfan
    Hast du 'ne andere Idee, wie man die Endung prüfen kann?
    Sonst könnte ja einer hingehen, eine Textdatei hochladen, die z.B. PHP-code mit 'ner Endlosschleife enthält und dann in .php umbenennen und schon ist der Server überlastet, möglicherweise sogar defekt.

    Einen Kommentar schreiben:

Lädt...
X