Beiträge von Black NEXUS

Read-Only-Modus

Das 01-Supportforum befindet sich im Read-Only-Modus. Es ist nicht mehr möglich sich zu registrieren, neue Themen zu erstellen oder auf bestehende Themen zu antworten.

Alle Inhalte stehen bis auf absehbare Zeit jedoch weiterhin lesend zur Verfügung.


Bei Fehlern oder Problemen mit PHP-Scripten von 01-Scripts.de erstellen Sie gerne einen Issue-Eintrag auf Github oder nehmen Sie per E-Mail Kontakt auf.

    Ok, hab die so gemacht:


    [PHP]<?php
    $name = $_POST['sqlname'];


    $Dateiname = basename($name);
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"$Dateiname\"");
    readfile($name);
    ?>[/PHP]


    Wenn man die Datei einfach so im Browser aufrufen würde, müsste man diese Datei selber herunterladen, die dann aber leer ist^^
    Wie ich das auch mitbekommen habe, möchte der FDM auch die PHP Datei herunterladen und nicht die verlinkte, ist aber auch nicht so schlimm, da die Dateien eh nie so groß sind, kann man die auch mit den Browserinternen DM herunterladen^^


    Code
    1. FDM = Free Download Manager

    Hallo^^


    Also ich habe folgendes Problem:


    Ich hab da wieder mal ein kleinen Tool entwickelt, welches eine SQL Datei erzeugt. Nun möchte ich durch klick auf den Button die Datei herunterladen, aber sie wird im Browser geöffnet.


    Das Problem ist, das gibt zwar viele Header Befehler, nur leider nützen die mir nix, weil die an den Anfang der Datei müssen und die SQL Datei erst am Ende erzeugt wird. Außerdem müsste man dann diese herunterladen, bevor man den Button drückt. Aber man soll sie nur downloaden können, wenn man auf den Button klickt.


    Ich weis, wird wohl wieder niemand was mit anfgangen können^^ Also noch mal ganz kurz:


    Wie kann ich den Download einer SQL Datei erzwingen, die erstellt wird und in einem Unterverzeichnis liegt, ohne einen Header Befehl anwenden zu müssen?


    Und ich möchte nix von ZIP, oder sonstigen Archivierungsprogrammen hören ;)

    Hi,


    ich hab dazu noch mal eine Frage, und zwar, ich weis dass ich es irgenwann mal irgendwo hier im Forum gesehen habe, aber ich finde es nicht mehr.


    Man konnte doch die Dateitypen überprüfen und beschränken, die hochgeladen werden konnten, z.B. nur jpg, gif, usw...
    Genau so war es doch auch mit der Größe, ich meine nicht das in der php.ini, sondern direkt aus dem Script.


    Noch dazu konnte man die hochgeladenen Dateien auch automatisch umbenennen lassen, z.B. Bilder für Avatare in die BenutzerID des jeweiligen Besitzers.


    Ist es möglich, dass es mir jemand zeigen könnte? Wäre nett^^

    Mir ist ja auch so eingefallen, man könnte das ja auch in eine PW-Datei schreiben lassen, weis nur nicht, ob der die Dateien mit einem . erkennt, weil normalerweise sind die ja unsichtbar für Programme und Scripts.


    Aber so ist das doch machbar, oder?

    Wie macht man dann das, das man sich mit den Benutzernamen und dem Passwort anmelden kann, mit den man sich vorher registriert hat? Das alles steht dann in einer MySQL DB, geht dass dann auch noch mit .htaccess? Es soll ja natürlich nicht jeder drauf können, nur die User mit speziellen Rechten.


    Es gab dann ja noch verschiedene Authentifikationsmethoden wie http, was gibt es da noch?

    Also, ich habe in nächster Zeit was vor und habe schon bei einigen Pages gesehen, dass diese PayPal integriert haben, z.B. in einem Warenkorb.


    Nun wollte ich mal fragen wie man das macht. Ich habe da schon was gefunden, nennt sich SDK, kommt auch direkt von PayPal Dev. Die neue Version kann man über eine install.php installieren, nur was benötige ich danach? Und wie sieht es mit der Sicherheit aus?


    Es gibt bestimmt einige Leute, die dieses System selber nutzen und die mir da ein paar Ratschläge geben können.

    Was mir noch aufgefallen ist, unter Windows macht der keine Zeilenumbrüche, da muss man das so schreiben:


    [PHP]<?PHP
    $file = fopen("dateiname.txt","a");
    $writetext = "Text mit einem tollen\nZeilenumbruch und\nnoch einem\r\n";


    $wrotez = fwrite($file, $writetext);


    echo "Es wurden ".$wrotez." Zeichen in die Datei geschrieben";


    fclose($file);
    ?>[/PHP]


    Wie ich gelesen habe muss man in Windows \r verwenden, damit er erkennt, dass jetzt ein Zeilenumbruch erfolgt.

    Stimmt, jetzt wo du es sagst oO


    Was müssen die auch andauernd die DBs verändern, jetzt muss ich den Script wieder umschreiben, mal sehen was die sich in 2 Wochen einfallen lassen -.-


    Danke noch mal für den Tip ;)

    Also ich habe den auf meinem Rechner, ist dann einfacher handzuhaben und brauch man nicht immer alles online machen^^


    Also ich habe das Simekolon weg gemacht, ist immer noch das Problem da :(

    Also ich habe es mit und ohne Datensätze probiert, aber es immer der gleiche Fehler...


    Das ist nur ab Version 1.6.6a von XAMPP so, mit 1.6.2 und 1.6.4 hatte ich keine solchen Probleme :(


    Soll ich dir kompletten Script schicken, also alle, oder reicht nur das wichtigste, also Login, dies und die Config inc DB?

    Also, ich habe einen Fehler irgendwo im Script, nur ich habe ka wo. Komischerweise ging es noch, als ich es letztes mal aufgerufen habe...


    Also, der Fehler:


    Code
    1. Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource


    Dazu muss ich sagen, dass er nicht ausgegeben wurde, egal was ich gemacht habe, dann habe ich die Formularinhalte entfernt, und siehe da, da war er, aber ich weis echt nicht warum -.-


    Und nun der Teilscript:


    [PHP]<form action="<?php echo $_SERVER['PHP_SELF']; ?>?<?php echo strip_tags(session_name()."=".session_id()) ?>&type=detail" method="POST">
    <table width="50%" border="0" cellspacing="10" align="center>
    <tr>
    <td align="center">Charakterauswahl von <b><u><?php echo REALM_NAME1; ?></u></b>:</td>
    <td align="center"><select name="char" size="1">
    <option value="">Charakter wählen...</option>


    <?php


    $acc = $_SESSION["ACCT"];


    $connect = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
    $selectDB = @mysql_select_db(MYSQL_DATABASE1, $connect) or die("Konnte die Datenbank <b>MYSQL_DATABASE1</b> nicht auswählen!");


    $querychar = @mysql_query("SELECT guid, name, race, class, level, gold, mapId, guildid FROM characters WHERE acct = '$acc' ORDER BY name ASC;") or die("Konnte die Tabelle nicht öffnen!");


    if(mysql_num_rows($querychar)) {


    while($row = mysql_fetch_assoc($querychar)) {
    ?>


    <option value="<?php echo $row['guid'] ?>"><?php echo $row['name'] ?></option>


    <?php }


    } else {


    ?>


    <option value="-">KEIN EINTRAG</option>


    <?php


    } mysql_close($connect); ?>
    </select></td>
    </tr>
    <tr>
    <input type="hidden" name="realm" value="1">
    <td align="center" colspan="2"><input type="Submit" name="sub1" value="Auswählen"></td>
    </tr>
    </table></form>[/PHP]


    Hoffe mal du kannst damit was anfangen, ansonsten muss es ich dir per PM schicken.


    Du bist erfahren da drinne, ich habe so vieles probiert, ich bin auch langsam am Ende, ich finde nix...
    Hoffentlich findest du was, am Ende liegt es nur an der XAMPP Version^^

    Hi Michael^^


    Hab da mal ne Frage, und zwar möchte ich auf unserer Page einige Aktionen loggen lassen, dies soll aber nicht in eine DB gespeichert werden, sondern in eine TXT Datei, und zwar Zeile für Zeile, damit nich alles hintereinander steht.


    Notfalls kann man es auch in eine LOG Datei schreiben, aber das wird ja PHP hoffentlich unterstützen^^

    Naja, ist das der ganze Script? Weil ich sehe zwar Eingabefelder, aber ist das überhaupt ein Formular? Ist ja dann logisch, dass nix übergeben wird^^


    [PHP]<div align="center">
    <form action="<?php echo $PHP_SELF ?>&action=0" method="POST">Autor:<br>
    <input type="text" name="author" value="<? echo $ergebnis[$i][author]; ?>"><br>
    News:<br>
    <input type="text" name="nachricht" value="<? echo $ergebnis[$i][nachricht]; ?>"><br>
    <input type="text" name="ID" value="<? echo $ergebnis[$i][ID]; ?>" readonly><br>
    <input type="Submit" name="del" value="Löschen">
    <input type="Submit" name="edit" value="Edit"></form>


    </div>[/PHP]


    So hätteste schon mal das Formular, dann brauchste nur noch ne Abfrage, ob action gleich 0 ist, dann schauste mit $_POST['author'], $_POST['nachricht'] und $_POST['ID'], was drinne steht, und änderst es ggf.^^


    Kannst statdessen auch was völlig anderes nehmen, ist dein Ding, ist nur so ein Vorschlag, weil das so doch übersichtlicher wird ;)

    Korrigiere mich, wenn ich falsch liege, aber werden Variabeln/Strings in Abfragen generell nicht ausgewertet, wenn du sie nur in Gedankenstriche setzt?


    [PHP]$sql="UPDATE news SET nachricht = '".$nachricht."' WHERE ID = '$ID' LIMIT 1";


    $sql2= "UPDATE news SET author = '".$author."' WHERE ID=$ID";[/PHP]


    Da hätte ich WHERE ID = '$ID' LIMIT 1 und WHERE ID=$ID zu WHERE ID= '".$ID."' gemacht.


    Kommen eig. Fehler?

    Hi, ich bins mal wieder :P


    Hab auch mal wieder ein spannende Frage und zwar geht es um das Auslesen von Zeichen in einem String.


    Sowas wie preg_replace erstetzt ja die Zeichen, ich möchte aber eine Abfrage machen, die z.B. bei einem Formular, manche Zeichen heraussucht und dann sagt, dass diese nicht erlaubt ist.
    Also quasi als IF-Abfrage^^



    Beispiel:


    Ein Formular mit Name, Adresse und Telefomnummer. Bei Telefonnummer soll nun überprüft werden, ob nun Zeichen außer Zahlen enthalten sind, z.B. Buchstaben oder ein Slash. Ist das der Fall, bekommt man die Nachricht, dass man ein verbotenes Zeichen verwendet hat und wird zurückgeleitet zum Formular.


    Wäre sehr dankbar, wenn mir jemand helfen könnte ;)