WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » PHP interpretiert falsch » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

PHP interpretiert falsch
von einstein
c3o schrieb am 22.12.2003 02:58
live Server

wer hat denn was davon gesagt?
von Philipp Gérard
Keiner (außer dir ) redet hier von einem Server, PHP-Anwendungen sollten aber von vornherein so geschrieben werden, dass sie mit E_ALL aktiv keinen Hinweis mehr ausspucken. Dass E_ALL von Hand vom Benutzer aktiviert werden sollte, ist klar.
von c3o
Kein halbwegs professioneller Programmierer würde E_ALL auf einem live Server eingestellt haben, das reißt größere Sicherheitslücken auf als es verhindert, indem bei jedem kleinsten Fehler Details über das Script, Variablennamen, Dateinamen und Codezeilen verraten werden.
von Philipp Gérard
eben
von einstein
Can schrieb am 21.12.2003 15:24
Ja, wie h2o schon sagte, für Sicherheitsfanatiker und Codefetischisten

oder auch der Unterschied zwischen halbwegs professionellen Programmierern und der "ich-kann-auch-schon-php-programmieren" Fraktion
von Can
Ja, wie h2o schon sagte, für Sicherheitsfanatiker und Codefetischisten
von Philipp Gérard
c3o schrieb am 21.12.2003 14:14
Das momentan bei dir eingestellte Level ist was für Testumgebungen für Sicherheitsfanatiker und Codefetischisten


hey! E_ALL gehört sich einfach
von c3o
Stell einfach das Error-Reporting runter.
Das momentan bei dir eingestellte Level ist was für Testumgebungen für Sicherheitsfanatiker und Codefetischisten

Auf jeden Fall ist das besser als lauter @s im Quelltext zu verstreuen.

$_REQUEST bzw $_POST oder $_GET sollte man sich allerdings angewöhnen.
von languitar
Das funktioniert nurm, wenn register_globals angestellt ist und standardmäßig ist das seit PHP 4.3 off. Und in den kommenden Versionen wird das bestimmt irgendwann komplett weg sein.
von danomator
Danke. Das hat mir geholfen.
Reicht es aber nicht, wenn ich einfach folgendermaßen abfrage?

if(isset($aktion)){
if($aktion == "show"){
...
}
}

Sprich $_REQUEST einfach nicht integrier? Also funktionieren tut es auf jeden Fall, genauso wie ich die Fehlermeldung mit einem @ vor der Variablen unterdrücken könnte. Aber spricht man dann noch von einem "korrektem" Code? Jetzt wo es schon angesprochen wird, interessiert mich schon, was ein "korrekter" Code ist, vorallem da auch weniger "korrekte" Codes laufen.

Danke
von einstein
Es handelt sich um das Error Reporting, das in der php.ini eingestellt wird.
Da du dich in deinem Code nicht an die PHP Standards hälst und das error_reporting offensichtlich auf E_ALL steht gibt es eben diese Notices.

Bei korrektem Code, sollte es keine Fehlermeldungen (Notices) mehr geben...

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
<?php
if(isset($_REQUEST['aktion'])) {
if($_REQUEST['aktion'] == "show"){
echo "<b>Aktion</b> ist <b>".$_REQUEST['aktion']."</b>!";
}
}
echo "<a href=\"test.php?aktion=show\">Klick hier!</a>";
?>
von danomator
Hi.

Musste PHP neu auf den Rechner installieren. Habe dies getan und stehe jetzt mit einem Problem dran. Anfangs sollte ich cgi.force_redirect ausschalten. Dies ist mir aber nicht neues gewesen.

Nun aber herrscht folgender Fehler:
Per URL will ich Variablen einen Wert geben, was jeder kennt. Mir wird die Variable aber gleich als fehlerhaft angezeigt, was sich eben ändert, wenn ich auf den Link klcike. Aber normalerweise sollte es keine Fehlermeldung geben. Ich habe für diese Anfrage eine Testdatei erstellt:

Name der Datei: test.php

Code in test.php:
<?php
if($aktion == "show"){
echo "<b>Aktion</b> ist <b>$aktion</b>!";
}

echo "<a href=\"test.php?aktion=show\">Klick hier!</a>";
?>


Ich erhalte immer folgende Fehlermeldung beim Laden dieser Seite:

Notice: Undefined variable: aktion in C:\WINDOWS\DESKTOP\DAN\PROGRAMS\PHP\OMNIHTTPD\HTDOCS\Hopefightaz_Files\GEN\test.php on line 2


Ich verstehe zwar den Fehler, er sollte aber nicht sein! Der Code selbst ist auch nicht falsch, es muss was an meinen Einstellungen für PHP fehlen, dass er diese Fehlermeldung trotzdem anzeigt.


Kann mir da jemand helfen?
Danke,
danomator




---
Auf der Suche nach dem OFF-Schalter muss man viele Hürden überwinden.

Nach oben