GET Variable - mit vorherigen MySQL Connect
Kris
- php
Halli Hallo ...
mir ist ein nerviger Fehler in einem meiner Scripten aufgefallen. Wenn ich eine $_GET['Variable'] in eine IF Abfrage einbaue ... diese jedoch gar nicht existiert - reagiert der PHP Interpreter noch sehr unsensibel und ignoriert diese Variable einfach !
Wenn ich jedoch kurz vorher einen mySQL DB Connect aufbaue und daraufhin er eine $_GET Variable findet die gar nicht existiert fängt er direkt an zu meckern :
Notice: Undefined index: er in /srv/www/htdocs/web25/html/admin/ac_umfrage.php on line xyz
kann mir jemand helfen wie ich das abstellen kann ? Es nervt ziemlich :(
mfg
KRIS
echo $begrüßung;
kann mir jemand helfen wie ich das abstellen kann ?
Um etwas abstellen zu können muss man dessen Ursache kennen. Ich kann sie deiner Beschreibung nicht entnehmen.
Es nervt ziemlich :(
Emotionale Ausbrüche sind einem Computer egal. :-)
Schau doch bitte entweder nochmal genau hin oder zeige uns, was genau du geschrieben hast.
echo "$verabschiedung $name";
Um etwas abstellen zu können muss man dessen Ursache kennen. Ich kann sie deiner Beschreibung nicht entnehmen.
<?php
#Fehler des Logins angeben
if ($_GET['err'] > 0) {echo "
<tr>
<td colspan='2' align='center' class='bblack'>Bitte füllen sie alle Pflichtfelder aus</td>
</tr>"
;}
?>
---
wenn ich das ganze SO lasse, kriege ich KEINEN FEHLER angezeigt !
wenn ich vorher jedoch noch ein "include" einfüge das einen Datenbank Connect aufbaut ... dann erhalte ich immer den vorher angegebenen Fehler !
--> include 'db_connect.php' :
<?php
include 'config.php';
@mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS) or die( "Es liegt ein Datenbankfehler vor ! /n Bitte schreiben sie dem Admin eine EMail");
@mysql_select_db(MYSQL_DATABASE) or die( "Es liegt ein Datenbankfehler vor ! /n Bitte schreiben sie dem Admin eine EMail");
?>
mfg
KRIS
include 'config.php'
Hallo Kris,
ich denke das bei dir die Register Globals auf off stehen, du aber durch eine nidrigen error reporting level die entstehnden Warnungen nicht siehst.
In der config.php, wird sehr wahrscheinlich ein
error_reporting(E_ALL) oder ähnliches den Level hoch setzen das du die Warnungen siehst.
Lösungen:
Entweder mit
error_reporting(E_ERROR); die Warnungen ausblenden oder besser mit
if(isset($_GET['meinevar']) && $_GET['meinevar'] == 'blah') {
}
korrekt prüfen.
Gruß,
ARne
Moin!
#Fehler des Logins angeben
if ($_GET['err'] > 0) {
Du musst Dich so dumm stellen, wie es ein Computer ist, dann klappt das schon:
Wir setzen die leere Variable ein und kommen zu:
Ist nichts größer als Null?
Aha. Ist es nicht... Klar?
Zur SQL-Abfrage. Der wichtige Teil fehlt:
$sql='SELECT was FROM wo WHERE dies='.$_GET['err'].
Es kommt heraus:
'SELECT was FROM wo WHERE dies=' - Wenn Du das der Datenbank schickst meckert die natürlich, weil rechts des Gleichheitszeichens nichts steht. Merke SQL != PHP.
Scheinbar prüfts Du auch die Eingabe in keinster Weise. In Deinem Fall würde ich zu einem schlichten:
$_GET['interger']=$_GET['integer']*1 oder $_GET['interger']= (int) $_GET['integer']
raten. Dann hast Du im Falle, dass
$_GET['integer'] nicht übertragen wurde wenigstes eine hübsche Null drin und im Falle, das böser Text drinsteht, der dir sonst die Datenbank löschen könnte, auch.
Außerdem solltest Du error_reporting(E_ALL) einschalten, um soetwas zu sehen. Also Optimal:
error_reporting(E_ALL);
if (!isset($_GET['wasweissich'])) {
$_GET['wasweissich']=0;
} else {
$_GET['wasweissich']= (int) $_GET['wasweissich'];
}
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hello,
mir ist ein nerviger Fehler in einem meiner Scripten aufgefallen. Wenn ich eine $_GET['Variable'] in eine IF Abfrage einbaue ... diese jedoch gar nicht existiert - reagiert der PHP Interpreter noch sehr unsensibel und ignoriert diese Variable einfach !
Wenn die "IF-Abfrage" gar nicht existiert, ist es doch auch kein Wunder, dass der Interpreter nicht meckert.
*scnr*
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom