Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Problem mit globaler SERVER Variablen - PHP SELF - Datei nicht gefunden

Frage Entwicklung PHP

Mitglied: ChristophD

ChristophD (Level 1) - Jetzt verbinden

02.05.2011 um 15:07 Uhr, 5388 Aufrufe, 6 Kommentare

Halle Freunde,
Es handelt sich bei meinem Beispiel um ein anscheinend veraltetes Skript aus einem Buch, welches ich meinen Bedürfnissen angepasst habe. (Eine Dateneingabemaske für einen Gästebucheintrag) Die eingegebenen Werte sollen nun als Variablen zur Weiterverarbeitung genutzt werden können indem ich via $_POST['name des Formularfeldes'] darauf zugreife.

Mein Code sieht so aus : (BITTE NICHT AUF XSS-Problematik hinweisen! Code ist vereinfacht dargestellt.)

01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
02.
<html> 
03.
<head> 
04.
<title></title> 
05.
</head> 
06.
<body align="center">
01.
<?php 
02.
if (!$_POST['GB_entry_sending'] && !$_POST['name']) { 
03.
 
04.
?>
01.
<style type="text/css"> 
02.
#GB            { position:relative; margin-top:10px; background:url(http://localhost/GB_entrymask1.jpg)no-repeat center; height:400px; width:500px;} 
03.
#GB .name      { position:relative; margin-top:50px; margin-right:70px; } 
04.
#GB .company   { position:relative; margin-top:15px; margin-right:70px; } 
05.
#GB .email     { position:relative; margin-top:15px; margin-right:70px; } 
06.
#GB .title     { position:relative; margin-top:40px; margin-right:70px; } 
07.
#GB .homepage  { position:relative; margin-top:10px; margin-left:190px; } 
08.
#GB .message   { position:relative; margin-top:15px; } 
09.
#GB .submit    { } 
10.
#GB .reset     { } 
11.
</style> 
12.
 
13.
<form method="POST" action="
01.
<?php echo $PHP_SELF ?>
01.
"> 
02.
<div id="GB" align="center"> 
03.
  <input class="name" type="text" name="GB_entry_name" value="" size="35"><br> 
04.
  <input class="company" type="text" name="GB_entry_company" value="" size="35"><br> 
05.
 
06.
  <input class="email" type="text" name="GB_entry_email" value="" size="35"><br> 
07.
  <input class="title" type="text" name="GB_entry_title" value="" size="35"><br> 
08.
  <textarea class="message" name="GB_entry_message" value="" rows="7" cols="56"></textarea><br> 
09.
  <input class="homepage" type="text" name="GB_entry_homepage" value="" size="35"><br> 
10.
  <input class="submit" type="submit" name="GB_entry_submit" value="Send" size="15"> 
11.
  <input class="reset" type="reset" name="GB_entry_reset" value="Reset" size="15"> 
12.
  <input type="hidden" name="GB_entry_sending" value="1"> 
13.
</div> 
14.
</form>
01.
<?php 
02.
} else
03.
echo "Dein Gästebucheintrag wurde erstellt."
04.
05.
?>
01.
</body> 
02.
 
03.
</html>
Mein erwüschtes Ergebnis sollte sein das die eingegebenen Formulardaten nun mit Aufrufen wie diesem als Variablen erreichbar sind:
01.
... 
02.
echo "$_POST['name'] hat einen Beitrag geschrieben."
03.
...


Mein Problem:
Nach Eingabe der Daten und drücken von SUBMIT, erhalte ich eine Fehlermeldung vom Browser:
FEHLER: Datei nicht gefunden.
Die Dateien unter /C:wamp/www/<?php echo $PHP_SELF ?> konnten nicht gefunden werden.

+) Bitte überprüfen Sie die Addresse auf Rechtschreib.... und andere Fehler.
+) Bitte überprüfen Sie ob die Adresse umbenannt, gelöscht oder verschoben wurde.

Erwarten würde ich nach Drücken von Submit aber die Meldung "Dein gB-Eintrag wurde erstellt."



Folgende Einstellungen habe ich bisher verändert (und ebenfalls den Code entsprechend verändert):
PHP-Einstellung safe_mode="off" - keine Veränderung bei der Umstellung von $SERVER['PHP_SELF'] auf $PHP_SELF
short_tag_handle="on" - keine Veränderung bei den PHP Aufrufen von <?php zu <?



Als Hobbyprogrammierer hoffe ich, ich habe mein Problem klar dargestellt und jemand hat die passende Lösung "im Nähkästchen"
Danke schon im Voraus.
Mitglied: Guenni
02.05.2011 um 16:39 Uhr
Hi ChristophD,

eine Anweisung mit ; abschließen:

01.
<?php 
02.
 
03.
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"
04.
 
05.
?>
Und lass dir mal den Quelltext anzeigen, ob nach "action" der Scriptname da steht.

Gruß
Günni
Bitte warten ..
Mitglied: ChristophD
02.05.2011 um 17:00 Uhr
Hallo Günni.
Im Quelltext steht vor und nach drücken von Submit KEIN Scriptname da sondern $_SERVER['PHP_SELF']... exakt so wie es im Original der Datei steht (davor) bzw. die Fehlermeldung (danach).

Das abschließende Semikolon habe ich hinzugefügt aber es hat das Problem auch nicht gelöst (steht übrigens auch im Buch ohne - Vl. gibt es dafür einen Grund... Wissende sind angesprochen ). Ebenfalls habe ich es mit
01.
<form action='<?php echo "($_SERVER[PHP_SELF])"; ?>' method="post">

und
01.
...$action="$_SERVER['PHP_SELF']";
01.
<form action='<?php echo "$action"; ?>' method="post">
versucht. ebenfalls kein Erfolg.
Bitte warten ..
Mitglied: Guenni
02.05.2011 um 17:44 Uhr
Hi Christoph,

wenn im Quelltext $_SERVER['PHP_SELF'] steht, dann wird das Script auch nicht von PHP verarbeitet. Mögliche Fehler:

- falsche Dateiendung, die muß .php sein
- es läuft kein PHP
- es läuft kein Webserver

Gruß
Günni
Bitte warten ..
Mitglied: ChristophD
02.05.2011 um 20:39 Uhr
Hallo Günni,
Danke für den Hinweis. Der Code war ständig einwandfrei, es lag daran das mein Editor die Datei nicht über den Webserver angesprochen hat sondern direkt im Browser übersetzt hat.

Ich glaub ohne Dich wär ich bald verzweifelt auf einer Brücke gestanden Aber es is ja jetz alles gut... Danke dir.
Bitte warten ..
Mitglied: dog
02.05.2011 um 22:37 Uhr
eine Anweisung mit ; abschließen:

Die letzte Anweisung in einem <?php-Block braucht kein Semikolon.
Bitte warten ..
Mitglied: Guenni
04.05.2011 um 09:38 Uhr
Hi dog,

eine Anweisung mit ; abschließen:
Die letzte Anweisung in einem <?php-Block braucht kein Semikolon.

Ja, das ist richtig. In einem reinen PHP-Script ist auch kein abschließendes ?> nötig.

Aber wenn das Semikolon fehlt ist es doch nötig.

Und so weiter . . .

Warum schlafende Hunde wecken?

Gruß
Günni
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...