myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Webmaster Talk > Entwicklung & Programmierung
Seite neu laden

Dateinamen der PHP-Datei ermitteln

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 12.02.13, 20:15   #1
Jerryoh
Anfänger
 
Registriert seit: Feb 2013
Beiträge: 10
Bedankt: 0
Jerryoh ist noch neu hier! | 0 Respekt Punkte
Standard Dateinamen der PHP-Datei ermitteln

Hallo zusammen,

möchte gerne einem PHP scrypt den Dateinamen ermitteln lassen in der dieser steht.
Leider funktioniert das Beispiel von [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] Website bei meinem scrypt nicht

Mein scrypt

PHP-Code:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Unbenanntes Dokument</title>
</head>

<body>


<?php
if ( 
    empty (
$_GET['vorname']) == TRUE
    
OR
    empty (
$_GET['nachname']) == TRUE
    
)
{
    if (
$_GET['kontrolle'] == 1)
    {
        echo 
"<p><b>Leere Felder</b></p>";
    }
    echo 
'
    <form action="formular-m-anzeige.php" method="GET">
 
    <p>Ihr Vorname:
    <input type="text" name="vorname" id="vorname"
    value=" ' 
$_GET['vorname'] . ' " size="10"
    maxlength="10"/>
    </p>
    
    <p>Ihr Nachname:
    <input type="text" name="nachname" id="nachname"
    value=" ' 
$_GET['nachname'] . ' " size="10"
    maxlength="10"/>
    </p>

    <input type="hidden" name="kontrolle" id="kontrolle" value="1"/>

    <p>Absendebutton:
    <input type="submit" value="absenden" />
    </p>
 
    </form>'
;
}
else
{
    
// beliebige Aktion, z. B. E-Mail senden, DB-Eintrag
    
echo "eingetragener Name: " $_GET['vorname'] . " " $_GET['nachname'];
}
?>


</body>
</html>
Jerryoh ist offline   Mit Zitat antworten
Ungelesen 12.02.13, 21:33   #2
kkhamburg
Profi
 
Benutzerbild von kkhamburg
 
Registriert seit: May 2009
Ort: riding the roos
Beiträge: 1.468
Bedankt: 1.057
kkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punkte
Standard

An den paar Zeilen die du gepostet hast stimmt so gut wie garnichts.

Auch um was für einen Dateinamen es geht erschliesst sich mir nicht.

Also spezifiziere doch mal etwas genauer dein Problem.
__________________

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]


kkhamburg ist offline   Mit Zitat antworten
Ungelesen 12.02.13, 22:30   #3
Jerryoh
Anfänger
 
Registriert seit: Feb 2013
Beiträge: 10
Bedankt: 0
Jerryoh ist noch neu hier! | 0 Respekt Punkte
Standard

Ja also der Dateiname für das im ersten Beitrag gezeigte scrypt lautet formular-m-anzeige.php aus dem habe ich aber den code, der den Dateinamen vom scrypt ermitteln sollte wieder rausgenommen weil es einfach nicht funktionierte und unübersichtlich wurde.

Hab es jetzt noch mahl so geändert, wie ich es aus der Anleitung Interpretiert habe und das Ergebnis ist nun ein anderres. Soll heißen, die Fehler Meldung - weis nicht mehr genau wie die lautette, aber die hatte auf jeden Fall was mit dem PHP_SELF teil zu tun - ist weg.

Oder besser gesagt wurde durch einen neuen ersetzt. In den Feldern ist nun von vornherein eine 1 Ist zwar eigendlich egal weils ja nur zum üben ist aber ne Lösung wäre schon Interessant.

Ja auf jeden Fall hier noch mahl das überarbeitete scrypt das nun zumindest den Dateinamen selber ermittelt.

PHP-Code:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Unbenanntes Dokument</title>
</head>

<body>


<?php

$PHP_SELF 
$_SERVER['PHP_SELF'];

if (empty (
$_GET['vorname']) == TRUE
    
or
    empty (
$_GET['nachname']) == TRUE
    
    
)
{
    if (isset(
$_GET['kontrolle']) == 1)
    {
        echo 
"<p><b>Leere Felder</b></p>";
    }
    echo 
'
    <form action="'
$PHP_SELF .'" method="GET">
 
    <p>Ihr Vorname:
    <input type="text" name="vorname" id="vorname"
    value=" ' 
. !isset ($_GET['vorname']) . ' " size="10"
    maxlength="10"/>
    </p>
    
    <p>Ihr Nachname:
    <input type="text" name="nachname" id="nachname"
    value=" ' 
. !isset ($_GET['nachname']) . ' " size="10"
    maxlength="10"/>
    </p>

    <input type="hidden" name="kontrolle" id="kontrolle" value="1"/>

    <p>Absendebutton:
    <input type="submit" value="absenden" />
    </p>
 
    </form>'
;
}
else
{
    
// beliebige Aktion, z. B. E-Mail senden, DB-Eintrag
    
echo "eingetragener Name: " $_GET['vorname'] . " " $_GET['nachname'];
}
?>


</body>
</html>
Jerryoh ist offline   Mit Zitat antworten
Ungelesen 13.02.13, 04:00   #4
kkhamburg
Profi
 
Benutzerbild von kkhamburg
 
Registriert seit: May 2009
Ort: riding the roos
Beiträge: 1.468
Bedankt: 1.057
kkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punkte
Standard

Du sollstest die als allererstes Mal angewöhnen die Fehlermeldungen nicht zu ignorieren und wenn du schon eine bekommst diese auch mit anzugeben.

Die eins bekommst du, weil du bei value eine PHP-Abfrage eingesetzt hast, nämlich ob die Get-Variablen nicht gesetzt sind.

Wenn du nichts vorgeben willst mach einfach bei value alles zwischen den Hochkommas raus.
__________________

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]


kkhamburg ist offline   Mit Zitat antworten
Ungelesen 13.02.13, 08:17   #5
Jerryoh
Anfänger
 
Registriert seit: Feb 2013
Beiträge: 10
Bedankt: 0
Jerryoh ist noch neu hier! | 0 Respekt Punkte
Standard

Ja genau an dem !isset lag das Problem. DANKE
Hab die halt gesetzt weil mich diese Notice: Undefined index: Meldungen irretieren.
Werde die nun einfach ersteinmahl mit @ unterdrücken.
Jerryoh ist offline   Mit Zitat antworten
Ungelesen 13.02.13, 11:06   #6
kkhamburg
Profi
 
Benutzerbild von kkhamburg
 
Registriert seit: May 2009
Ort: riding the roos
Beiträge: 1.468
Bedankt: 1.057
kkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punkte
Standard

Wenn du lernen willst zu programmieren solltest du als erstes lernen die Meldung richtig zu interpretieren und abzustellen.

Die Meldungen mit einem @ zu unterdrücken ist definitiv NICHT der richtige Weg.

Jede Meldung lässt sich bei richtiger Programmierung ausmerzen.
__________________

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]


kkhamburg ist offline   Mit Zitat antworten
Ungelesen 13.02.13, 17:13   #7
Jerryoh
Anfänger
 
Registriert seit: Feb 2013
Beiträge: 10
Bedankt: 0
Jerryoh ist noch neu hier! | 0 Respekt Punkte
Standard

Ja weil dadurch auch anderre Fehlermeldungen unterdrückt werden, die durch die selbe variable entstehen könnten.

Ist mir schon klar. Aber wenn man !isset oder isset wie in diesem Fall nicht nutzen kann,

in der php.ini keine Fehler abstellen will/sollte und lokal layuten muss,

welcher weg richtig zu Programmieren bleibt dan in diesem Fall noch ?
Jerryoh ist offline   Mit Zitat antworten
Ungelesen 13.02.13, 20:46   #8
kkhamburg
Profi
 
Benutzerbild von kkhamburg
 
Registriert seit: May 2009
Ort: riding the roos
Beiträge: 1.468
Bedankt: 1.057
kkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punktekkhamburg leckt gerne myGully Deckel in der Kanalisation! | 594749 Respekt Punkte
Standard

Wieso kann man isset nicht nutzen ?

Selbstverständlich kann man das nutzen aber nur da wo es Sinn macht.

Du hast das isset an einer Stelle benutzt wo es überhaupt keinen Sinn macht, zumal die Variablen, nach denen du gefragt hast an dieser Stelle niemals gesetzt sein können weil du das wiederum in deinem S***** ausgeschlossen hast. Die 1 in deinen Feldern hat einfach nur wahrheitsgemäss angezeigt das die Variablen nicht existieren. 0 = FALSE, 1 = TRUE. Da du nach !isset gefragt hast, wobei das Ausrufezeichen für not steht bekommst du als Antwort ein TRUE, also 1 zurück.

Programmieren ist wie eine gesprochene Sprache, eben mit anderen Vokabeln und Begriffen.

Eine $_GET-Variable wird per Browser als Anhängsel der URL erzeugt. Schau dir mal, wenn du dein Formular abschickst die URL oben an. Da wirst du deine Eingaben wiederfinden.

Jetzt hast du auch den grund warum dein isset nicht hinhauen kann. Du fragst nämlich die beiden Variablen, die du mit dem Formular erst senden willst schon im Formular ab.

Grundsätzlioch macht es beim programmieren keinen Sinn, irgendwelche Code-Schnippsel
zusammen zu kopieren ohne zu wissen was diese eigentlich tun.

Geh dein S***** Stück für Stück durch und versuche zu verstehen was es eigentlich tut, dann wirst du relativ schnell darauf kommen warum etwas nicht funktioniert bzw. keinen Sinn macht.

In einem Formular mit Benutzernamen und Kennwort macht es übrigens keinen Sinn die Value-Werte mit irgendetwas vorzubelegen, das heisst der Parameter Value kommt nicht zum Einsatz.

Noch abschliessend zu deiner Frage welcher Weg noch bleibt:

Eine Variabe kann erst dann genutzt werden, wenn sie auch gesetzt ist. Da beim ersten Aufruf deines S*****s ausser der $PHP_SELF keinerlei eigene Variablen gesetzt sind wirst du immer eine Notice bekommen wenn du auf Variablen zugreifen willst. Dies tust du aber in den values.

Die Variable PHP_SELF ist obendrein unnütz und evtl. sogar gefährlich. Mit PHP_SELF arbeitet man heute nicht mehr da sie die Gefahr von XSS-Angriffen bietet.

Wenn du in einem S***** den eigenen S*****-Namen abfragen willst mach das besser mit $_SERVER['S*****_NAME'].

Eine bestehende globale Variable in eine lokale Variable zu übernehmen macht auch nur dann Sinn wenn diese loakle Variable dann weiterverarbeitet wrd. Das ist bei dir nicht der Fall also kannst du auch einfach die globale variable in action schreiben.
__________________

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]


kkhamburg ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.


Sitemap

().