kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: HTTP Request an lokale Datei

    geschrieben von dsv1854

    Dass bei lima city allow_url_fopen auf On steht hab ich bereits gesehen.
    Es geht hier um einen anderen Server auf dem das nicht der Fall ist. Mit Javascript kann man natürlich immer etwas trixen, aber das würde ich wenn es geht vermeiden.
    Der Extension Server ist im Prinzip nur eine php Datei, die im Unterverzeichnis extensions liegt.
    Wichtig sind im Prinzip nur diese beiden Dateien:
    /installer.php
    /extensions/Info.php

    Im Installer möchte ich Informationen vom Server bekommen. Die kriege ich durch einen einfachen HTTP Request. (wie schon im ersten Post beschrieben)

    Den Extension Server habe ich nur dort mit drauf kopiert, weil auf diesem Server allow_url_fopen auf Off gestellt ist Und ich versuchen wollte, das durch den lokalen Server zu umgehen.
    Das mit CURL werd ich mal ausprobieren. Mal schaun, obs geht. Danke für den Tipp!
  • in: PHP-Funktion mail()

    geschrieben von dsv1854

    Was meinst du mit html Seite?
    Wenn du eine php Funktion benutzen möchtest ohne PHP zu benutzen ist das etwas widersprüchlich ^^

    Möglich wäre zum Beispiel sowas (nicht besonders schön, sollte aber gehen):

    <html>
    <head></head>
    <body>
    <?php 
    if(!empty($_POST["gesendet"])){
      mail("empf@ng.er", "Formular", print_r($_POST["Formdata"]));
    }
    ?>
    <form method="post" action=""> 
      <input type="hidden" name="gesendet" value="1">
      <input type="text" name="Formdata[Text]">
    </form>
    </body>
    </html>
  • in: HTTP Request an lokale Datei

    geschrieben von dsv1854

    Hey,

    ich hab folgendes Problem:
    Auf einem Server ist in der php.ini allow_url_fopen auf Off gestellt.
    Für ein selbst programmiertes CMS habe ich einen Installer und einen Extension Server gebastelt.

    Der Server ist eine php Datei, die einen HTTP Request bekommt und entweder Quellcode oder
    Extension Informationen ausgibt. Diese Datei befindet sich im Unterordner /extensions.
    Normaler Weise würde ich einfach
    file("http://www.domain.de/extensions/Info.php?Parameter=wert");

    ausführen und hätte das Ergebnis. Geht aber nicht, da das in php nicht erlaubt ist.
    Nun suche ich nach einer Möglichkeit, den HTTP Request an eine lokale Datei zu senden.
    Geht sowas? und wenn ja, wie?
  • in: sqlabfrage schaut nich nach

    geschrieben von dsv1854

    Hey,
    Vorab eine kleine Bemerkung:
    Die Eingaben sind nicht escaped!
    Vor der Query muss unbedingt hoch das hier ausgeführt werden, um sql injection zu vermeiden:
    $nickname = mysql_real_escape_string($nickname);
    $email = mysql_real_escape_string($email);


    Nun zu deinem Problem:
    Es gibt zwei Möglichkeiten:
    Ich fang mal mit der an, die du dir ausgesucht hast:

    $ergebnis = mysql_query("SELECT COUNT(*) AS Anzahl FROM gamer WHERE nickname = '".$nickname."' ");
    $res = mysql_fetch_object($ergebnis);
    
    if($res->Anzahl == 0){
        echo"Nickname frei"; //nur zu Testzwecken ausgeben
    } else {
        $message.= "<p class='error'>Nickname schon vorhanden!</p>";
    }
    
    // Emailadresse
    $ergebnis2 = mysql_query("SELECT COUNT(*) AS Anzahl FROM gamer WHERE email ='".$email."' ");
    $res2 = mysql_fetch_object($ergebnis2);
    if ($res2->Anzahl == 0){
        echo"Email noch nicht belegt";
    } else {
      $message.="<p class='error'>Deine E-Mail-Adresse ist schon vorhanden!</p>"; 
    }


    Das
    AS Anzahl
    ist ein Alias. Dadurch kann man im Resultat in der Spalte Anzahl lesen.
    nach mysql_query muss man immer noch fetchen. Ich mach das immer mit fetch_object, weil ich gerne Objektorientiert arbeite. Man kann aber auch fetch_assoc machen, wenn man will.


    Nun Variante 2 mit mysql_num_rows:
    mysql_num_rows zählt die Anzahl der Zeilen im Ergebnis. Ein "SELECT COUNT(*) ..." hat allerdings IMMER genau eine Zeile, also kann man das so nicht machen. Das geht etwas anders. Man wählt die jeweiligen gamer aus anstatt zu zählen:

    $ergebnis = mysql_query("SELECT * FROM gamer WHERE nickname = '".$nickname."' ");
    if(mysql_num_rows($ergebnis) == 0){
        echo"Nickname frei"; //nur zu Testzwecken ausgeben
    } else {
        $message.= "<p class='error'>Nickname schon vorhanden!</p>";
    }
    
    // Emailadresse
    $ergebnis2 = mysql_query("SELECT * FROM gamer WHERE email ='".$email."' ");
    if(mysql_num_rows($ergebnis2) == 0){
        echo"Email noch nicht belegt";
    } else {
      $message.="<p class='error'>Deine E-Mail-Adresse ist schon vorhanden!</p>"; 
    }
  • in: avg() und count()

    geschrieben von dsv1854

    Hey,

    Ich habs mal mit Subqueries gemacht:

    SELECT teacher, COUNT( * ) AS Anz
      FROM s
      GROUP BY s.teacher
      HAVING Anz > (
        SELECT AVG( x.Anzahl )
          FROM (
            SELECT teacher, COUNT( * ) AS Anzahl
              FROM s
              GROUP BY teacher
          ) AS x
      )


    Das gibt alle Lehrer IDs und die Fächerzahlen aus
    Das kann man dann beliebig mit der t Tabelle joinen

    ich denke mal, das sollte es tun
  • in: MySQL Query richtig formatieren

    geschrieben von dsv1854

    Abgesehen davon, dass die Query nicht funktioniert, wenn Hochkommas in der Eingabe sind ist eine solche Query ein extremes Sicherheitsrisiko!!

    Das Stichwort hier heißt Mysql injection.
    Stell dir mal diese Abfrage vor:

    SELECT * FROM `users` WHERE (`Nick` = '$nick' AND `Password` = '$password')


    Bei normalen Eingaben tut's das, was es soll. Aber was passiert, wenn einer als Passwort nicht nur ein Passwort, sondern das hier eintippt:

    ') OR ('1' = '1


    Dann wird aus der bisherigen Query auf einmal das hier:
    SELECT * FROM `users` WHERE (`Nick` = '$nick' AND `Password` = '') OR ('1' = '1')

    Un ddass das nich gut ist ist wohl klar.

    Deshalb vor jeder Abfrage
    $nick = mysql_real_escape_string($nick);
    $password = mysql_real_escape_string($password);
    $sql = "SELECT * FROM `users` WHERE (`Nick` = '$nick' AND `Password` = '$password')"

Login zum Webhosting ohne Werbung!