register_globals Deaktiviert

crashx

Erfahrenes Mitglied
Hallo zusammen, Ich mal wieder.

mein WebSpace Anbieter hat mir eine Mail geschickt in der Er mir sagt, das register_globals deaktiviert wird.

Für mich heisst das auf Deutsch das jetzt ein paar sachen nicht mehr Funktionieren.
Da ich Leider noch immer nicht über genügend PHP erfahrung verfüge, hoffe ich von Euch ein wenig Hilfe zu bekommen.

Es geht darum wie Ich eine Funktion wie den Eintrag in eine MySql DB richtig schreiben muss das es auch mit register_globals off Funktioniert.

Bisher habe Ich das immer so gemacht:

PHP:
<?
include("../dbconnect.php");
$eintrag = "INSERT INTO menu (vl1, vl2, m1l1, m1l2, m1l3, m1p1, m2l1, m2l2, m2l3, m2p1, m3l1, m3l2, m3l3, m3p1) 
			VALUES ('$vl1', '$vl2', '$m1l1', '$m1l2', '$m1l3', '$m1p1', '$m2l1', '$m2l2', '$m2l3', '$m2p1', '$m3l1', '$m3l2', '$m3l3', '$m3p1')";

$eintragen = mysql_query($eintrag);
 
$sql = 'OPTIMIZE TABLE `auto`';
echo mysql_error();
?>

Nur leider wird in die DB nichts Geschrieben :(
Fehler meldet es mir auch keine

Ich danke euch jetzt schon für die Hilfe.
 
Die Daten kommen von der Seite: tm_edit.php und werden so übergeben:

PHP:
<form method="POST" action="tm_edit_send.php">
 
Das heisst also für mich, es müsste so aussehen?

PHP:
 <form method="$_POST" action="tm_edit_send.php">

Sehe ich das richtig?
 
crashx hat gesagt.:
Das heisst also für mich, es müsste so aussehen?

PHP:
 <form method="$_POST" action="tm_edit_send.php">

Sehe ich das richtig?

Nein, nicht ganz:
Es muss schon so heißen.
Code:
 <form method="POST" action="tm_edit_send.php">

In deinem anderen PHP Script greifst du dann so auf die Variablen zu: $_POST['Variable'].

mfg
forsterm
 
Nein, im Formular muss nichts verändert werden. Jedoch das verarbeitende Skript – in deinem Fall das Skript „tm_edit_send.php“ – muss entsprechend angepasst werden, beispielsweise:
PHP:
<?php

	include '../dbconnect.php';
	$query = '
		INSERT INTO
		        `menu`
		  SET
		        `vl1`  = "'.mysql_real_escape_string($_POST['vl1']).'",
		        `vl2`  = "'.mysql_real_escape_string($_POST['vl2']).'",
		        `m1l1` = "'.mysql_real_escape_string($_POST['m1l1']).'",
		        `m1l2` = "'.mysql_real_escape_string($_POST['m1l2']).'",
		        `m1l3` = "'.mysql_real_escape_string($_POST['m1l3']).'",
		        `m1p1` = "'.mysql_real_escape_string($_POST['m1l1']).'",
		        `m2l1` = "'.mysql_real_escape_string($_POST['m2l1']).'",
		        `m2l2` = "'.mysql_real_escape_string($_POST['m2l2']).'",
		        `m2l3` = "'.mysql_real_escape_string($_POST['m2l3']).'",
		        `m2p1` = "'.mysql_real_escape_string($_POST['m2p1']).'",
		        `m3l1` = "'.mysql_real_escape_string($_POST['m3l1']).'",
		        `m3l2` = "'.mysql_real_escape_string($_POST['m3l2']).'",
		        `m3l3` = "'.mysql_real_escape_string($_POST['m3l3']).'",
		        `m3p1` = "'.mysql_real_escape_string($_POST['m3p1']).'"
		';
	mysql_query($query);

	$query = '
		OPTIMIZE TABLE
		        `auto`
		';
	echo mysql_error();

?>
 
Aha,

@Gumbo
Ist das die Schreibweise für einen DB Eintrag, wo register_globals off gesetzt ist?
Das heisst wen ich etwas Eintragen, Ändern oder löschen will muss ich das ab jetzt immer so
PHP:
$query = '
        INSERT INTO 
                `test` 
          SET 
                `spalte1`  = "'mysql_real_escape_string($_POST['einzutragendedaten']).'", 
                `spalte2`  = "'.mysql_real_escape_string($_POST['irgendeintext']).'"
                
        '; 
    mysql_query($query);

Schreiben und nicht so
PHP:
$eintrag = "INSERT INTO test (spalte1, spalte2)  
            VALUES ('$einzutragendedaten', '$irgendeintext')

$eintragen = mysql_query($eintrag);
 
Zuletzt bearbeitet:
Ist das die Schreibweise für einen DB Eintrag, wo register_globals off gesetzt ist?
Die Schreibweise der Datenbankabfrage, also die Schreibweise mit SET-Klausel, nicht. Ich benutze diese Schreibweise nur, da sie übersichtlicher ist als die Schreibweise mit VALUES-Klausel. Die Konstrukte mit der mysql_real_escape_string()-Funktion und $_POST['foobar'] solltest du jedoch auch Sicherheitsgründen einhalten.
 
übersichtlicher ist deine Schreibweise allemal,
noch eine kleine andere frage:

Wen ich mittels POST einen Wert an eine seite übergebe, und den wert dan einer Variable zuweisen möchte, geht das dan so?

Code:
<input type="text" name="testfeld" size="20" value="hallo">
PHP:
$test = $_POST['testfeld'];
 
Zurück