BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Variablen im Query-String holen? » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Variablen im Query-String holen?
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Variablen im Query-String holen?       Zum Anfang der Seite springen

Er schreibt den Usernamen also das was (?id=ronny22)
hinter den = nicht in die Textdatei ausgeben tuht er es den aber !!!

Warum nicht ??

<?
##########################
# (c) 2002 by Ronny Dehmel #
# Mail : webmaster@mydoys.de #
# Url : http://www.mydoys.de #
# IP Sperre von http://www.php4-forum.de #
##########################

$raus = "$id";


// Speicherung der Daten in einer Datei

function schreiben($datei,$mode){
$fp = @fopen($datei,$mode);
flock($fp,2);
fwrite($fp,"$raus"."|".time()."\n");
flock($fp,3);
fclose($fp);
}

function ip_sperre() {
// Einstellungen
$reloadlogdatei = "reload2.txt";
$anzahleintraege = 1000;
$zeitlimit = 600; // in Sekunden


// Prüft, ob Datei existiert => ansonsten Erstellen
if(!file_exists($reloadlogdatei)) {
$datei = fopen($reloadlogdatei,"w+");
fclose($datei);
}
$fp = file($reloadlogdatei);
$size = sizeof($fp);

// Beschreibt die Datei, wenn Liste voll
if($size >= $anzahleintraege){
schreiben($reloadlogdatei,"w");

// Prüft, ob eine IP in der Liste steht
} else {

for ($i=0;$i<$size;$i++) {
$zeile = explode("|",$fp[$i-1]);

// IP wird gefunden
if ($zeile[0] == "$raus" AND $zeile[1] > (time()- $zeitlimit)){
$ausgabe = true;

// IP wird nicht gefunden
} else {
$ausgabe = false;
}
}

// Protokolliert die IP-Adresse (schreibt)
schreiben($reloadlogdatei,"a+");
}
return $ausgabe;
}




$uhrzeit = date("H:i");
$datum = date("d.m.Y");
$url = $HTTP_REFERER;


if(ip_sperre()==true){
echo "


$head\n
$body\n
<br><br><br><br><center><b>
Sie dürfen nicht so oft E-Mails Schreiben Spam Schutz !!
<br><br>
DANKE
";
die();
}

?>


<-------AUSGABE---TEST---->
<? echo $raus ?>



http://www.mydoys.de/test/ip2.php?id=ronny22
http://www.mydoys.de/test/reload2.txt

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von xx08xx15: 01.07.2003 14:54.

01.07.2003 14:22 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
BlackEye
Senior Member


images/avatars/avatar-2279.jpg

Dabei seit: 24.11.2002
Beiträge: 413

      Zum Anfang der Seite springen

Gehört zwar nicht zum Thema, aber muss trotzdem sein:
WARUM können sich manche leute einfach nicht daran gewöhnen ihren Threads AUSSAGEKRÄFTIGE (!!) Titel zu geben! Vielleicht würdest du so die antwort schneller bekommen !
01.07.2003 14:50 BlackEye ist offline E-Mail an BlackEye senden Beiträge von BlackEye suchen
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Themenstarter Thema begonnen von xx08xx15
      Zum Anfang der Seite springen

Richtig so ??

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


01.07.2003 14:54 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
000woodworker000 000woodworker000 ist männlich
Aufsteiger


images/avatars/avatar-997.jpg

Dabei seit: 09.01.2002
Beiträge: 40
Herkunft: Germany

      Zum Anfang der Seite springen

1. gewöhne dir an nciht mit <? sondern mit <?php zu arbeiten.

2. hast du schreibrechte auf die datei???

3. woher soll die funktion schreiben denn den wert $raus haben??? der wird nciht mit übergeben oder per global befehl in die funktion importiert.

__________________
Woody4u.de

Forumliste:
Typo3.net|debianforum.de|Empire Universe

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von 000woodworker000: 01.07.2003 22:39.

01.07.2003 22:26 000woodworker000 ist offline E-Mail an 000woodworker000 senden Beiträge von 000woodworker000 suchen
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Themenstarter Thema begonnen von xx08xx15
      Zum Anfang der Seite springen

Zitat:
Original von 000woodworker000
1. gewöhne dir an nciht mit <? sondern mit <?php zu arbeiten.

2. hast du schreibrechte auf die datei???

3. woher soll die funktion schreiben denn den wert $raus haben??? der wird nciht mit übergeben oder per global befehl in die funktion importiert.



1. Ok mache ich
2. Ja (Rechte 777)
3.
Wenn mann die datei aufruft datei.php?id=ronny

Dann kommt der wert $raus !
Und der soll in die datei geschrieben werden in die .txt datei und wenn der user die datei datei.php?id=ronny nochmal aufruft soll halt der fehler kommen das er das nicht darf und das kommt halt nicht !!

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


01.07.2003 23:44 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

      Zum Anfang der Seite springen

also in perl ist das nicht so einfach, und in php mit sicherheit auch nicht.

dieses ?id=ronny ist ein post-parameter, und den must du erst holen.

so in der art
$raus = param('id');
aber da bin ich mir nicht sicher.
guck mal bei www.selfhtml.teamone.de in der php-referrenz.

__________________
vescere bracis meis

01.07.2003 23:56 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Themenstarter Thema begonnen von xx08xx15
      Zum Anfang der Seite springen

Zitat:
Original von Black Star
also in perl ist das nicht so einfach, und in php mit sicherheit auch nicht.

dieses ?id=ronny ist ein post-parameter, und den must du erst holen.

so in der art
$raus = param('id');
aber da bin ich mir nicht sicher.
guck mal bei www.selfhtml.teamone.de in der php-referrenz.



Es geht auch nicht und auf der seite kann er nix finden !

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


02.07.2003 00:01 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

      Zum Anfang der Seite springen

oh mann.
ich hab erst einmal in meinem leben php benutzt und was gefunden.
ein bischen mühe sollte man sich schon geben.

$raus = $_POST['id'];

das sollte es sein, und wenn nicht, dann guck selber mal.
programmieren ist 33% googlen. (der wert kann schwanken Augenzwinkern )

__________________
vescere bracis meis

02.07.2003 00:10 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Themenstarter Thema begonnen von xx08xx15
      Zum Anfang der Seite springen

Zitat:
Original von Black Star
oh mann.
ich hab erst einmal in meinem leben php benutzt und was gefunden.
ein bischen mühe sollte man sich schon geben.

$raus = $_POST['id'];

das sollte es sein, und wenn nicht, dann guck selber mal.
programmieren ist 33% googlen. (der wert kann schwanken Augenzwinkern )



Es geht auch damit nicht !!
Der wert der bei id steht soll in die textdatei geschrieben werde :

function schreiben($datei,$mode){
$fp = @fopen($datei,$mode);
flock($fp,2);
fwrite($fp,"$raus"."|".time()."\n");
flock($fp,3);
fclose($fp);
}

Er macht es aber nicht !

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


02.07.2003 00:26 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Zitat:
Original von Black Star
$raus = $_POST['id'];


Doch in PHP ist das viel leichter:
Wenn in der php.ini die Option register_globals = on ist, werden alle übergebenen Parameter automatisch als Variablen registriert. Wenn ich also einen Parameter der Form ?id=1234 habe dann ist in diesem Fall im Script eine Variable $id mit dem Wert 1234 verfügbar.

Aber ich kann dir sagen, warum es nicht funktioniert:
Wenn du eine globale Variable $raus hast und in einer Funktion die Variable $raus benutzt, dann wird eine neue Variable mit dem gleichen Namen definiert, die nur innerhalb der Funktion gültig ist. In deinem Fall wird einfach eine neue (leere) Variable mit dem Namen $raus erzeugt.

Um globale Variablen innerhalb von Funktionen zu benutzt mußt du "global" als Präfix nehmen. Beispiel:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function schreiben($datei,$mode){
global $raus;
$fp = @fopen($datei,$mode);
flock($fp,2);
fwrite($fp,"$raus"."|".time()."\n");
flock($fp,3);
fclose($fp);
}

Es sei aber angemerkt, daß das schlechter Programmierstil ist. Der Sinn von Funktionen besteht ja genau darin, daß man einzelne Programmteile vom Hauptprogramm abkapselt, daß der Programmteil völlig eigenständig arbeiten kann. Daher ist es besser, wenn du der Schreiben-Funktion noch eine weitere Variable übergebn würdest: nämlich, was eigentlich zu schreiben ist, anstatt auf globale Werte zurückzugreifen.
02.07.2003 12:11 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
000woodworker000 000woodworker000 ist männlich
Aufsteiger


images/avatars/avatar-997.jpg

Dabei seit: 09.01.2002
Beiträge: 40
Herkunft: Germany

      Zum Anfang der Seite springen

diese funktion ist einfach nur schlehct.

ich wollte si mal so abändern das sie funktioniert aber ich gleube ein kompleter rewrite wäre da besser.

achso und nochwas. warum heist das eignetlich IP sperre???
ich sehe da nirgend wo IP Abfrage

__________________
Woody4u.de

Forumliste:
Typo3.net|debianforum.de|Empire Universe

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von 000woodworker000: 02.07.2003 12:30.

02.07.2003 12:22 000woodworker000 ist offline E-Mail an 000woodworker000 senden Beiträge von 000woodworker000 suchen
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Themenstarter Thema begonnen von xx08xx15
      Zum Anfang der Seite springen

warum das Ip speere heist weil es mal eine war und ich diese abändern möchte zu einer user speere!

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von xx08xx15: 02.07.2003 12:37.

02.07.2003 12:37 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
000woodworker000 000woodworker000 ist männlich
Aufsteiger


images/avatars/avatar-997.jpg

Dabei seit: 09.01.2002
Beiträge: 40
Herkunft: Germany

      Zum Anfang der Seite springen

dann programiere sie lieber neu.

und nimm mysql das ist besser als die langsamen zugriffe auf dateien

__________________
Woody4u.de

Forumliste:
Typo3.net|debianforum.de|Empire Universe
02.07.2003 12:39 000woodworker000 ist offline E-Mail an 000woodworker000 senden Beiträge von 000woodworker000 suchen
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Themenstarter Thema begonnen von xx08xx15
      Zum Anfang der Seite springen

Zitat:
Original von 000woodworker000
dann programiere sie lieber neu.

und nimm mysql das ist besser als die langsamen zugriffe auf dateien



Von Mysql habe ich leider keine Anhung und von PHP auch nicht so recht deswegen wollte ich diese IP speere benutzen und daraus eine User sperre zu machen!


Wenn du mir helfen möchte kanst du das gerne tuhn !

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


02.07.2003 12:42 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
Alex Alex ist männlich
Boardgründer


images/avatars/avatar-648.gif

Dabei seit: 05.07.2001
Beiträge: 814
Herkunft: Hessen

      Zum Anfang der Seite springen

Also wenn du eine Variable per URL (..?id=ronny) dann musst du es mit $_GET[] rauslesen.
Also so hier: $blabla = $_GET['id'];


__________________
MfG Alex
Die Zeit ist der beste Lehrer - leider tötet Sie alle Schüler
02.07.2003 13:05 Alex ist offline E-Mail an Alex senden Homepage von Alex Beiträge von Alex suchen
xx08xx15 xx08xx15 ist männlich
Aufsteiger


Dabei seit: 09.02.2002
Beiträge: 97
Herkunft: Dresden

Themenstarter Thema begonnen von xx08xx15
      Zum Anfang der Seite springen

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:


<? 
########################## 
# (c) 2002 by Ronny Dehmel # 
# Mail : [EMAIL]webmaster@mydoys.de[/EMAIL] # 
# Url : [URL]http://www.mydoys.de[/URL] # 
# IP Sperre von [URL]http://www.php4-forum.de[/URL] # 
########################## 

$raus = $_GET['id'];


// Speicherung der Daten in einer Datei 

function schreiben($datei,$mode){ 
$fp = @fopen($datei,$mode); 
flock($fp,2); 
fwrite($fp,"$raus"."|".time()."\n"); 
flock($fp,3); 
fclose($fp); 
} 

function ip_sperre() { 
// Einstellungen 
$reloadlogdatei = "reload2.txt"; 
$anzahleintraege = 1000; 
$zeitlimit = 600; // in Sekunden 


// Prüft, ob Datei existiert => ansonsten Erstellen 
if(!file_exists($reloadlogdatei)) { 
$datei = fopen($reloadlogdatei,"w+"); 
fclose($datei); 
} 
$fp = file($reloadlogdatei); 
$size = sizeof($fp); 

// Beschreibt die Datei, wenn Liste voll 
if($size >= $anzahleintraege){ 
schreiben($reloadlogdatei,"w"); 

// Prüft, ob eine IP in der Liste steht 
} else { 

for ($i=0;$i<$size;$i++) { 
$zeile = explode("|",$fp[$i-1]); 

// IP wird gefunden 
if ($zeile[0] == "$raus" AND $zeile[1] > (time()- $zeitlimit)){ 
$ausgabe = true; 

// IP wird nicht gefunden 
} else { 
$ausgabe = false; 
} 
} 

// Protokolliert die IP-Adresse (schreibt) 
schreiben($reloadlogdatei,"a+"); 
} 
return $ausgabe; 
} 




$uhrzeit = date("H:i"); 
$datum = date("d.m.Y"); 
$url = $HTTP_REFERER; 


if(ip_sperre()==true){ 
echo " 


$head\n 
$body\n 
<br><br><br><br><center><b> 
Sie dürfen nicht so oft E-Mails Schreiben Spam Schutz !! 
<br><br> 
DANKE 
"; 
die(); 
} 

?> 


<-------AUSGABE---TEST----> 
<? echo $raus ?> 





So habe ich es jetzt !


Ausgeben tuht er es Richtig nur er schreibt es nicht in die Datei !!

Warum ??

__________________

Handy Zubehör mit Tiefpreis Garantie


Against TCPA and Palladium - Der PC darf nicht sterben!


02.07.2003 13:23 xx08xx15 ist offline E-Mail an xx08xx15 senden Homepage von xx08xx15 Beiträge von xx08xx15 suchen
Compuholic Compuholic ist männlich
knows where he wants to go tomorrow


images/avatars/avatar-552.jpg

Dabei seit: 19.10.2002
Beiträge: 819
Herkunft: München

      Zum Anfang der Seite springen

Vielleicht hilft Dir ein Auszug von meinem Gästebuch. Ich war auch zu faul, das schrecklich langsame SQL von Tripod zu benutzen und habe das auch mit Dateien gelöst. Der Programmierstil ist auch nicht wirklich berauschend und ein Musterbeispiel für Effizienz (ist noch ein relativ altes Code-Bruchstück, das ich einfach recycled habe)
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
$postCounter 0;
$IPList = array(000); 
$fpIP fopen('irgendeinedatei.log''r');
$remIP $_SERVER['REMOTE_ADDR'];
        
while (!feof($fpIP))
{
        $IPList[2] = $IPList[1];
        $IPList[1] = $IPList[0];
        $IPList[0] = chop(fgets($fpIP4096));
}
fclose($fpIP);

$IPList[0] = chop($remIP);

if (($IPList[0] == $IPList[1]) && ($IPList[0] == $IPList[2]))
{
        return  1;
}

$fpIP fopen('irgendeinedatei.log''a');
fwrite($fpIP"$remIP\n");
fclose($fpIP);

Zu deinem Problem: Ich bin mir nicht sicher, ob es funktioniert, wenn Du am Ende der Datei den echo-Befehl nochmal in <?php ?> Tags setzt. Schreib ich doch einfach direkt unter den Befehl: $raus = $_GET['id'];

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Compuholic: 02.07.2003 16:05.

02.07.2003 16:00 Compuholic ist offline E-Mail an Compuholic senden Homepage von Compuholic Beiträge von Compuholic suchen
HeaD HeaD ist männlich
Hoffnungsloser Sozialfall in Behandlung bei Styx


images/avatars/avatar-2266.gif

Dabei seit: 31.08.2001
Beiträge: 4.142
Herkunft: Mama

      Zum Anfang der Seite springen

entweder versteh ich was falsch oder irgendwas läuft falscht.. versteh ich es richtig ? du übergibst mit id=blahblah die Variable id ins neue Dokument. Und nun willst Du das $raus gleich $id ist ?? weil dann würde eigendlich $raus = $id reichen Augen rollen oda versteh ich das grad bissl falsch ???

__________________

18.07.2003 00:12 HeaD ist offline E-Mail an HeaD senden Homepage von HeaD Beiträge von HeaD suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Bei PHP kann ich nur die Seite www.php.net empfehlen,
die auch eine Suchfunktion hat, und (fast) jeden php Befehl kennt. (einfach /befehl oder funktionsnamen an das php.net dran hängen)

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
18.07.2003 17:58 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » PHP Variablen im Query-String holen?

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH