link + ?action= ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • link + ?action= ?

    hi, hab gerad mit php angefangen und wollt mal fragen, wie auf üblichen seiten in php dateien anhängsel wie "?action=blablabla?user=etc" entstehen. Habs in keinem tut bisher finden können..

    gruss tamtam

    edit: nochwas, wie kann ich in meiner mysql n passwortgeschütztes feld in einer tabelle erstellen? ich mein es klappt ja auch so if (!$password)$error
    aber es geht doch bestimmt auch über die mysql oder?
    Zuletzt geändert von Tamtam; 04.01.2003, 10:54.

  • #2
    zu deinem ersten:

    PHP-Code:
    <?
    $dir = "content/";

    if(!isset($id))
    {
    $id = "welcome.php";
    include "$dir$id";
    }

    elseif(!file_exists("$dir$id.php")) {
    $id = "error404.php";
    include "$dir$id";
    }

    else
    {
    $id = "$id.php";
    include "$dir/$id";
    }
    ?>
    selbsterklärend, oder?

    info: alle dateien kommen in den order "content".
    startdatei: welcome.php
    error404: error404.php

    aufruf: dateiname.php?id=test (datei test.php muß im order content liegen)
    diese sache ist nicht sehr suchmaschinenfreundlich. deswegen sollte noch eine rewrite rule benutzt werden.

    cu,
    HANSI

    Kommentar


    • #3
      verstehe , nur was hats denn mit rewrite rule auf sich ?

      Kommentar


      • #4
        ganz einfach:

        suchmaschinen mögen nicht so gern: index.php?id=test
        sondern
        http://deine-domain/index/test

        schlag mal bei apache.org nach ...

        cu,
        HANSI

        Kommentar


        • #5
          oder hier ...

          http://www.php-resource.de/forum/sho...threadid=12722
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            @Abraxax: oder so ..

            Kommentar


            • #7
              Original geschrieben von hansi

              elseif(!file_exists("$dir$id.php")) {
              LOL ihr seid ja ne grosse Hilfe, das nachfragen hätt ich mir ja eigentlich sparen können . auf apache.org meinst du da bin ich als anfänger gut aufgehoben? im thread zu rewrite rule versteh ich nur bahnhof.

              Naja dann pirsch ich mich da eben selber dran , nur noch eine letzte frage, wieso hast du an $id noch ein .php gehängt? würde die zeile dann nich so aussehen?

              elseif(!file_exists("content/welcome.php.php"))

              ?

              gruss tamtam

              Kommentar


              • #8
                das hat hansi geschrieben
                aufruf: dateiname.php?id=test (datei test.php muß im order content liegen)
                da wird kein .php übergeben, deswegen dann beim include. beim include kannst du das auch weglassen, aber dann musst es halt übergeben.

                ich würde dir hansi's vorschlag empfehlen.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  hi ,
                  hab jetzt mal n bischen rumgetüftelt und habs mal so probiert:

                  switch ($_REQUEST["action"]) {
                  case "search":
                  include('search.php');
                  break;
                  case "script":
                  include('script.php');
                  break;
                  }

                  nur komm ich nu an einer stelle wieder nicht weiter. Mit diesem code gehts nur einfache Verbindungen zu erstellen wie index?action=search. aber mehrfache hauen irgendwie nicht hin. Um meine language_eng.inc einzubinden hab ich

                  switch ($_REQUEST["lang"]) {
                  case "eng":
                  include('language_eng.inc');
                  break;
                  }

                  geschrieben, das funzt auch. aber sobald ich beide kombinieren will wie zb. index?action=script?lang=eng gehts nich mehr. Sobald ich einen anderen Link klicke, ists vorbei mit der englischen Sprache.

                  Gibts irgendwie ne Möglichkeit Variablen so zu verändern dass sie nach refresh der Seite weiterhin verändert sind? Könnte ich nämlich die englische language.inc über variablen dauerhaft einbinden würde das all meine probleme lösen.

                  gruss
                  tamtam

                  Kommentar


                  • #10
                    Original geschrieben von Tamtam

                    ... geschrieben, das funzt auch. aber sobald ich beide kombinieren will wie zb. index?action=script?lang=eng gehts nich mehr. Sobald ich einen anderen Link klicke, ists vorbei mit der englischen Sprache.
                    ...
                    Bei Übergabe von mehreren Vars musst du das so machen:

                    index.php?action=script&lang=eng

                    Nicht
                    index.php?action=script?lang=eng
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      Original geschrieben von Wotan
                      Bei Übergabe von mehreren Vars musst du das so machen:

                      index.php?action=script&lang=eng

                      Nicht
                      index.php?action=script?lang=eng
                      jepp so gehts danke . noch ein letztes, wie kann die aktive url gespeichert werden?
                      Ich bin in index.php, klicke dort auf index.php?action=script, aber in meinem Link zur language steht immer noch index.php?lang=eng und bei klick auf dieseen link verschwindet natürlich ?action=script wieder.
                      Wie schaff ichs dass die links dynamisch werden?

                      gruss
                      tamtam

                      Kommentar


                      • #12
                        lies dir die beiden tuts mal durch.

                        http://www.php-resource.de/tutorials/read/9/1/

                        http://www.php-resource.de/tutorials/read/7/1/

                        letzeres ist wahrscheinlich besser für dich. du musst es nur etwas modifizieren.
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          alles klar danke. was in beiden tuts drin steht, ist nun klar, aber dennoch will er sich nicht eine variable merken und zusätzlich erhalte ich noch eine fehlermeldung

                          Warning: Cannot send session cookie - headers already sent by (output started at C:\Studium\server\www\index.php:5) in C:\server\www\index.php on line 26

                          ich hab mal eine variable namens active_language deklariert. dann gleich zu programmbeginn ein if:

                          if ($active_language=='english')
                          {
                          include "language_eng.inc";
                          }
                          else {
                          include "language.inc";
                          }

                          während des programms wird durch einen link die variable active_language auf englisch gesetzt. wenn ich nun aber einen anderen link klicke, ist die variable wieder nicht initialisiert, heisst die variable wird nicht gespeichert und somit ist das if zu programmbeginn sinnlos.


                          wenn mir jemand nur ein stückchen code zeigen würde wie es gehen könnte eine zweite language.inc dauerhaft über die erste zu schreiben, wär ich sehr dankbar.
                          am besten ein kurzer beispielcode wo ein user dauerhaft eine bereitsincludierte datei mit einer neuen "überschreieben" kann.

                          gruss
                          tamtam

                          p.s.: ich hab gestern echt alles probiert noch bis 4 uhr heut früh, aber es wollt einfach net .

                          Kommentar


                          • #14
                            Warning: Cannot send session cookie - headers already sent by (output started at C:\Studium\server\www\index.php:5) in C:\server\www\index.php on line 26
                            die fehlermeldung posten hier jeden tag mindestens drei user, die zu faul zum suchen waren.

                            vor dem senden eines headers (und auch ein cookie ist ein header) darf keinerlei sonstiger html-output gesendet worden sein, selbst schon ein leerzeichen ist zu viel!
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Original geschrieben von wahsaga
                              die fehlermeldung posten hier jeden tag mindestens drei user, die zu faul zum suchen waren.

                              vor dem senden eines headers (und auch ein cookie ist ein header) darf keinerlei sonstiger html-output gesendet worden sein, selbst schon ein leerzeichen ist zu viel!
                              whow das geht ja. danke

                              Kommentar

                              Lädt...
                              X