If($submit) will nicht gehen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
ct-ac
Mitglied
Beiträge: 16
Registriert: 31.12.2004 01:47

If($submit) will nicht gehen

Beitrag von ct-ac »

Hi@all,

Bin langsam am verzweifeln.
Habe eine in phpBB eingebundene Seite.
Diese funktioniert auch.
Nun habe ich eine Abfrage gemacht:

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{
    if ($submit)
    {
     $news_titel = $HTTP_POST_VARS["news_titel"];
     $news_inhalt = $HTTP_POST_VARS["news_inhalt"];
     $timestamp = time();
     $news_tag=date("d.m.Y",$timestamp);
     $news_zeit=date("h:i",$timestamp);
     $news_gesamt = "$news_tag, $news_zeit";

     $news_eintrag = "INSERT INTO news (titel, datum, text) VALUES ('$news_titel', '$news_gesamt', '$news_inhalt')";
     $news_eintragen = mysql_query($news_eintrag);

     echo "News erfolgreich eingetragen";
    }
    else
    {
     echo "
            <form method=\"post\" action=\"test.php\">
            Titel :<br>
            <input type=\"text\" name=\"news_titel\"><p>News:<br>
            <textarea rows=\"12\" name=\"news_inhalt\" cols=\"42\"></textarea><br>
            <br>
            <input type=\"submit\" name=\"submit\" value=\"News eintragen\">
            </form>
          ";
    }
}
else
{
    // Code, wenn kein Benutzer angemeldet ist
}
?>
Wenn ich die Seite aufrufe kommt das Formular.
Fülle ich es jetzt aus und sende es ab kommt trotz der if schleife das Formular wieder und die If($submit) wird gar nicht beachtet.
Mache ich die Afrage in eine Seite die nicht in phpBB eingebunden ist funktionierts.

Wo ist da der Hacken ?
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Also ich habe ja lange nichts mehr in php programmiert, aber was soll denn das für eine if-abfrage sein?

If (Variabe) dann

Was wird denn in der Klammer geprüft?

Evtl meinst du ein isset($submit) oder was auch immer?!
Liebe Grüße
JumpinJack
ct-ac
Mitglied
Beiträge: 16
Registriert: 31.12.2004 01:47

Beitrag von ct-ac »

Da wird geprüft ob das Formular durch den Button submit abgeshcickt wurde.
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Hm das glaube ich nicht. Da steh auf deutsch:

Wenn ($Submit) dann mach das und das.

Aber was oder wie soll $submit sein? Da sehe ich keine Bedinung. Also Versuchs mit isset($submit), aber selbst das muss noch nicht klappen. Hast du die Variable auch am Anfang des Scriptes auch aus den $_post oder $_get Varialben ausgelesen?
Liebe Grüße
JumpinJack
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

selbst wenn das formular funktionieren würde, wäre es eine ganz schlechte idee.
ganz wichtige grundregel: niemals GPC-daten ungeprüft übernehmen - man öffnet sql-injections tür und tor :roll:
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
ct-ac
Mitglied
Beiträge: 16
Registriert: 31.12.2004 01:47

Beitrag von ct-ac »

So jetzt klappt es.

@JumpinJack danke für die Hilfe habe vergessen am Anfang die Variable mit post abzufragen, jetzt funktioniert es. ( mit if(&submit) )

@larsneo wie meinst du das ?
Ich kenne mich mit mySQL noch nicht aus, wie könnte ich die den Überprüfen ?
Oder wie würdest du das jetzt machen ?
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Ja das stimmt wohl. Sag mal wofür steht das C bei GPS-Vars?

btw: Kannst du ein Beispiel zum prüfen zum besten geben? Oder nen Link?
Liebe Grüße
JumpinJack
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

JumpinJack hat geschrieben:Ja das stimmt wohl. Sag mal wofür steht das C bei GPS-Vars?

btw: Kannst du ein Beispiel zum prüfen zum besten geben? Oder nen Link?
hmm
GET
POST
COOKIE

demnach müsste es Cookie sein wenn ich mich nicht irre......

Schau dir das PHP Manual an da findest du auch Infos im Hinblick auf SQL Injektions......

Diesen Daten müssen geschützt werden durch Slashes z.B.
da gibt es die Funktionen mysql_escape_string etc.

Daneben gibts noch PHP Einstellungen wie
magic_quotes_gpc

was ermöglicht:

Code: Alles auswählen

Legt die magic_quotes Einstellungen für GPC (Get/Post/Cookie) fest. Ist diese Einstellung auf on, werden alle ' (einzelne Anführungszeichen), " (doppelte Anführungszeichen), \ (Backslash) und NUL's automatisch mit einem Backslash geschützt.
Grundsätzlich sollte man auf Einstellungen wie magic_quotes_gpc off und register_globals on reagieren......

Bzw. ein eigenes Environment schreiben was diese Einstellungen in Gegenteil simuliert.......
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag von larsneo »

gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Ah....cookie. Ok das leuchtet ein. Danke für die wertvollen Hinweise. Bin zwar momentan an VB aber wer weiß wann php wieder einmal gebraucht wird! :D
Liebe Grüße
JumpinJack
Antworten

Zurück zu „Coding & Technik“