kostenloser Webspace werbefrei: lima-city


php post übergeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Hi ich möchteeiner Seite eine Variable senden und zwar Ohne Formular! Get kommt auch nicht in Frage also nur Post. Muss ich jetzt ein unsichtbares Textfeld in einem formular oder sowas nehmen, wo dann der Wert drinn steht (was natürlich total doof wäre, weil man css deaktivieren kann, und den Wert dann verändern könnte!) Also mein Anliegen nochmal klar und deutlich:

    Ich möchte einer Seite per Post eine Variable ohne Formular übergeben!

    Wie geht dass? Und falls es nicht geht, was gibt es für Alternativen?? Hoffe ihr kennt euch da aus und könnt mir helfen!!
    MVG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Nutz doch eine Session. Da brauchst du kein Formular.

    http://tut.php-q.net/de/sessions.html

    Beitrag zuletzt geändert: 20.2.2010 17:09:08 von karpfen
  4. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Danke, das hatte ich mir auch überlegt. Falls es nicht anders geht mach ichs mit einer Session aber das wollte ich eigentlich vermeiden. Geht es denn garnicht über post so wie ich das mir oben vorgestellt habe?? MVG
  5. programtools schrieb: Hi ich möchteeiner Seite eine Variable senden und zwar Ohne Formular! Get kommt auch nicht in Frage also nur Post. Muss ich jetzt ein unsichtbares Textfeld in einem formular oder sowas nehmen, wo dann der Wert drinn steht (was natürlich total doof wäre, weil man css deaktivieren kann, und den Wert dann verändern könnte!) Also mein Anliegen nochmal klar und deutlich:

    Ich möchte einer Seite per Post eine Variable ohne Formular übergeben!

    Wie geht dass? Und falls es nicht geht, was gibt es für Alternativen?? Hoffe ihr kennt euch da aus und könnt mir helfen!!
    MVG

    Also von vorn herein. CSS kann man nicht deaktivieren, und CSS ist auch keine Script-/ClientSprache. Ich glaube eher, dass du PHP meinst. Warum willst du das nicht mit GET machen?
    Ich kann dir ja mal ein Beispiel geben:
    <?php if($GET['var'] == '') { 
    echo 'Var ist leer! Gib nicht unnötige var Werte ein!'; 
    }else{
     $db = @new mysqli ('localhost', 'user', 'pass', 'database');
    $sql = 'SELECT spalte1, spalte2 FROM tabelle WHERE wert = "'.$_GET['var'].'"';
    $result = $db->query($sql);
     if(!$result->num_rows) {
      echo 'Falscher Wert! Gib nicht irgendwelche Werte ein!';
     }else{
      echo 'Ergebnis';
     }
    }
    ?>
  6. limabone schrieb:
    Ich kann dir ja mal ein Beispiel geben:
    $sql = 'SELECT spalte1, spalte2 FROM tabelle WHERE wert = "'.$_GET['var'].'"';



    stichwort sql-injections ;)
  7. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Danke erstmal aber
    Im FF kann ich CSS-Styles sehr wohl deaktivieren (keine CSS-Fehler -> Styles deaktivieren -> alle Styles)

    Und es wird in einer Tabelle die Zeile mit der Id = $wert gelöscht. Da wäre es doch doof, wenn der Nutzer einfach mal eine Zahl eingibt die ihm grad in den Sinn kommt, und des dann gelöscht wird! (Ich hätte mich ja am Anfang klarer ausdrücken können, also isses wohl meine Schuld ;)

    Ich zweifle, dass es echt noch ne Lösung gibt, die (angesehen von der Session) Klappt. Falls doch, freu ich mich natürlich immer!!
    MVG
  8. Mach es doch so wie bei Lima, mit nem Löschcode. Wenn ich deinen Beitrag löschen will, dann sieht das so aus:
    http://www.lima-city.de/reply/action:delete/869865/code:eF................oO

    Dieser Code wird beim Seitenaufruf immer neu generiert. Damit verhindert man, dass unautorisierte Personen Beiträge löschen können.
  9. machs doch einfach so:
    formular.php
    <html>
     <head>
      <title>Formular</title>
     </head>
        <body>
         <form action="function.php" method="post">
          <input type="checkbox" name="id" value="20"> Benutzername<br>
          <br>
          <input type="submit" value="Absenden">
         </form>
        </body>
    </html>


    und dann
    function.php
    <?php
    if($_POST['id'] == '') {
    echo 'Keine ID angehakt *Hust*';
    }else{
    // MySQL abfrage
    }
    ?>

    einfacher gehts nicht, ich würds so machen.
  10. @programtools
    ... Also mein Anliegen nochmal klar und deutlich:
    Ich möchte einer Seite per Post eine Variable ohne Formular übergeben!
    ... Hoffe ihr kennt euch da aus und könnt mir helfen!!

    klar doch!
    da hast ein demo von mir mit source :o)
    [mit php kannst so gut wie alles machen. nur kopfstand oder so n bloedsinn nicht.]
  11. Hi,
    ein POST ohne Form kannst du per AJAX machen: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php (und dann ein weinig runter scrollen).
    Das sollte genau so sein wie du es möchtest. Aber auch hier mußt du ja die Variable irgendwo hinterlegen.

    Insgesamt befürchte ich, wirst du dennoch nicht zufrieden sein, denn das was du wahrscheinlich eigentlich willst (nur ein Berechtigter kann löschen) kannst du nur erreichen, wenn du den User indetifizierst und dann prüfst ob er ausreichende Rechte besitzt. Welche Daten dann von der Seite auf welche Art gesendet werden ist eigentlich wurscht ;).
    Gruß
    Manni
  12. @bandi999
    ... ein POST ohne Form kannst du per AJAX machen:...
    ja genau! und man verwendet ein berg muell von javascript
    --
    oder man lernt php ;o)
  13. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Wow also vielen Dank an euch alle erstmal für eure vielen Antworten!!!

    Ich hab mich jatzt für ajax entschieden und ansonsten mach ichs doch über ne session.

    @ czibere:
    Danke für die Mühen! Ich verstehe nur leider nicht wirklich wie das funktionieren soll. Würde aber trotzdem gerne megr darüber erfahren!!
    Könntest du mir das noch mal erklären??

    @ all:
    nochmal vielen Dank für eure vielen Antworten!!

    MVG
  14. @programtools
    ... Könntest du mir das noch mal erklären??
    klar

    also gehen wir die ganze sache schritt für schritt durch.

    die funktionsweise kurz:
    von seite A (http://czibere.lima-city.de/_forum/programtools/post.php) werden an seite B (http://czibere.lima-city.de/_forum/programtools/target.php) post daten geschickt, worauf seite B auf irgendeine art reagiert. die reaktion von seite B wird an seite A zurückgeschickt und dort ausgegeben. das wars auch schon. anders gesagt, das ist quasi ein client/server application: seite A ist der client und seite B der server. noch brutaler: seite A ist dein webbrowser und seite B ist der webserver (die beiden können natürlich auf den selben oder aber auch auf getrennten hosts liegen.)

    wenn ich dein vorhaben genauer kenne, kann ich dir genau sagen wie es gehen soll ;o) (willst es ganz genau wissen, kanns auch pm schicken.)

    zu ajax: was 'modern' ist ist nicht unbedingt das beste. aber das alles ist natürlich deine entscheidung. ajax ist auf alle fälle langsamer und auch unsicherer. (literatur lesen!)
  15. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Ok vielen Dank!
    Ich habe ja einen php / MySQL chat gebastelt. Der lief in 2 Frames, wo das obere das Gespräch angezeigt hat und im Unteren die Sendefunction war. Das Obere wurde über meta alle 2 Secunden aktualisiert. Der Nachteil dabei ist aber, das es auffällt, wenn es immer klickt und die Statusleiste anzeigt, dass die Seite neu geladen wird. Mit Ajax kann ich (was ich jetzt herausgefunden habe) eine Seite einbinden. Ersetze ich jetzt das Frame durch ein Script, das die Seite chat_ausgabe.php jede secunde neu läd, merkt man dafon so gut wi nix. (Außer natürlich, das Eingaben von anderen Usern dazu kommen, aber das soll man ja sehen xD). Mit php ist halt immer das Problem mit der Aktualisierung, was in diesem Falle echt nerven kann. Eventuell habe ich deinen Vorschlag jetzt falsch verstanden aber ich meine da müsste die seite ja auch immer aktualisiert werden.

    P.S. kann ich in einer Seite die per Ajax geladen wird wirklich garkein Javascript nutzen??

    MVG
  16. Hi,
    dank dir werde ich noch zum Javascript Spezialisten ;).
    programtools schrieb:
    P.S. kann ich in einer Seite die per Ajax geladen wird wirklich garkein Javascript nutzen??
    Also so grundsätzlich kann man das nicht sagen. Meine Lieblingssuchmaschine liefert z.B. diese Aussagen hier: http://www.ajax-community.de/javascript/7235-innerhtml-javascript-laden.html.
    Und damit man mir nicht nachsagen kann, ich würde immer nur für andere googlen und auch wenn mein Beispiel nicht so schön ist, wie das von czibere ;) hier mal ein kleiner Test: http://bandi999.lima-city.de/ajax/ajax.html. Das Script auf der mit Ajax geladenen Seite kann über den Button ausgeführt werden. Ich bin schon gespannt welche neuen Infos du uns als nächstes gibst und welche Probleme daraus resultieren :).
    Gruß
    Manni
  17. @programtools
    Ich habe ja einen php / MySQL chat gebastelt.
    ah yooo! wie wärs mit fertig? getestet, funktioniert, kostet nichts! oder doch lieber das rad neu erfinden? (runder wirds nimmer ;o) zum lernen reicht es wenn man fertige progs anguckt/analysiert.

    @bandi999dass man mich nicht falsch versteht: ich habe nichts gegen ajax! dein beispiel geht ja auch! kleiner schönheitsfehler: die nachgeladene seite hört nicht auf sich nachzuladen. eine post-variable sehe ich auch nicht (aber ich kann ja 'fachblind' sein).

    es ist mir zum schluss allerdings unklar geworden, was programtools von der variable in post erwartet? sowas braucht man, um den php-kode zu steuern. welche ist die steuerungsaufgabe???

    Beitrag zuletzt geändert: 22.2.2010 10:51:40 von czibere
  18. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Vielen Dank erstmal und:

    @bandi999:
    xD
    Aber ich möchte den inhalt ja wie in php 'includen' und keine neue Seite öffnen. Genauer gesagt stört mich ja gerade das laden.

    @czibere:
    Naja mir gehts zum einen ums lernen zum anderen um den Spaß beim Programmieren. Außerdem sag ich lieber
    'schau mal das iss zwar nicht so gut aber selbst gemacht' als 'schaumal das ist super und selbst gedownloadet'.
    Und meiner Meinung nach lernt man beim selber machen und selber damit auseinandersetzen viel viel mehr. Dafür ist es natürlich auch viel zeitaufwändiger.

    @all:
    Das mit dem laden hab ich auch schon hingekriegt. Im Vergleich zum Includen hab ich einige Vorteile mit Ajax: Ich kann Variablen an den URL hängen. Doch im Vergleich zum Frame hat es auch einen riesigen Nachteil: wenn ich in der eingebundenen Seite einen refresh durchführe, dann läd die ganze Seite neu und nicht nur die eingebundene (ist ja auch lögisch aber ärgerlich). Dafür habe ich hier wiederum den Vorteil, dass sich die Seite nicht aktualisieren muss bzw. dass man es nichtmehr merkt.

    Fazit: Wie kann ich das machen, dass wen ich in einer per Ajax eingebundenen Seite ein Formular sehde nicht die ganze Seite neu geladen wird, sondern nur die eingebundene??

    MVG



    Beitrag zuletzt geändert: 22.2.2010 16:01:31 von programtools
  19. Hi,

    czibere schrieb:
    @bandi999dass man mich nicht falsch versteht: ich habe nichts gegen ajax! dein beispiel geht ja auch! kleiner schönheitsfehler: die nachgeladene seite hört nicht auf sich nachzuladen. eine post-variable sehe ich auch nicht (aber ich kann ja 'fachblind' sein).
    Nun mein Beispiel bezog sich auf die letzte Frage von programtools die da lautete:
    P.S. kann ich in einer Seite die per Ajax geladen wird wirklich garkein Javascript nutzen??
    Von "post" war da nicht mehr die Rede und die Frage hatte ich in meiner Antwort auch gequotet. Und bevor jetzt so was kommt wie: "Ja aber der Thread hat doch zum Thema..." meine ich, dass es nicht selten vorkommt, das sich ein Thread entwickelt und dies auch hier der Fall ist. Ob denn ggf. ein neuer Thread zu eröffnen ist, ist imho eine philsophische Frage, welche (genau wie die Frage ob man nur in Kleinschrift verwenden sollte) wohl nie abschließend beantwortet wird. Also nichts für ungut...
    Das ewige Laden hatte ich gesehen und es liegt wohl an dem komischen Werbescript auf Lima. Da es mir aber eher um Grundsätzliches ging, dieses Werbescript speziell Lima ist, der sonst so böse IE das Problem nicht hat und noch reichlich Änderungen der Aufgabenstellung zu erwarten waren/sind habe ich mich nicht weiter damit beschäftigt.
    In der Frage steht übrigens auch nichts davon, dass eine Seite per Ajax eingebunden wird, sondern da steht dass eine Seite per Ajax geladen wird ;).

    Fazit: Wie kann ich das machen, dass wen ich in einer per Ajax eingebundenen Seite ein Formular sehde nicht die ganze Seite neu geladen wird, sondern nur die eingebundene??
    Hier kannst du wohl kein Formular verwenden. Mach anstelle des <form> ein <div>, nimm anstelle des Submit-Buttons einen normalen Button und als Action führst du die Ajax Anfrage aus. Dann wird die Seite nicht neu geladen.
    Auch ich fände es übrigens ganz toll, wenn du uns jeweils ein Beispiel mit Erläuterungen geben könntest. Dann sehen wir was du gemacht hast und können wahrscheinlich besser verstehen was du möchtest und im Idealfall sogar weiterhelfen.

    Gruß
    Manni
  20. Autor dieses Themas

    programtools

    programtools hat kostenlosen Webspace.

    Ok Mein Beispiel kommt sofort:

    chat_mysql.php:
    Script zum Verbinden mit der Datenbank



    form_chat_texte.php
    <?php 
    include_once ("chat_mysql.php"); 
      
    echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"chat_style.css\">"; 
    echo "<form action=\"insert_chat_texte.php?user=$_GET[user]\" method=\"post\">"; 
    echo "An: <input size=\"15\" name=\"empfänger\" type=\"text\"> "; 
    echo "Nachricht: <input size=\"24\" name=\"nachricht\" type=\"text\"> "; 
    echo "<input value=\"Absenden\" type=\"submit\"><br>"; 
    echo "</form>"; 
    
    echo "Online: "; 
    $abfrage = "SELECT * FROM online"; 
    $ergebnis = mysql_query($abfrage); 
    while($row = mysql_fetch_object($ergebnis)) 
      { 
      echo "$row->user, "; 
      } 
       
    ?>



    insert_chat_texte.php
    <?php 
    include_once("chat_mysql.php"); 
    if($_POST[nachricht] == "") 
      { 
      include_once ("form_chat_texte.php"); 
      } 
      else 
      { 
      $zeit = time(); 
      if($_POST[empfänger] == "") 
        { 
        $eintrag = "INSERT INTO chat (absender, nachricht, time) 
                    VALUES ('$_GET[user]', '$_POST[nachricht]', '$zeit')"; 
        $eintragen = mysql_query($eintrag); 
        } 
        else 
        { 
        $eintrag = "INSERT INTO chat (absender, nachricht, time, empfänger, status) 
                    VALUES ('$_GET[user]', '$_POST[nachricht]', '$zeit', '$_POST[empfänger]', '2')"; 
        $eintragen = mysql_query($eintrag); 
        } 
        include_once("form_chat_texte.php"); 
      } 
    ?>


    Die Datei form_chat_tete.php möchte ich gerne per Ajax einbinden. Doch wie soll ich das mit dem Formular und dem Eintragen in die Datenbank machen?? MVG
  21. Hi,
    da hammas scho!
    Wenn ich das richtig sehe, dann willst du aus einer PHP Seiter herus mit AJAX eine andere PHP Seite einbinden. Nach meiner Meinung ist das nicht möglich. Ich befürchte du bringst da PHP und Javascript durcheinander. Ich hätte übrigens eher vermutet, dass aus dem Script form_chat_texte.php heraus eine Seite erzeugt werden soll, und von dierer aus dann die Seite insert_chat_texte.php zum Setzen der Einträge aufgerufen wird. Aber so kann man sich täuschen....

    Ich bin nämlich davon ausgegangen, dass du eine HTML Seite hast und von dieser aus per AJAX mit einer PHP Seite kommunizierst, also ein PHP Script aufrufst. Das was du jetzt gepostet hast ist aber eher so wie czibere es vorgeschlagen hat, zumindest im weitesten Sinne. Ich sehe allerdings nicht, wie du so das vollständige Laden der Seiten verhindern kannst.

    Ich wünsche dir, dass noch jemand eine Lösung für dein Problem hat.

    Gruß
    Manni
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!