Ankündigung

Einklappen
Keine Ankündigung bisher.

Überprüft nicht die Session Warum?

Einklappen

Unconfigured Ad Widget

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

  • DjRay
    hat ein Thema erstellt Überprüft nicht die Session Warum?.

    Überprüft nicht die Session Warum?

    Hey hey ich hoffe ihr könnt mir helfen.
    habe ein kleines tut benutzt und ja aber irgendwie prüft die datei nicht die Session.

    Ohne Login kann ich trotzdem meinen Thread somit Senden.

    Hier mal mein Code

    Danke im vorraus


    PHP-Code:
    <?php
    include("scripts.inc");
    if(!isset(
    $_SESSION['loggedin'])) header("Location: login.php");
    if(isset(
    $_POST['submit']))
    {
        
    $title $_POST['title'];
        
    $text $_POST['text'];
        if(
    $title != "" and $text != "")
        {
            
    $date date("Y-m-d H:i:s");
            
    mysql_query("INSERT INTO `threads`
            (`title`, `user_id`, `datetime`, `closed`, `wichtig`)
            VALUES
            ('
    $title', '$uid', '$datetime', '0', '0')
            "
    );
            
    $topic_id mysql_insert_id();
            
    mysql_query("INSERT INTO `posts`
            (`user_id`, `text`, `date`, `topic_id`)
            VALUES
            ('
    $uid', '$text', '$date', '$topic_id')
            "
    );
            
    // Die folgende Zeile wird uns bei Erfolg zum gerade erstellten
            // Thread weiterleiten. Die Threadseite werden wir später
            // programmieren.
            
    header("Location: showthread.php?thread=$topic_id");
        }
        else
        {
            
    $error_l true;
        }
    }

    if(
    $error_l) echo "Bitte alle Felder ausfüllen!";

    ?>

    <form action="newthread.php" method="post">
    Titel des Threads:<br />
    <input type="text" name="title" />
    Text:<br />
    <textarea name="text"></textarea><br />
    <input type="submit" name="submit" value="Thread erstellen" />
    </form>

  • ByStones
    antwortet
    PHP-Code:
    <?php
    //...
    mysql_select_db("++++++");
    ?> 


    <?php
    session_start
    ();
    //...
    Warum wird da der Tag geschlossen und gleich wieder geöffnet ?
    Vor session_start() darf keine Ausgabe stattfinden (und zwischen den 2-Tags sind vermutlich Leerzeichen + Zeilenumbrüche) ^^

    Grüße

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Ist zwar richtig, ich fürchte jedoch, unser DJ hat noch ganz andere Probleme..

    Einen Kommentar schreiben:


  • mepeisen
    antwortet
    Zitat von ragtek Beitrag anzeigen
    Kleiner Hinweis am Rande: SQL Injection Gefahr
    Bevor das Untergeht. WICHTIG!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Einen Kommentar schreiben:


  • Jens Clasen
    antwortet
    Siehe #2, Unterpunkt 2. header() beendet die Verarbeitung des aktuellen Skriptes nicht.

    Gruß Jens

    Einen Kommentar schreiben:


  • DjRay
    antwortet
    Das steht in der script.inc


    PHP-Code:
    <?php

    mysql_connect
    ("+++++""++++++""+++++");
    mysql_select_db("++++++");

    ?> 


    <?php



    session_start
    ();
    /* Im folgenden werden einige wichtige Variablen definiert, die auf jeder Seite verwendet werden, wenn
    der Benutzer eingeloggt ist. Die genaue Bedeutung wird später erklärt. */

    if(isset($_SESSION['loggedin']))
    {
        
    $uid $_SESSION['userID'];
        
    $user_query mysql_query("SELECT * FROM `users`
        WHERE `user_id` = '
    $uid'");
        
    $user mysql_fetch_object($user_query);
        if(
    $user->mod == 1$mod true;
    }

    ?> 
    <?php

    function datumformat($datum)
    {
        
    $jahr substr($datum04);
        
    $monat substr($datum52);
        
    $tag substr($datum82);
        
    $datum $tag.".".$monat.".".$jahr;
        return 
    $datum;
    }

    function 
    getstringuserid($id)
    {
        
    $row = @mysql_fetch_object(@mysql_query("SELECT * FROM `users` WHERE
        `user_id` = '
    $id'"));
        
    $id $row->username;
        return 
    $id;
    }

    function 
    setread($topic$user)
    {
         
    $anz = @mysql_result(@mysql_query("SELECT COUNT(*) FROM `read_posts`
        WHERE `topic_id` = '
    $topic' and `user_id` = '$user'"),0);
         if(
    $anz == 0)
         
    mysql_query("INSERT INTO `read_posts` (`topic_id`, `user_id`)
        VALUES ('
    $topic', '$user')");
    }

    function 
    setunread($topic)
    {
        
    mysql_query("DELETE FROM `read_posts` WHERE `topic_id` = '$topic'");
    }

    function 
    bbcodes($text)
    {
        
    $text preg_replace("#\[img\](.*)\[/img\]#""<img src=\"$1\" />"$text);
        
    $text preg_replace('#\[b\](.*)\[/b\]#si','<b>$1</b>'$text);
        
    $text preg_replace('#\[i\](.*)\[/i\]#si<i>$1</i>'$text);
        
    $text preg_replace("#\[url=(.*)\](.*)\[/url\]#si""<a href=\"$1\" target=\"_blank\">$2</a>",
        
    $text);
        
    $text preg_replace("#\[url\](.*)\[/url\]#si""<a href=\"$1\" target=\"_blank\">
        $1</a>"
    $text);
        
    $text preg_replace(array("#\[quote\](.*?)#si""#\[/quote\]#"),
        array(
    "<div class=\"quote\"><i>Zitat</i><br />$1""</div>"), $text);
        
    $text preg_replace(array("#\[quote=(.*?)\](.*?)#si""#\[/quote\]#"),
        array(
    "<div class=\"quote\"><i>$1 schrieb:</i><br />",
        
    "$2</div>"), $text);
        return 
    $text;
    }


    ?>

    Einen Kommentar schreiben:


  • DjRay
    antwortet
    Ja sorry da ich mich nicht sogut auskenne frage ich ja hier in php.de

    Deshalb frage ich ja genau an was dies liegt

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Kleiner Hinweis am Rande: SQL Injection Gefahr

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    - Der Location-Header benötigt vollständige URLs
    - ein exit wäre sinnvoll
    - session_start ? Wozu eigentlich, wa?
    - in scripts.inc steht -- was nochmal?
    usw. usw.

    Einen Kommentar schreiben:

Lädt...
X