kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: OOP prepared statements "prepare"-Fehler

    geschrieben von xxxparenjxxx

    Danke für deinen Lösungsvorschlag, habe ihn leder nicht verstanden...
    Das Problem jetzt aber trotzdem gelöst.
    Es lag an der Datenbankverbindung.
    Habe noch ein mysqli_connect_errno() eingefügt, Fehler in Logindaten eingebaut und es wurde trotz Fehlerhafter Datenbankverbindung kein Fehler angezeigt.
    Datenbankverbindung korrekt hergestellt und schon funktioniert alles.
    Trotzdem vielen Dank für die Mühe :)
    mfg, Michl
  • in: OOP prepared statements "prepare"-Fehler

    geschrieben von xxxparenjxxx

    Hi,
    danke für die Antwort habe mir das vorher auch schon angeschaut, aber da ist zwar ein Beispiel zu einer selbst erstellten db-Classe die aber nicht von mysqli erbt.
    Habe jetzt meinen code ein wenig verändert und $stmt ist nun ein objekt (Oder habe ich falsches Verständnis davon was ein Objekt sein soll?)
    Fehler ist trotzdem vorhanden:

    Warning: mysqli::stmt_init(): invalid object or resource Database in /pfad.../Database.php on line 8

    Database.php
    class Database extends mysqli {
        public function __construct($host, $user, $password, $database) {
            parent::__construct();
        }
        public function stmt_init() {
            parent::stmt_init(); // line 8
        }
    }


    Model.php
    Ist genauso geblieben wie vorher.

    login_model.php
    class Login_Model extends Model{
        public function __construct() {
            parent::__construct();
        }
        
        public function run(){
            
            $login      = $_POST['login'];
            $password   = $_POST['password'];
            
            $query = ("SELECT `username`, `password` FROM `member` 
                               WHERE `username` = ? AND `password` = ?");
            
            $stmt = $this->db->stmt_init();
            
            if($stmt->prepare($query)){
                
                $stmt->bind_param("ss", $login, $password);
                $stmt->execute();
                
            }
            
            
            
        } 
    }


    Der Fehler scheint irgendwie an dem parent::stmt_init(); zu liegen.
    Ich finde aber nirgendwo eine info was genau das parent::stmt_init() macht.

    mfg, Michl
  • in: OOP prepared statements "prepare"-Fehler

    geschrieben von xxxparenjxxx

    Hallo,
    ich versuche momentan ein Loginscript im OOP Stil zu schreiben.
    Natürlich will ich hierfür auch die prepared statements, die mysqli bietet, nutzen.
    Ich bekomme zwar eine Datenbankverbindung hergestellt. Jedoch werden Fehler ausgespuckt wenn ich folgenden code schreibe:

    Anmerkung:
    Für '-host-', '-usr-', ' -pwd-', '-db-' sind die richtigen Verbindungsdaten angegeben.


    Model.php (wird direkt in der index.php included)
    class Model {
    
        function __construct() {
            $this->db = new Database('-host-', '-usr-', ' -pwd-', '-db-');
            
        }
    }


    Database.php
    class Database extends mysqli {
        public function __construct($host, $user, $password, $database) {
            parent::__construct();
        }
        public function prepare($query) {
            parent::prepare($query);     // line 8
        }
    }


    login_model.php
    class Login_Model extends Model{
        public function __construct() {
            parent::__construct();
        }
        
        public function run(){
            
            $login      = $_POST['login'];
            $password   = $_POST['password'];
            
            $stmt = $this->db->prepare("SELECT `username`, `password` FROM `member` 
                               WHERE `username` = ? AND `password` = ?");
            
            $stmt->db->bind_param("ss", $login, $password);   // line 16
            $stmt->db->execute();
        } 
    }


    Nun bekomme ich folgende Fehlermeldungen wenn ich das Formular auf der Webseite abschicke:

    Warning: mysqli::prepare(): invalid object or resource Database in /pfad.../Database.php on line 8

    Fatal error: Call to undefined method Database::bind_param() in /pfad.../login_model.php on line 16


    Nun bei bind_param müsste die Fehlermeldung daran liegen dass die mysqli Classe diese Methode garnicht enthält.
    bind_param liegt lt. dem Dokument in NetBeans in der mysqli_stmt Classe.

    Warum funktioniert aber mein prepare nicht?
    Wenn mein englisch nicht komplett versagt, will die Fehlermeldung mir sagen dass mysqli::prepare() über ein ungültiges Objekt verfügt. Nur, was soll ich da anderes eingeben?

    Hoffe auf eure Hilfe.
    mfg, Michl
  • in: whitelist, in_array, $_GET unverständlich

    geschrieben von xxxparenjxxx

    jam00 schrieb:
    Ich kann aber keinen Sinn erkennen bei deinem Code warum du nochmal $list und in_array benutzt ist doch überflüssig.


    Ich bin halt seit tagen am Lesen, was die Sicherheitslücken von Webseiten angeht und bin dadurch etwas paranoid geworden was das betrifft.
    Es befinden sich zwar keine Wichtigen Kundendaten oder solchen Sachen auf der Homepage die ich erstelle, aber dennoch ist es für mich wichtig es so sicher wie möglich zu gestalten.
    Eine doppelte Absicherung hat noch niemandem geschadet denke ich, zumal das ja nicht viel Arbeit ist einen String in ein zweites Array einzufügen, welches direkt untendrunter geschrieben ist...

    Was deinen Fehler angeht, ja ich habe den "gefunden", musste aber erst n paar Minuten ausprobieren, da ich mit foreach-schleifen noch garnichts gemacht hatte vorher xD

    In jedem Fall nochmal vielen Dank für die Hilfe, jetzt binn ich um einiges schlauer geworden :)

    mfg, michl
  • in: whitelist, in_array, $_GET unverständlich

    geschrieben von xxxparenjxxx

    jam00 schrieb:

    Ja aber jetzt behandelst du die Seiten doch nicht mehr Zentral und musst für jede eine einzelne Case-Anweißung machen. Da finde ich meine Lösung doch noch etwas eleganter!

    Naja aber wenn sich jemand so viele Rechte auf einem Server verschaffen kann wird er wohl kaum noch eine "Lücke" in einem Include benötigen


    Hast recht, du hast das die Dateipfade auch in ein array gepackt.
    Bei mir ist es halt so, dass ich bis jetzt nicht mehr als diese paar Dateien habe die über die index.php laufen also in der index.php included werden.
    Die main.php ist nämlich ein news-bereich in dem man Seiten blättern kann (da werden dan die Parameter auch per $_GET übergeben. Da steht dan sowas wie "index.php?news=10").
    Wenn ich main.php genauso einbinde wie auch die "Impressum.php" dann kann ich nicht mehr blettern. (k.P. wie ich das dan hinbekomme...)
    Hab nämlich auch ein Gästebuch, in dem man auch blättern kann, da ist dan die Übergabe auch per $_GET "Gaestebuch.php?gb=10" usw.
    Wenn das aber so klappen würde, dass man blättern kann, trotz dass die Dateien über die whitelist eingebunden sind, dan wäre dein Beispiel mit dem array natürlich immens von nutzen, denn dan hätte ich nur eine einzige Datei, in die ich alle anderen einbinden könnte.
    Werde mir jetzt mal den Verweis von hackyourlife anschauen. Mal schauen ob da was nützliches zu finden ist. Ich werde dan wieder posten wenn ich eine Lösung habe.
    Danke euch soweit erstmal :)
    mfg

    //EDIT

    Hallo,
    habe es endlich geschafft.
    Habe den Code von jam00 verwendet, etwas verändert und schon hats geklappt.
    Es ist halt wie jedes mal. Man Sucht, und versucht. Aber am ende ist es doch eine einfache Lösung....
    Die Dateien werden alle mit dem jeweiligen pfad in einem array gespeichert und mit einer foreach schleife abgefragt.
    Vorher wird noch geprüft ob der jeweilige key in der whitelist enthalten ist.
    Ich denke mal das sollte Sicherheit genug sein was das Einbinden des Inhalts angeht...
    Hier der Code:
    $sites = array(
    			"main" => 'includes/main.php',
    			"Gaestebuch" => "includes/Gaestebuch.php",
    			"Impressum" => "includes/info/Impressum.php",
    			"Kontakt" => "includes/info/Kontakt.php",
    		);
    		
    		$list = array('main', 'Gaestebuch', 'Impressum', 'Gaestebuch'');
    		
    		$suc = false;
    		foreach ($sites as $key => $value) {
    			if (isset($_GET[$key]) && in_array($key, $list)) {
    				include ($value);
    				$suc = true;
    				break;
    			}
    		}
    		if (!$suc) {
    			echo		"Kein Zugang!";
    		}


    Vielen Dank an alle die geholfen haben :)
    mfg, michl
  • in: whitelist, in_array, $_GET unverständlich

    geschrieben von xxxparenjxxx

    jam00 schrieb:
    Allem in Allem,
    Wenn du es jetzt noch schaffst bei deinem Code ohne soetwas wie file_exist einzubauen das die Datein in unterschiedlichen Ordnern sind und er weiterhin kurz und elegant bleibt dann gebe ich mich geschlagen ;)


    Herausforderung angenommen ;)
    hehe
    Und es hat sogar geklappt.
    Ist es aber immernoch sicher genugß oder sind dadurch jetzt Sicherheitslücken aufgetreten? (Sollten ja eigentlich nicht.)
    Es wird jetzt nicht mehr geprüft ob die Datei in einem Ordner existiert aber es wird ja immernoch der Whitelist geprüft.

    $list = array('main', 'Impressum', 'Kontakt', 'login');
    		$datei= $_GET["pfad"].'.php';
    		
    		if(isset($_GET['pfad']) && in_array($_GET['pfad'], $list)){
    			switch($datei){
    				case "Impressum.php":
    					include ('includes/info/'.$datei);
    					break;
    				case "Kontakt.php":
    						include ('includes/info/'.$datei);
    						break;
    				case "login.php":
    						include ('includes/member/'.$datei);
    						break;
    			}
    		}
    		else{
    			 include ('includes/main.php');
    		}


    Ich glaube aber wenn es jemand schafft, eine Datei in einen Ordner einzuschleusen in dem sie noch nicht existiert (da es ja ordnerübergreifend geschieht) und diese Datei so umbenennt dass sie so heißt wie in einem anderen Ordner, in dem auch Dateien geprüft werden, dan könnte er trotzdem includes einschleusen.
    Aber wie wahrscheinlich ist sowas? bzw Wie schwer/einfach ist sowas zu machen?

    mfg, michl
  • in: whitelist, in_array, $_GET unverständlich

    geschrieben von xxxparenjxxx

    Hi,
    supergeile Vorschläge :) vielen Dank.
    jetzt ist halt das problem dass ich den inhalt von "index" in unterschiedlichen Ordnern aufbewahre (wegen der übersicht).
    Folgender code jetzt also:

    $whitelist = array('Impressum', 'Kontakt', 'main');
    
    		if(isset($_GET['index']) && in_array($_GET['index'], $whitelist)){
    			 include ('includes/info/'.$_GET["index"].'.php');
    		}
    		else if(isset($_GET['index']) && in_array($_GET['index'], $whitelist)){
    			 include ('includes/'.$_GET["index"].'.php'); // hier soll die main.php included werden da sie einen Ordner drüber liegt
    		}


    Der -else if- Teil funktioniert nicht. Logischerweise, weil der ja "index" findet in der ersten Abfrage.

    2 Fragen jetzt:

    1. Verstehe ich das jetzt so richtig was diese Abfrage bewirkt, also wie das verarbeitet wird?:
    Es wird abgefragt ob in der Adresszeile "index" existiert. Danach wird geprüft, ob das was hinter "index" steht also ob "Impressum" von "index=Impressum" aus der Adresszeile in der Whitelist steht. Wann true, wird das included was dem index in der adresszeile gleichgesetzt ist. Habe ich das so richtig verstanden?

    2. Kann man so eine Abfrage Ordnerübergreifend gestalten oder wäre das wieder zu unsicher bzw. zu kompliziert und man sollte lieber die Ordnerstruktur überarbeiten und alles was zu "index" included wird bei index einschmeißen usw.?

    mfg, Michl

    /edit
    Wegen der sache mit den Ordner. Nicht dass ihr denkt ich wäre zu bequem einfach main.php in nen andere Ordner reinzuschmeißen. Ich hab noch andere Ordner wie, z.b. login usw. von da werden auch Dateien included. Deswegen ist es für mich interessant zu wissen ob sowas sinnfoll ist oder eher unnütze Penibelheit (gibts das Wort überhaupt oO)?


    //edit2
    Hat mich zwar Kopfzerbrechen gekostet, aber deshalb lerne ich es ja noch :)
    Habe es geschafft, den code so umzuformen dass ich unterschiedliche Dateien aus unterschiedlichen Ordnern einfügen kann.
    Hier ist mein Beispiel:

    $list= array('Impressum', 'Kontakt', 'Login');
    $datei= $_GET["pfad"].'.php';
    
    if(isset($_GET['pfad']) && in_array($_GET['pfad'], $list)){     // Whitelist Prüfung
       if(file_exists('includes/info/'.$datei)){                                     // ob die Datei im Ordner existiert
    	include ('includes/info/'.$datei);                                         // Einfügen der existierenden Datei
       }
       else if(file_exists('includes/login/'.$datei)){
    	include ('includes/login/'.$datei);
       }
       else{
    	echo "Datei existiert nicht!";
       }
    }
    else{
       include ('includes/main.php');
    }


    Das sollte jetzt sicher vor fremden includes sein. Wenn ich irgendwo eine Lücke habe bitte um einen Hinweis.
    Ansonstan vielen Dank für die sehr hilfreichen Kommentare, ohne euch wäre ich nie drauf gekommen wie man die whitelist überhaupt benutzt :)
    mfg, Michl
  • in: whitelist, in_array, $_GET unverständlich

    geschrieben von xxxparenjxxx

    Hey,
    danke für deine Antwort.
    Wie schaffe ich den die main so aufzurufen, wie du es beschrieben hast? ( "seite.tld/?main=main" )


    Ja das mit dem switch habe ich mir auch gedacht dass es ausreichen sollte, aber in diversen Tutorials und Foren wird die whitelist so sehr gelobt, dass ich mir dachte die sei sicherer...


    So ich habe es eben ausprobiert:
    wenn ich auf die startseite gehe und an "www.lima-city.de" ein "/?main=main" anhänge bekomme ich die startseite angezeigt, bei "/?Impressum=Impressum" die impressumseite.
    Jetzt ist also nurnoch die Frage wie ich "/?main=main" als standart angehängt bekomme, und mich interessiert warum da "/?main=main" stehen muss und nicht einfach "main", denn damit
    (in_array($_GET['main'], $whitelist))
    prüfe ich ja im Grunde ob in dem array $whitelist ein "main" vorhanden ist und ob es in der adresszeile steht (richtig?).
    mfg

    edit/
    Habe jetzt in den link <a herf="?Impressum=Impressum">impressum</a> reingeschrieben. Das klappt schonmal.
    Jedoch immernoch die Sache mit dem "main" und dazu kommt noch: auf der main, werden news ausgegeben. diese kann man blättern.
    Somit springt er mir beim blättern logischerweise wieder auf "Klappt nicht!" weil in der adresszeile "index.php?news=10" steht.
    mfg
  • in: whitelist, in_array, $_GET unverständlich

    geschrieben von xxxparenjxxx

    Hallo,
    solange meine Webseite noch aus ein paar Dateien besteht, wollte ich mich mal direkt mit dem Thema Sicherheit befassen um Angriffe gleich vermeiden zu können.

    Ein Teil des Aufbaus meiner Seite:
    [Home]
    ->index.php
    [includes](im [Home]-Ordner)
    ->top.php
    ->main.php
    [info](im [includes]-Ordner)
    ->Impressum.php
    ->Kontakt.php

    Der Grundgedanke ist folgender:
    In der index.php sind mehrere bereiche (top, mitte, fuss...)
    In der mitte findet der interessante teil statt:
    Hier soll als standart die "main.php" included werden. Bei klick auf einen link wird hier "impressum.php" included und bei Kontakt die "Kontakt.php" usw.

    Bisher hatte ich das ganze mit switch case gemacht

    switch(htmlspecialchars($_GET["index"])){
    			case "imp": include "includes/info/Impressum.php";
    			break;
    			case "kont": include "includes/info/Kontakt.php";
    			break;
    			default : include "includes/main.php";
    			break;
    		}

    Hat ja auch wunderbar geklappt.

    Aber mit Whitelists soll man ja die Seite vor fremden includes schützen können.

    hier also der code:
    $whitelist = array('main', 'Impressum');
    
    if(in_array($_GET['Impressum'], $whitelist)){
       include ('includes/info/Impressum.php');
    }
    else if(in_array($_GET['main'], $whitelist)){
       include ('includes/main.php');
    }
    else{
       echo "Klappt nicht!";
    }


    Ich habe schon unendlich viele Möglichkeiten ausprobiert. Jedoch wird mir immer wieder "Klappt nicht!" ausgegeben.

    Hinzu kommt noch, dass ich nicht weiß, was ich in den link reinschreiben muss, damit auch wirklich ($_GET['Impressum'] oder $_GET['main'] erkannt wird.

    also in den link <a href="HIER REIN">Impressum</a>

    Hoffe mir wird hier wie immer gut geholfen,
    bin gespannt wo meine Fehler liegen.

    MfG, Michl
  • in: Includes und Sessions

    geschrieben von xxxparenjxxx

    Alles klar, vielen Dank für die Info :)
  • in: Includes und Sessions

    geschrieben von xxxparenjxxx

    Hallo, danke für die Antwort.

    Natürlich werde ich das auch noch ausprobieren. Es geht mir aber auch dadrum ob es zum guten Programmierstil gehört. Und wie gesagt wusste ich nicht ob es allgemein möglich ist das so zu tun. Denn ich habe immer so ein Glück dass hinterher Fehler auftreten, die man auf den ersten blick nicht sieht später aber sich mit riesigen Fehlern herumschlagen muss. Deshalb hatte ich hier direkt gefragt.

    Vielen Dank für die Antwort :)

    mfg, Michl
  • in: Includes und Sessions

    geschrieben von xxxparenjxxx

    Hallo,
    nachdem mein Session-problem gelöst ist, habe ich nun eine Frage zu dem Vorgang mit den Includes in Verbindung mit dem session_start().
    Angenommen es gibt eine Datei, z.B. "index.php", die so aufgebaut ist:
    include "head.php"
    html-code
    include "main.php"
    html-code
    include "end.php"


    Das mal ganz grob.

    In "head.php" steht der Login und Logout-Code.

    In "main.php" ist Inhalt, der nur sichtbar wird, wenn man eingeloggt ist.

    Wie verhält sich das ganze jetzt mit dem session_start()?

    Reicht es, wenn ich session_start() ein einziges mal in der "head.php" an erster Stelle aufrufe? Und die "head.php" in jeder anderen Seite einfach als allererstes einmal include damit der "versteckte" Inhalt angezeigt wird wenn man sich einloggt. Oder wird der "include-Vorgang" der "head.php" ansich schon als Ausgabe gesehen und bricht die session_start() ab?

    Wäre es also vom Grundaufbau her möglich das so zu machen?
    Hoffe habe das ganze verständlich formuliert :)

    mfg, Michl
  • in: Tabellen verbinden - Problem

    geschrieben von xxxparenjxxx

    Hallo,
    ich kenne mich zwar mit dem LEFT JOIN uns RIGHT JOIN noch nicht aus, aber das hier scheint eine gute Erklärung dazu zu sein (zumindest so vom Überfliegen her) vllt hilft das hier dir weitere Fehler zu vermeiden ;)
    http://phpweby.com/tutorials/mysql/32

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    Hallo,

    das problem ist gelöst!!!!
    ENDLICH :)

    Hier ist die Antwort vom Ticket:

    "Hallo,

    das liegt am Encoding, da vor dem <?php noch die Byte-Order-Mark steht, wird diese bereits ausgegeben und PHP kann keine Cookies mehr senden.

    Ich habe die Datei auf dem Webspace für dich Konvertiert. In deinem Editor solltest du das umstellen können."

    Ich musste die Kodierung in Notepad++ von "UTF8" auf "UTF8 ohne BOM" umstellen und die datei neu hochladen. Schon funktioniert die ganze Sache wieder.

    Danke euch allen für die dennoch sehr lehrreichen Tips und Hilfestellungen :)

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    Ich wieder.

    Hab jetzt also ein neues acc. angelegt und die sachen einfach mal hochgeladen, index.php gelöscht, nur login.php und logintest.php hochgeladen und domain eingestellt.
    http://lem.12hp.de/login.php
    http://lem.12hp.de/logintest.php
    Funktioniert beides aus welchem grund auch immer trotzdem nicht.
    Ticket ist bereits angelegt, bin mal gespannt wo der Fehler liegt.
    Wahrscheinlich ist durch das kopieren oder sowas doch n Fehler entstanden. kP.

    Danke für die Hilfe trotzdem :)

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    Hallo.
    Also zu dem session_start() ganz am anfang habe ich jetzt verstanden ;) danke für die Ausführliche erklärung hehe.

    Hier mal die angeforderten Daten ;)

    Die login.php von hcms als txt: http://xxxparenjxxx.lima-city.de/login.php.txt

    Die logintest.php von webmag als txt. http://xxxparenjxxx.lima-city.de/logintest.php.txt

    Habe auch nochmal überprüft ob wirklich kein Leerzeichen da ist, ist keins100%.

    Das mit dem Ordner TESTPAGE stimmt hast recht habe nochmal nachgeschaut, es ist aber als Pfad schon richtig hinterlegt, hab mal n Bild davon gemacht:
    http://xxxparenjxxx.lima-city.de/dateipfad.PNG

    Das mit der .htaccess werde ich gleich mal ausprobieren melde mich danach wieder.

    *edit

    Nein es ist nichts includiert.
    Alle diese Dateien, also:
    login.php,
    index.php,
    logintest.php
    selbst login.php.txt und logintest.php.txt und dateipfad.png
    liegen in dem auf dem "dateipfad.png" gezeigten Dateipfad.
    Also kein include und keine .htaccess vorhanden. Deffinitiv nicht, denn ich weiß nocht nicht einmal ganz recht was so eine .htaccess bewirkt und wie man die einbindet usw.
    Außer es ist eine (wie du schon sagtest unsichtbare) von "werk" aus drauf ohne dass ich welche geschrieben hab.
    Werde aber wie gesagt trotzdem mal das ausprobieren und selbst eine leere .htaccess anlegen und hochladen.

    mfg, Michl


  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    @ webmag

    Danke für die Hilfe, aber der funzt leider trotzdem nicht.
    Du schreibst dass session_start ganz am Anfang stehen muss, hast es selbst aber auch nicht ganz am Anfang stehen dadurch kommen wieder diese besagten Fehlermeldungen. ich habe jetzt deinen code mal unverändert gelassen.
    hier kann man den asprobieren: http://xxxparenjxxx.lima-city.de/logintest.php

    würde man jetzt session_start(); vor error_reporting(E_ALL); setzen würden lediglich die Fehlermeldungen:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/logintest.php:1) in /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/logintest.php on line 16

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/logintest.php:1) in /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/logintest.php on line 16

    verschwinden.
    Aber beim Neuladen der Seite werden trotzdem die session-Daten zurückgesetzt.

    Werde jetzt mal schauen dass ich nen Ticket anlege.
    Denn wie man hier: http://hcms.12hp.at/session/
    sieht, funktioniert es.

    Auf meinem Webspace: http://xxxparenjxxx.lima-city.de/login.php
    MIT DEM SELBEN CODE
    Funktioniert es nicht.
    Also muss da irgendwas am Webspace liegen.

    Vielen Dank für die Hilfe werde mich melden sobald ne Antwort vom Ticket habe (oder es nicht schaffe eins anzulegen weil kp wie das geht hehe)

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    hcms schrieb:
    aber was sollte htmlspecialchars bzw htmlentities damit zu tun haben ?.

    Weiß ich nicht. hab es irgendwo mal gesehen, deswegen hab ich das geschrieben. Vllt wurden die ja bei was anderem verwendet. Kann mich auch irren ^^

    Ja ist schon recht seltsam. Weil auf deinen Webspace leuft es ja und der ist ja genauso hier wie meiner.
    Soll ich dem mod. einfach ne pm schicken? Oder wie meinst das?
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    timebandit schrieb:
    Wenn es nicht an einer .htaccess liegt, dann könnte noch
    magic_quotes_gpc eine Rolle spielen.
    Beim Einrichten deines Webspaces diese Konfiguration aktiviert?

    Mfg,
    timebandit


    Also wenn ich in die phpinfo von lima-city reinschaue, steht da drinn dass magic_quotes_gpc off ist.
    Muss ich etwas beachten wenn sie deaktiviert sind? ich dachte man müsse nur htmlspecialchars und stripslashes verwenden wenn magic_quotes_gpc on ist. Oder liege ich da falsch?

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    timebandit schrieb:
    Verwende als User: test
    als Passwort: 123

    Siehe entsprechendes JPG


    Und wie soll mir das bei der Lösung des problems helfen?

    hcms schrieb:

    hast du eine .htaccess am start ?


    habe keine .htaccess aber ich wüsste jetzt nach dem lesen auch nicht was ich in die reinschreiben sollte damit mein problem behoben wird -.- sry
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    hcms schrieb:
    hast du eine .htaccess am start ?


    Sry.
    keine Ahnung von .htaccess.
    werde mir gleich mal was darüber durchlesen.

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    Hallo,
    also jetzt weiß ich auch nicht woran das noch liegen kann.
    Am code scheinbar ja nicht.
    Hab den von hcms jetzt reinkopiert und der funzt bei mir auch nicht.
    Nach dem neuladen muss ich mich schon wieder neu einloggen.
    Wen ihr es nicht glaubt probierts hier bitte aus. ich kan mir ned helfen -.-
    http://xxxparenjxxx.lima-city.de/login.php
    Werde es gleich mal noch am laptop meiner Freundin ausprobieren ob es da geht.

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    hallo,
    ja hattest recht session_start war nicht ganz am Anfang.
    Jetzt sind die Fehlermeldungen zwar weg, aber trotzdem scheint das ganze nicht so ganz zu funktionieren.
    Nach dem Einloggen wird mir der username also der loginname ausgegeben.
    Nach dem Neuladen der Seite muss ich mich aber wieder neu einloggen -.-

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    Hallo,

    also bei mir werden Cookies deffinitiv akzeptiert. Von anderen Internetseiten werden die ja auch gespeichert.

    Wenn ich die Seite aufrufe Spuckt der mir noch sowas hier aus:



    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/login.php:1) in /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/login.php on line 11

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/login.php:1) in /home/webpages/lima-city/xxxparenjxxx/html/TESTPAGE/login.php on line 11



    Wie es aussieht schafft er es nicht sachen in die Session zu schreiben.
    Das kommt bei IE und bei FF.
    Werde jetzt trotzdem mal rumsuchen, ob ich diese Session-Cookies doch irgendwo blokiert habe (dürfte aber nicht sein....)

    *edit
    Habe nochmal nachgeschaut. Hier sind meine Cookie-Einstellungen:
    http://www.fotos-hochladen.net/view/cookiesztfhiyn5cu.png

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    Hallo, danke für ere Antworten.
    Habe mal alles was ihr vorgeschlagen habt ausprobiert. es geht trotzdem nicht.
    session_name() vor session_start() hatte ich vorher auch schonmal probiert hat nichts genützt.

    @ webmag:
    Habe mal deinen code, so wie der dasteht mal reinkopiert.
    Aber leider ist hier genau das selbe Ergebnis.
    Wenn man die Seite neu lädt verschwindet der Session-Inhalt bzw. die SESSION Daten.

    Müsste der bei einem Start einer Session nicht auch automatisch einen cookie setzen? (Sofern die nicht abgeschaltet sind.)

    mfg, Michl
  • in: Session-Inhalt verschwindet

    geschrieben von xxxparenjxxx

    Hallo,
    ich stehe mal wieder vor einem Problem, dessen Lösung bestimmt (mal wieder) ganz einfach ist.
    Jedoch blicke ich im moment garnicht mehr durch deswegen hier das Problem:
    Ich versuche ein Loginscript mit Sessions zu erstellen.
    Habe schon viel darüber gelesen, aber es will einfach nicht klappen. Folgender Code:

    if(isset($_POST["submit"])){
      if(isset($_POST["name"])  &&  isset($_POST["password"])){
        if(($_POST["name"]  ==  "test")  &&  ($_POST["password"]  ==  "123")){
          $user=  $_POST["name"];
          session_name("usr_login");
          $_SESSION["Username"] =  $user;
          $_SESSION["login"] =  true;
        }
        else{
          $_SESSION["login"] = false;
        }     
      }
    }

    Weiter unten gebe ich den ganzen Spaß aus:
    echo ("Hallo ".$user."!<br />\n");
      echo var_dump($_SESSION). "<br />\n";
      echo "<a href=login.php?" . session_name() . "=" . session_id() . ">SEITE NEU LADEN</a><br />\n";
      echo "<a href=login.php?>SEITE NEU LADEN- OHNE SID</a><br />\n";
      echo "<a href=index.php?" . session_name() . "=" . session_id() . ">STARTSEITE</a><br />\n";
      echo "<a href=index.php?>STARTSEITE- OHNE SID</a>";


    Am Anfang der Datei also noch vor dem <doctype> habe ich session_start() stehen.
    Wenn man sich jetzt einloggt wird der Username Ausgegeben. Es funktioniert scheinbar alles. Jedoch lädt man die Seite neu, verändert sich die session ID und der session_name springt wieder auf LCWSID. Habe auch schon hier gelesen dass das der Standart session_name ist auf lima-city. Nur wie bekomme ich meine Session dauerhaft registriert, also bis ich session_destroy o.Ä. aufrufe?
    Hier könnt Ihr euch das prob. anschauen:
    http://xxxparenjxxx.lima-city.de/login.php

    Vielen Dank für die Hilfe schonmal im Voraus.

    mfg, Michl
  • in: MySQL alles außer das Datum wird eingetragen

    geschrieben von xxxparenjxxx

    OMFG, burgi

    DU BIST DER GOTT

    if (get_magic_quotes_gpc()) {   
       $_POST["text"]= stripslashes($_POST["text"]);
       $_POST["text2"]= stripslashes($_POST["text2"]);
       $_POST["text3"]= stripslashes($_POST["text3"]);   
       $Datum= date("d.m.Y, H:i") . " Uhr";
      } 
       $text= mysqli_real_escape_string($var, $_POST["text"]);
       $text2= mysqli_real_escape_string($var, $_POST["text2"]);
       $text3= mysqli_real_escape_string($var, $_POST["text3"]);
      
      $var2= "INSERT INTO news " .
      "VALUES('', '$text', '$text2', '$Datum', '$text3')";
      mysqli_query($var, $var2);
    
     }


    funktioniert nicht...

    und

    if (get_magic_quotes_gpc()) {   
       $_POST["text"]= stripslashes($_POST["text"]);
       $_POST["text2"]= stripslashes($_POST["text2"]);
       $_POST["text3"]= stripslashes($_POST["text3"]);   
      } 
       $text= mysqli_real_escape_string($var, $_POST["text"]);
       $text2= mysqli_real_escape_string($var, $_POST["text2"]);
       $text3= mysqli_real_escape_string($var, $_POST["text3"]);
    
       $Datum= date("d.m.Y, H:i") . " Uhr";
      
      $var2= "INSERT INTO news " .
      "VALUES('', '$text', '$text2', '$Datum', '$text3')";
      mysqli_query($var, $var2);
    
     }


    funktioniert :):):)

    kann es sein dass die "magic_quotes_gpc" vorher auf "On" waren?
    Denn das ganze hat bisher genauso funktioniert, also so wie es vorher war. Ich hatte da in letzter zeit deffinitif nix geändert^^


    VIELEN DANK FÜR DIE HILFE :):):)
  • in: MySQL alles außer das Datum wird eingetragen

    geschrieben von xxxparenjxxx

    Hi, danke.

    in meiner Datei steht auch $db, habe hier nur alle Variablen verändert. Sry, für den Fehler hier drinn habe einige übersehen werde es abändern damits passt....

    Dass es diese Felder gibt habe ich auch schon gelesen, aber habe das halt, als ich das geschrieben habe so gemacht dass in einer Variable gleich "Datum, Uhrzeit und 'Uhr' " enthalten ist. Hat ja alles bisher funktioniert.

    edit: müsste jetzt sinngemäß passen.
    Funktionierten tuts immer noch nicht, freue mich auf jede Antwort.
    Ich dreh durch -.-
  • in: MySQL alles außer das Datum wird eingetragen

    geschrieben von xxxparenjxxx

    Hallo,

    bin schon seit einiger Zeit am PHP und MySQL lernen.
    Jedoch hab ich eben ein Problem entdeckt.

    Auf meiner Seite habe ich einen "News-Bereich" Wenn ich Etwas eintrage wird es in einer Datenbank gespeichert und hinterher Ausgegeben.

    Das Problem ist: Es wird alles ausgegeben, bis auf das Datum.
    An dem PHP und MySQL-Code des News-Bereichs ansich habe ich in letzter Zeit nichts verändert.

    Hier mal ein Stück Code:

    if (get_magic_quotes_gpc()) {   
       $_POST["text"]= stripslashes($_POST["text"]);
       $_POST["text2"]= stripslashes($_POST["text2"]);
       $_POST["text3"]= stripslashes($_POST["text3"]);   
       $Datum= date("d.m.Y, H:i") . " Uhr";
      } 
       $text= mysqli_real_escape_string($var, $_POST["text"]);
       $text2= mysqli_real_escape_string($var, $_POST["text2"]);
       $text3= mysqli_real_escape_string($var, $_POST["text3"]);
      
      $var2= "INSERT INTO news " .
      "VALUES('', '$text', '$text2', '$Datum', '$text3')";
      mysqli_query($var, $var2);
    
     }


    Ansich sollte das ganze ja richtig sein.

    Kann jemand weiterhelfen?

    ps:
    Habe vor kurzem die Dokumenttyp Deklaration geändert, aber das sollte ja eigentlich nichts damit zutun haben.

    mfg, Michl

    edit:

    Habe jetzt schon folgendes ausprobiert:
    - Die Dokumenttyp-Deklaration wieder auf 4.01 gesetzt, keine Abhilfe
    - In der Datenbank wird das Datum nicht eingetragen, deshalb auch nicht ausgegeben-> Habe es in der Datenbank nachgetragern-> Beim Neuladen der seite erscheint das Datum.
    - Hatte mal eine Sicherung der ganzen Dateien angelegt, hab die hochgeladen-> Datum wird trotzdem nicht eingetragen.
    - Datumeintrag im Gästebuch funktioniert weiterhin ohne Probleme.
  • in: mysql und mysqli Unterschied

    geschrieben von xxxparenjxxx

    Vielen Dank für die antworten :)

    Werde mich jetzt mal dransetzen und eure links durchforsten :)

    mfg, Michl
  • in: mysql und mysqli Unterschied

    geschrieben von xxxparenjxxx

    Hallo,
    ich lerne momentan den Umgang mit PHP und MySQL und dabei binn ich auf ein interessantes Detail gestoßen.

    In diversen Tutorials werden MySQL-Befehle mit "mysql" (z.B. mysql_query) begonnen in anderen werden sie mit "mysqli" (z.B. mysqli_query) begonnen.
    Beides scheint zu funktionieren.
    Jedoch wird in Notepad++ der "mysqli"-Befehl nicht in blauer Schrift dargestellt, der "mysql"-Befehl hingegen schon.

    Was mich nun interessiert ist: Wo genau besteht der Unterschied zwischen diesen beiden Schreibweisen, warum gibt es ihn und welchen sollte man am bessten verwenden?

    Also schreibt einfach alles rein was ihr dazu wisst.

    mfg, Michl
  • in: Was haltet ihr von The War Z?

    geschrieben von xxxparenjxxx

    Schau mal hier:
    http://www.4players.de/4players.php/tvplayer/4PlayersTV/Alle/32187/103487/The_War_Z/Video-Fazit.html
    Ein Video-Fazit bei 4-players.
    Die bewerten meiner Meinung nach meist ziemlich fair.
  • in: Loginbereich

    geschrieben von xxxparenjxxx

    hi, versuchs mal mit sessions.
    hier ist eine super erklärung wie sessions funktionieren: http://www.usegroup.de/software/phptutorial/sessions.html

    gruß ;)

Login zum Webhosting ohne Werbung!