Fehler seit Provider wechsel

  • Themenstarter Themenstarter Blümchen
  • Beginndatum Beginndatum
B

Blümchen

Hallo,

ich verstehe gerade die Welt nicht mehr so ganz. Ich habe ja ein Forum geschrieben bis jetzt ging auch alles ohne wenn und aber seit wir einen neuen Provider haben geht da gar nicht mehr.

Ich rufe das Feld zum schreiben z.B. so auf: /community/neuerthread.php?boardid=19

So dann kommt auch das Feld, wenn ich dann auf abschicken klicke, dann kommt einfach gar nichts. Doch das gleiche Feld wird wieder geladen und das ist ja kappes, denn es sollte eigentlich zum Tread weiter geleitet werden. Selbst nicht mal in der DB wird was eingetragen. Hmm an was kann das denn liegen?

Hier mal der Code:

PHP:
<?php

include("config.php");  // config datei laden
$boardid = $_GET['boardid']; // boardid holen

if(!isset($absenden)) {  // wenn formular noch nicht abgesendet wurde
//echo "<a href=index.php>Zur&uuml;ck zur &uuml;bersicht</a>";
include("config.php");  // config datei laden

    ?>
 <form name="form1" method="post" action="">
 <table width="100%"  border="0">
 <tr>
 <td height="26" align="right" valign="top"><p><strong>Betreff:</strong></p></td>
 <td valign="top"><p>
 <input name="titel" type="text" class="chatfields" size="40" maxlength="200">
 </p></td>
 </tr>
 <tr>
 <td width="43%" height="34" valign="top"><div align="right">
 <p><b>Text:</b> </p>
 </div></td>
 <td width="43%" height="34"><textarea name="post" cols="80" rows="20" wrap="physical" class="chatfields_tall" id="post"></textarea></td>
 </tr>
 <tr>
 <td height="34" colspan="2"><div align="right">
 <input name=absenden type=submit class="chatfields" id="absenden" value=Abschicken>
 </div></td>
 </tr>
 </table>
 </form>
 <?php // Antworten Formular.

} else {  // wenn formular schon abgesendet wurde:




$von = $_SESSION["benutzername"];  // von eingabe holen
$post = $_POST['post'];  // post eingabe holen
$titel = $_POST['titel'];  // tutel eingabe holen
$boardid = $_GET['boardid'];  // threadid holen

$datum = time();  // aktuelles datum holen


if($von != "" AND $titel != "" AND $post != "" AND $boardid != "") {  // &uuml;bnepr&uuml;fen ob von, titel und post nicht leer sind
    mysql_query("INSERT INTO `simple_threads` ( `threadid` , `boardid` ) VALUES ( '', '$boardid')");  // insert befehl f&uuml;r die thread tabelle
    
    $sql = mysql_query("SELECT * FROM `simple_threads` ORDER BY threadid DESC");// select um threadid rauszubekommen
    $row = mysql_fetch_Assoc($sql);  // eine zeile auslesen
    $threadid = $row['threadid'];  // threadid holen
    
    $sql = mysql_query("INSERT INTO `simple_posts` ( `postid` , `threadid` , `von` , `datum` , `post` , `titel` , `ip` )
                        VALUES (
                        '', '$threadid' , '$von', '$datum', '$post', '$titel', '$ip'
                        )");  // mysql eintragen query befehl
    if($sql) {  // wenn eintragen geklappt
        echo "<meta HTTP-EQUIV=\"Refresh\" content=\"0; URL=topic.php?threadid=$threadid\">";
        
    } else {   // wenn eintragen nicht geklappt hat:
        echo "Konnte nicht antowrten. Es ist ein Fehler aufgetreten.";   // fehlermeldung
    };
} else {  // wenn nicht alles ausgef&uuml;llt wurde
    echo "Du musst leider alle Felder ausf&uuml;llen."; // fehlermeldung
};  
};

?>

Gruß Blümchen
 
Stichwort: register_globals
PHP:
if (!isset($absenden))
kann nicht klappen wenn register_globals off ist.

Alles andere besorgst Du Dir aus $_POST, nur das nicht.

Um die Einstellung von register_globals zu testen hab ich mal ein kleines Script geschrieben.

Ich nehme an auf dem alten Server war es on, auf dem neuen ist es off.
 
Hallo,

hmm OK du hast recht, hab mir gerade mal das Script runter geladen und auch auf meinen Webspace geladen. Das kommt nun:

register_globals=off

So nun meine Frage wie kann ich das dann so machen, dass das bei mir hier nun auch geht? Denn ich denke mal nicht dass der Provider das einfach so nur für mich umstellt!

Gruß Blümchen
 
So wie ich das sehe geht es in diesem Script nur um die von mir kopierte Zeile.
Diese aenderst Du einfach in
PHP:
if (!isset($_POST['absenden']))
um, dann sollte es gehen.

Allgemein sollte bei uebergebenen Variablen auf $_POST und $_GET zugegriffen werden.
Damit bist Du auf der sicheren Seite, denn dann ist es dem Script egal ob register_globals on oder off ist.
 
Zurück