Entdecke Fehler im Newsscript nicht

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

  • Entdecke Fehler im Newsscript nicht

    Hallo,
    ich habe als PHP Übung nen kleines (nur eintragen mit passwort, sonst nichts) Newsscript geschrieben.

    Die Anzeige funktioniert (hab mit PHP My Admin ne News hinzugefügt),
    nur mit dem eintragen haperts.

    Hier das Script "news_edit.php":

    PHP-Code:
    include("pass.php");

    echo 
    "Bitte geben sie das Passwort ein:<br>";
    echo 
    "<form action=news_edit.php method=post>";
    echo 
    "<input type=password name=passwort_eingabe size=20><input type=submit value=senden>";
    echo 
    "</form>";

    if (
    $passwort_eingabe == $pass) {
        
    $_SESSION["username"] = "Heike";
        include(
    "mysql_connect.php");
    }

    if (isset(
    $_SESSION["username"])) {
        echo 
    "<form action=news_edit.php method=post>";
        echo 
    "Thema:<input type=text size=20 name=topic><br><br>";
        echo 
    "Text:<textarea name=news cols=20 rows=8></textarea>";
        echo 
    "<input type=submit name=submit value=senden>";
        echo 
    "</form>";
    }

    if (
    $HTTP_POST_VARS['submit'] && isset($_SESSION["username"])) {
        include(
    "mysql_create_news.php");
        echo 
    "News gepostet! <br>\n";
        echo 
    "<a href='news.php'>Zurück</a><br>";

    dazu noch die Dateien mysql_connect.php und mysql_create_news.php

    PHP-Code:
    define('MYSQL_HOST''localhost');    
    define('MYSQL_USER''geht euch nix an');                                 
    define('MYSQL_PASS''das auch nich :P');
    define('MYSQL_DATABASE''usr_web465_1');

    @
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());    
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error()); 
    PHP-Code:
    $sql "INSERT INTO News
            (Titel,Datum,Inhalt)
        VALUES
            (
    $topic,NOW(),$news);";

    mysql_query($sql) OR die(mysql_error()); 
    Mein Problem ist das: Wenn ich das Passwort richtig eingebe kommt wie gewünscht das eingabe formular. Doch wenn ich das abschicke komme ich wieder zur Passwortabfrage zurück.

    Danke schonmal für eure Hilfe
    Zuletzt geändert von Lurnas; 05.01.2006, 20:33.

  • #2
    1) Nimm mal deine Zugangsdaten aus dem Thread.

    2) Testausgaben?

    3) Wird die SID übergeben?

    Kommentar


    • #3
      1) passiert

      2) was meinste damit?

      3) muss ich das bei einer einzelnen Datei auch machen??

      Kommentar


      • #4
        2) na, welchen Teil hast du nicht verstanden. Test oder Ausgabe? Gib halt deine Vars mal aus, um zu testen ob wirklich die erwarteten Daten da sind.

        3) Natürlich. HTTP ist ein zustandsloses Protokoll. Sobald die Datei neu geladen wird, sind alle Vars weg.

        Kommentar


        • #5
          haste auch session_start() benutzt..?? seh ich nämlich net...
          2 meiner pages:

          Kommentar


          • #6
            So, nun sieht mein Code so aus:

            PHP-Code:
            include("pass.php");

            echo 
            "Bitte geben sie das Passwort ein:<br>";
            echo 
            "<form action=news_edit.php method=post>";
            echo 
            "<input type=password name=passwort_eingabe size=20><input type=submit value=senden>";
            echo 
            "</form>";

            if (
            $passwort_eingabe == $pass) {
                
            $_SESSION["username"] = "Heike";
                
            session_start(); // session_start();
                
            include("mysql_connect.php");
            }

            if (isset(
            $_SESSION["username"])) {
                echo 
            "<form action=$PHP_SELF?SID method=post>"//hier mit SID
                
            echo "Thema:<input type=text size=20 name=topic><br><br>";
                echo 
            "Text:<textarea name=news cols=20 rows=8></textarea>";
                echo 
            "<input type=submit name=submit value=senden>";
                echo 
            "</form>";
            }

            if (
            $HTTP_POST_VARS['submit'] && isset($_SESSION["username"])) {
                include(
            "mysql_create_news.php");
                echo 
            "News gepostet! <br>\n";
                echo 
            "<a href='news.php'>Zurück</a><br>";

            mit session_start(); kommt dieser Fehler
            Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /srv/www/htdocs/web465/html/news/news_edit.php:7) in /srv/www/htdocs/web465/html/news/news_edit.php on line 23
            ohne passiert das selbe wie davor...

            PS: stell mich vermutlich an wie der größte newbie

            Kommentar


            • #7
              PS: stell mich vermutlich an wie der größte newbie
              einsicht ist der erste schritt zur besserung

              das session_start(); muss gaaaaaaanz an den anfang. (von jedem skript von dem du auf das $_SESSION array zugreifen willst)
              EDIT:
              und wenn du session_start() richtig benutzt kannstes auch mal ohne das SID probieren. hängt aber von deinem server ab...
              Zuletzt geändert von chrpun; 05.01.2006, 21:05.
              2 meiner pages:

              Kommentar


              • #8
                ups

                nunja, nun gehts, danke euch beiden

                Kommentar


                • #9
                  keine ursache, immer wieder gerne
                  2 meiner pages:

                  Kommentar

                  Lädt...
                  X