kostenloser Webspace werbefrei: lima-city


Spalteninhalt als Varibale speichern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    So da bin ich mal wieder, heute brauche ich mal nen Denkansatz..

    Folgendes „Problem“

    Ich habe eine bestehende Datenbankabfrage, mit dieser wird geprüft ob die IP und „GangID“ eines Nutzers in der DB hinterlegt sind.
    Nun möchte ich den sich daraus ergebenden Namen ermitteln.

    Der Name ist mit in der DB-Tabelle hinterlegt bei jedem Nutzer.

    Ich habe also die
    IP
    und die
    gangid
    eines User´s, diese werden in der DB-Tabelle gefunden und mir sollte dann der Name am besten in eine Variable geschrieben werden, diesen brauche ich dann um eine weitere Prüfung durchzuführen. ( später dann wenn das hier geht ;)) Da durch evtl. IP dopplungen mehr als 1 Name da sein könnte muss es wohl in ein array, denke ich.

    Ich weiß hier nur leider nicht wie ich ansetzen soll.
    Hier mal die Abfrage wie Sie derzeit läuft

    Mit der ersten Abfrage wird der besagte Datensatz geprüft, hier müsste irgendwie der Name ermittelt werden.
    Bei der 2ten Abfrage wird dann schon der eigentliche Inhalt der Ausgabe ausgelesen.

    //-------------------------------------------------------------------
    // Prüfen ob IP hinterlegt ist und GangID stimmt ///////////////////
    //-------------------------------------------------------------------
    $check = mysql_query("SELECT * FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'") 
    or die (mysql_error());
    if(mysql_num_rows($check ) >= 1){
    
    //-------------------------------------------------------------------
    // Ausgabe der Werte abrufen und array erzeugen ////////
    //-------------------------------------------------------------------
    $abfrage = "SELECT * FROM $stadt WHERE kw_gangid='$gid' ORDER by kw_wert DESC";
    $loesung = mysql_query($abfrage) or die(mysql_error());
    while ($row = mysql_fetch_array($loesung, MYSQL_ASSOC)) {
    
    // hier kommen weitere Abfragen und die eigenltiche Ausgabe, 
    //das lasse ich hier mal weg, da ich denke das es
    //nicht benötigt wird


    Ich hoffe man versteht irgendwie was ich meine. Das Ganze soll am Ende eine Sicherheitsüberprüfung sein ob ein Nutzer
    die Daten sehen darf oder nicht.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. wenn du nur den wert eines bestimmten Datensatzes haben möchtest kannst du es so machen:
    $wert=mysql_fetch_row(mysql_query("SELECT name FROM user WHERE id=' ".$id." ' "));
    $der_wert=$wert[0];


    mysql abfrage muss natürlich etwas angepasst werden

    hoffe habe dich jetzt nicht falsch verstanden
  4. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Ne ganz so nicht.

    Ich habe vom User in der DB unter anderen Name, GangID, Ip, Datum ectr. Diese Daten hinterlegt der User selber.

    Der User möchte nun eine bestimmte Ausgabe sehen ( bezieht sich auf eine tabelarische Ausgabe ), wenn er diese Aufruft stehen mir vom User nur die
    IP
    und die
    GangID
    zur Verfügung, anhand dieser möchte ich ermitteln welcher Name dazu gehört.
  5. g****e

    Das von kdhdamoria sollte eigentlch funktionieren. Du selectest nur den Namen und wertest diesen dann aus. Oder was stimmt daran nicht?

    Kannst du vllt auch den Hintergrund geben, warum du das möchtest? Ich kann mich nicht vorstellen, wozu du des noch brauchst. du kannst mit dem AssocArray direkt das Template befüllen, bzw die Tabelle usw erstellen.

    Liebe Grüße
  6. meine Code gibt doch genau den Namen zurück, der in der Varibale $der_wert gespeichert und in der mysql Abfrage kannst du dann schreiben: ...WHERE gangid='$gangid' AND ip='$ip'.
  7. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Ok ich muss mich entschuldigen, es geht selbstverständlich so!!

    Beim 2ten Denkansatz habe ich es dann verstanden, ich habe mich da auf einen anderen Ansatz versteift der so nicht nötig ist.

    Stimmt natürlich, wenn ich nur den Namen selecte und prüfe ob IP und GangID passen ist es ja das Ergebnis was ich möchte.



    mal zum Hintergrund, dann versteht man es vieleicht und jemand hat eine alternative Idee.

    Die Ausgabe der Daten erfolgt über Image create als Bild (png)

    Diese Ausgabe kann rein Theoretisch jeder, der den Link hat Aufrufen.
    Es soll aber nur der User Einblick in die Daten erhalten, der auch selber eingetragen ist.

    Während der Ausgabe kann ich den Namen des User aber nicht direkt auslesen, mir stehen eben nur die IP und die GangID zur Verfügung.

  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    aff3m1tw4ff3 schrieb:
    Während der Ausgabe kann ich den Namen des User aber nicht direkt auslesen, mir stehen eben nur die IP und die GangID zur Verfügung.
    Dir ist aber hoffentlich schon klar, dass sich die IP eines Users jederzeit ändern kann? Dann würde es dein System schon durcheinanderhauen... sinnvoller wäre es hier ein Login-System zu bauen mit dem du die User sicher identifizieren kannst anstatt auf IP-Adressen zurückgreifen zu müssen.
  9. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Ja das weiß ich. Die User wissen auch worauf Sie sich einlassen. Bei IP wechsel müssen Sie Ihre Daten erst mit der neuen IP eintragen bevor Sie wieder eine Ausgabe erhalten.

    Einen extra Login brauche ich dafür nicht machen, auch wenn er sicherer ist, das wäre dem Nutzer in diesem Fall zuviel aufwand.
    Darum versuche ich ja auf mehrere Faktoren zu prüfen.

    hackyourlife das ist die Ausgabe zu dem Javascript Button bei dem Du mir so toll geholfen hast ;)

    Beitrag zuletzt geändert: 12.9.2012 21:52:42 von aff3m1tw4ff3
  10. wenn du kein loginsystem haben mögchtest kannst du es ja mit htaccess machen, dass ich schnell und einfach gemacht und ruft bei den meisten Browsern nur das erste mal ein "login feld" aus.
  11. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    aff3m1tw4ff3 schrieb:
    Einen extra Login brauche ich dafür nicht machen, auch wenn er sicherer ist, das wäre dem Nutzer in diesem Fall zuviel aufwand.
    Darum versuche ich ja auf mehrere Faktoren zu prüfen.
    Wenn ich den nächsten Absatz von dir nicht gelesen hätte: verwend zumindest ein Cookie, das ist in Verbindung mit der IP und GangID schonmal sicherer...

    aff3m1tw4ff3 schrieb:
    hackyourlife das ist die Ausgabe zu dem Javascript Button bei dem Du mir so toll geholfen hast ;)
    Nachdem ich das aber gelesen habe: verwend ein Supercookie... das in Verbindung mit der IP und der GangID ist auch sicherer als wenn du dich nur auf die IP und GangID verlassen würdest.

    kdhdamoria schrieb:
    wenn du kein loginsystem haben mögchtest kannst du es ja mit htaccess machen, dass ich schnell und einfach gemacht und ruft bei den meisten Browsern nur das erste mal ein "login feld" aus.
    aber das ist bei GreaseMonkey-Scripten mit AJAX-Requests wie in diesem Fall auch nicht das Wahre (wenn das überhaupt funktioniert)...
  12. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Supercookie? Ich werde wohl mal Google quälen müssen, dank dem Wikki Link weiß ich schonmal was das ist.
    Hab ich heute das erste mal gehört.

    Ich denke mal setzen kann man den wie nen normalen Cookie bei der Datenspeicherung.
    Also müsste ich Ihn über Javascript setzen.

    Das muss ich mir jetzt mal genau anschauen, ich schreie wenn ich festhänge :megarofl:

    Zum Thema loginsystem:

    auch wenn es umsetzbar wäre, würden die User es nicht wollen. Die Nutzer sind Quasi etwas Faul, es muss alles einfach ohne weitere Eingaben gehen.
  13. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    aff3m1tw4ff3 schrieb:
    Ich denke mal setzen kann man den wie nen normalen Cookie bei der Datenspeicherung.
    Also müsste ich Ihn über Javascript setzen.
    Kurze Erklärung:

    Die Verwendung ist ähnlich wie bei einem normalen Cookie, nur wird dieses ausschließlich clientseitig gespeichert, kann also auch nur mit JavaScript gelesen und geschrieben werden.

    Maximale Größe: 5-10MB, abhängig vom verwendeten Browser.

    W3: webstorage (genauere Beschreibung)
  14. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Ok dann kann ich das so nicht nutzen, da nicht jeder der die Ausgabe sehen soll auch den Scriptbutton nutzt.

    Zur Erklärung:

    Die Daten werden unter anderem über JavaScript ( der Button ) eingetragen. Der Nachteil dabei ist das der User die Daten
    ja ändern könnte die er sendet. Das Script wird ja auf dem Rechner des Nutzers ausgeführt.

    Dazu kommt das nicht jeder Nutzer seine Daten über diesen JS Button sendet sondern auch über einen "manuellen Bereich".
    Manche wollen nicht auf Scripte zurück greifen, darum die "2te" Möglichkeit zum Eintragen.

    Jede "Benutzergruppe" hat einen eigenen "manuellen Eingabebereich" der auch durch ein PW geschützt wird.

    Und beim schreiben kommt mir eine Idee, eigentlich muss nur jeder Nutzer aus diesem manuellen Bereich einen Wert senden auf den ich dann prüfen kann. Quasi eine Verifizierung hinterlegen die nicht über den Javascript Button geändert wird, sondern nur aus diesem Bereich eingetragen werden kann.

    Das muss ich mal kurz überdenken.




  15. Eine weitere Möglichkeit wären Sessions.
    Wenn der User eine andere Seite aufruft/seine Daten eingibt, speicherst du diese Informationen serverseitig in der Session. Wenn ein User dann das Bild oÄ. aufruft, kannst du auf diese Informationen zugreifen.

    Vorteil:
    geht auch, wenn der User keine Cookies aktiviert hat
    die ganze Session muss nicht bei jedem Seitenaufruf hin und her übertragen werden
    überlebt IP-Wechsel

    Nachteil:
    Session laufen je nach Servereinstellung ca. nach 20Minuten bis mehrere Stunden ohne Erneuerung (zB. bei einem Seitenaufruf auf deiner Homepage) ab
  16. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    wolkenlos0 schrieb:
    Vorteil:
    geht auch, wenn der User keine Cookies aktiviert hat
    die ganze Session muss nicht bei jedem Seitenaufruf hin und her übertragen werden
    überlebt IP-Wechsel
    Und wie glaubst du funktioniert eine Session? Woher glaubst du weiß der Server wer wer ist? Dafür setzt er entweder ein Cookie mit einer Session ID oder die Session ID muss immer per GET mitgegeben werden was hier schon mal wegfällt.
  17. Stimmt, das mit dem GET habe ich übersehen.
    Generell finde ich verwenden von Sessions einfacher und der User kann sie nicht so einfach manipulieren, wobei das sicher auch Geschmacksfrage ist.
  18. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    so endlich mal wieder Zeit hier weiter zu machen. Ich habe es jetzt mal so gemacht wie hier vorgeschlagen. Natürlich angepasst.

    kdhdamoria schrieb:

    $wert=mysql_fetch_row(mysql_query("SELECT name FROM user WHERE id=' ".$id." ' "));
    $der_wert=$wert[0];



    Leider wird der Name nicht in die Variable gepackt. Wenn ich mir den Namen ausgeben lasse ist die Variable leer.
    Wenn ich
    $name = $check[0];
    in
    $name = $check;
    ändere gibt er den Namen als
    Resource ID3
    aus.

    Hier mal der "Vollständige" Code. Es wird vorher noch das PHP Image definiert, aber das sollte hierbei ja irrelevant sein. Zeile 37 bis 47 sind wohl die Entscheidenden Zeilen. Im ersten Select wird der Name anhand der IP und GangID bestimmt und im 2ten Select wird in einer weiteren Tabelle geprüft ob der Name dort auch existent ist.

    // ENDE AUFBAU PHP IMAGE
    
    
    //-------------------------------------------------------------------
    // Ermitteln der IP /////////////////////////////////////////
    //-------------------------------------------------------------------
    $ip = getenv('REMOTE_ADDR');
    
    
    //-------------------------------------------------------------------
    // Start verbindung ////////////////////////////////////////
    //-------------------------------------------------------------------
    include("connect.inc.php"); 
    
    $dbverbindung = mysql_connect ($host, $user, $password);
    
    //-------------------------------------------------------------------
    // Datenbank wählen ////////////////////////////////////////////////
    //-------------------------------------------------------------------
    $db_sel = mysql_select_db( pennereck_de );
     
    
    //-------------------------------------------------------------------
    // Namen anhand von IP und Gangid in Variable speichern /////////////
    //-------------------------------------------------------------------
    $check = mysql_query("SELECT kw_name FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'")
     or die (mysql_error());
    $name = $check[0]; 
    
    $user=mysql_fetch_row(mysql_query("SELECT kw_name FROM $stadt WHERE ip=' ".$ip." ' "));
    $username=$user[0];
    
    if(mysql_num_rows($username) >= 1){
    
    
    
    //-------------------------------------------------------------------
    // Ausgabe der Werte abrufen und array erzeugen ////////
    //-------------------------------------------------------------------
    $abfrage = "SELECT * FROM $stadt WHERE kw_gangid='$gid' ORDER by kw_wert DESC";
    $loesung = mysql_query($abfrage) or die(mysql_error());
    while ($row = mysql_fetch_array($loesung, MYSQL_ASSOC)) {
    	
    //-------------------------------------------------------------------
    //Prüfen ob Wert angezeigt werden soll ////////
    //-------------------------------------------------------------------
    if ($row['vali'] == '1') {
        $datenarray = explode(" ");
        $row[kw_wert] = $datenarray[0]."****.**";
    	$row[kw_att] = $datenarray[1]."***";
    	$row[kw_def] = $datenarray[2]."***";
    }
    
    
    //-------------------------------------------------------------------
    // Ausgabe in Variable speichern ////////////////////////////
    //-------------------------------------------------------------------
    $ausgabe1 .= "$row[date] " . str_pad($row['boost'], 2, '-', STR_PAD_LEFT) . " 
    // gekürzt da sonst zu lang für Lima post ;)
    
    }
    
    //-------------------------------------------------------------------
    // Ladezeit berechnen ////////////////////////////
    //-------------------------------------------------------------------
    $endzeit=explode(" ", microtime());
    $endzeit=$endzeit[0]+$endzeit[1];
    $ladezeit="in ".round($endzeit - $startzeit,6)." Sek geladen";
    
    //-------------------------------------------------------------------
    // Datum und Uhrzeit + 7200sec ////////////////////////////
    //-------------------------------------------------------------------
    $timestamp = time()+(7200);
    $datum = date("d.m.Y",$timestamp);
    $zeit = date("H:i",$timestamp);
    $datum="Am ".$datum." um ".$zeit." Uhr";
    
    //-------------------------------------------------------------------
    // Start eigentliche Ausgabe in der MotD ////////////////////////////
    //-------------------------------------------------------------------
    sendimagetext ("$ausgabe1
    $ladezeit
    $bild2");
    }
    
    //-------------------------------------------------------------------
    // Wenn keine Werte gefunden werden ////////////////
    //-------------------------------------------------------------------
    
    else
    {
    sendimagetext ("$fehlerinfo");
    }
    
    /* entleeren + schliessen */
    mysql_free_result($result);
    mysql_close($dbverbindung);
    
    //-------------------------------------------------------------------
    // Das bittere Ende /////////////////////////////////////////
    //-------------------------------------------------------------------


    Egal was ich mache, ich bekomme am Ende immer das else(wird normal ausgegeben wenn keine Werte in der DB gefunden werden) als Ausgabe.
    else
    {
    sendimagetext ("$fehlerinfo");
    }



    TANTE EDIT!!


    Hab es nun derzeit so:

    $user=mysql_fetch_row(mysql_query("SELECT kw_name FROM $stadt WHERE ip=' ".$ip." ' "));
    $username=$user[0];


    Die Variable
    username
    bleibt aber leer.


    Vieleicht hat ja jemand einen Denkanstoß für mich was ich nu wieder falsch mache.

    Danke schon mal und ne schöne Woche euch.


    Beitrag zuletzt geändert: 17.9.2012 15:20:08 von aff3m1tw4ff3
  19. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    aff3m1tw4ff3 schrieb:
    $db_sel = mysql_select_db( pennereck_de );
     
    
    //-------------------------------------------------------------------
    // Namen anhand von IP und Gangid in Variable speichern /////////////
    //-------------------------------------------------------------------
    $check = mysql_query("SELECT kw_name FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'")
     or die (mysql_error());
    $name = $check[0]; 
    
    $veri = mysql_query("SELECT name FROM kw_veri WHERE name='$name' AND gangid='$gid'")
     or die (mysql_error());
    if(mysql_num_rows($veri ) >= 1){
    ...
    Du hast da ein paar Fehler im Code...

    pennereck_de
    ist vermutlich nicht als Konstante definiert worden... → mach einen String draus oder wenn das eine Variable ist ein
    $
    davor

    • beim
    $check
    : dort sollte vielmehr sowas stehen:
    $check = mysql_query("SELECT kw_name FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'")
     or die (mysql_error());
    $check = mysql_fetch_array($check); // ← das fehlt
    $name = $check[0];

    • Wo wird
    $gid
    definiert?
  20. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    hackyourlife schrieb:

    ? Wo wird
    $gid
    definiert?


    Wird in der connect mit definiert.

    include("connect.inc.php");


    Dort werden

    $stadt = 'berlin';
    und
    $gid = "xyz";
    definiert


    Tante Edit:

    ok der Name wird jetzt ausgelesen und auch in die Variable gepackt:

    //-------------------------------------------------------------------
    // Namen anhand von IP und Gangid in Variable speichern /////////////
    //-------------------------------------------------------------------
    $check = mysql_query("SELECT kw_name FROM $stadt WHERE ip='$ip' AND kw_gangid='$gid'")
     or die (mysql_error());
    $check1 = mysql_fetch_array($check); // ← das fehlt
    $name1 = $check1[0];
    //-------------------------------------------------------------------
    // Prüfen ob Name verifiziert wurde /////////////
    //-------------------------------------------------------------------
    $veri = mysql_query("SELECT name FROM kw_veri WHERE name='$name1' AND gangid='$gid'") or die (mysql_error());
    if(mysql_num_rows($veri) <= 1){sendimagetext ("veri fehler");
    }


    Nun muss ich Ihn nur in der 2ten Tabelle vergleichen. Da hängt er sich jetzt hier auf:
    if(mysql_num_rows($veri) <= 1){sendimagetext ("veri fehler");


    Da muss ich nachher mal schauen. Muss erst mal meinen Sohn besuchen und sein B-Day Geschenk abliefern, sonst is er sauer :)

    Danke soweit wie immer für eure Hilfe

    Beitrag zuletzt geändert: 17.9.2012 15:54:19 von aff3m1tw4ff3
  21. 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!