php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.06.2004, 11:48  
Gast
 
Beiträge: n/a
Standard Uebergabe von Variablen

Hallo erstmal. Ich bin schon fast am Verzweifeln, da ich es irgendwie nicht hinbekomme, Variablen ueber mehrere Scripte hin zu uebergeben. Im ersten Formular kann man den Newstext selektieren (per Radio-Input), den man bearbeiten moechte. Die ID wird korrekt uebergeben (Variable $auswahl). Dabei wird das naechste Formular aufgerufen, in dem dann der Text, Topic, Name etc steht. Das ist auch soweit richtig. Ich poste mal den Code:

news_aendern2.php
Code:
<?php session_start();
include("dbconnect.php");
$abfrage = 	"SELECT *
		FROM test
		WHERE news_id='$auswahl'";
$ergebnis = mysql_query ($abfrage, $connection);
$row = @ mysql_fetch_array($ergebnis);
if($row["forum"] != "") { $check = " checked=\"checked\""; } else { $check = ""; }
[...]
<input type=\"checkbox\" name=\"link\" value=\"ja\"".$check.">
[...]
Die Input-Checkbox (Teil eines Formulars) soll jetzt den Wert "ja" uebergeben, wenn sie selektiert ist und nichts uebergeben , wenn die Checkbox nicht aktiviert ist. Das wird auch noch korrekt aus der DB ausgelesen (in Spalte "forum" soll der Link rein), da mir angezeigt wird, ob in Spalte "forum" ein Eintrag steht oder nicht. Dementsprechend ist die Checkbox vorselektiert oder nicht. Jetzt kommt das eigentliche Problem (bzw. vermute ich das es da liegt) Variablen wie $topic, $name, $email und $news_text wurden richtig uebergeben:

news_aendern3.php
Code:
<?php
session_start();
if($link != "") 
{
[...]
diverse Operationen die nur gehen sollen, wenn die Checkbox aktiviert wurde...
$forum = "hier steht der Forum-Link drin";
[...]
$_SESSION['forum'] = "$forum";
$_SESSION['topic'] = "$topic";
$_SESSION['name'] = "$name";
$_SESSION['email'] = "$email";
$_SESSION['news_text'] = "$news_text";
Header("Location:http://www.feral-fires.com/admin/news_aendern.php");
if($link == "") {
$_SESSION['forum'] = "";
Header("Location:http://www.feral-fires.com/admin/news_aendern.php");
} else {
$_SESSION['topic'] = "$topic";
$_SESSION['name'] = "$name";
$_SESSION['email'] = "$email";
$_SESSION['news_text'] = "$news_text";
$_SESSION['forum'] = "";
Header("Location:http://www.feral-fires.com/admin/news_aendern.php");
}
}
?>
Bei dem oben genannten Code-Schnipsel sollte eigentlich folgendes passieren: Wenn der Wert fuer $link aus dem vorhergehende Formular mit Hilfe der Checkbox richtig uebergeben wurde (Wert "ja"), dann soll er die Variable fuer $forum richtig fuellen (mit dem entsprechenden Link). Wenn die Variable $link nicht gesetzet ist (inaktive Checkbox), soll er mir bei $forum nix reinschreiben. Das kuriose ist jetzt aber folgendes: wenn ich im Formular news_aendern2.php den Haken in der Checkbox lasse, dann bleibt die Variable $forum leer und wir demnach im nachfolgenden php-Script aus der DB geloescht. Aber eigentlich sollte das doch genau andersrum gehen?! Und wenn ich den Haken wegnehme bzw keinen setze, dann ist in Formular news_aendern3.php Schluss und ich bekommen nen grauen Bildschirm...

Tja und abschliessend der Vollstaendigkeit halber noch das Script, das dann letztendlich die Daten in der DB updaten soll:

Code:
<?php
session_start();
$id = $_SESSION['news_id'];
$forum = $_SESSION['forum'];
$topic = $_SESSION['topic'];
$name = $_SESSION['name'];
$news_text = $_SESSION['news_text'];
$email = $_SESSION['email'];

include("dbconnect.php");
include("datum.php");
$aendern =	"UPDATE test 
		 SET topic = '$topic', 
		 name = '$name', 
		 email = '$email',
		 news_text = '$news_text',
		 forum = '$forum' 
		 WHERE news_id = '$id'";
$update = mysql_query($aendern);
session_destroy();
Header("Location:formular_news_aendern1.php");
?>
Tja wie gesagt, irgendwie werden da Variablen nicht richtig uebergeben und ich weiss nicht mehr was ich noch probieren soll. Da ich mich mit PHP nicht so super auskenne, kann es natuerlich sein das ich Fehler auch einfach uebersehe, da ich zu keiner Loesung komme.

Vielleicht macht sich jemand die Muehe und schaut sich mal meine Code-Schnipsel an. Ich waere auf jeden Fall dankbar fuer Hilfe jeder Art.

mfG Kalle
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 25.06.2004, 11:59  
Gast
 
Beiträge: n/a
Standard Re: Uebergabe von Variablen

Zitat:
Zitat von Kalle76
Hallo erstmal. Ich bin schon fast am Verzweifeln, da ich es irgendwie nicht hinbekomme, Variablen ueber mehrere Scripte hin zu uebergeben.
Nutze Sessions. Genau dafür wurden sie erfunden.

## EDIT für die Forensuche
falsche Antwort, da der OP ja schon Sessions nutzt.
 
Alt 25.06.2004, 12:04  
Gast
 
Beiträge: n/a
Standard

Ja, das hab ich versucht wuerde ich sagen. Denn eigentlich steht da ja session_start(); etc drin. Aber das will nicht so wie ich will, schliesslich sollen ja die Variablen nur fuer diesen einen Eintrag in der Session gesetzt werden und danach im letzten Script (news_aendern.php) mit session_destroy(); wieder geloescht werden so das alle Variablen wieder leer sind. Hmm ansonsten weiss ich nicht, was an meiner Session-Variante falsch ist.
 
Alt 25.06.2004, 12:15  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Kalle76
Ja, das hab ich versucht wuerde ich sagen. Denn eigentlich steht da ja session_start(); etc drin.
Jou. Guck Dir mal das Beispiel an:
http://test.php-help.info/session-3/
Quelltext und Belegung von $_SESSION wird mit angezeigt.

Zitat:
Aber das will nicht so wie ich will, schliesslich sollen ja die Variablen nur fuer diesen einen Eintrag in der Session gesetzt werden und danach im letzten Script (news_aendern.php) mit session_destroy(); wieder geloescht werden so das alle Variablen wieder leer sind.
Dagegen hilft:
Code:
$_SESSION = array();
 
Alt 25.06.2004, 12:20  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 146
Hakima befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
Code:
Header("Location:http://www.feral-fires.com/admin/news_aendern.php");
Kann es sein, daß es daran liegt, daß Du die Variablen gar nicht übertragen hast -Nur so eine Idee-
Die session-Funktion schließt ja nicht aus, daß die Variablen trotzdem vorher übergeben werden müssen, wenn ich das richtig sehe

M.E. dürfte das dann so aussehen:
Code:
Header("Location:http://www.feral-fires.com/admin/news_aendern.php?forum='$forum&topic='$topic'... etc");
Vielleicht liege ich falsch, aber das war meine erste Überlegung...

kamalo
Hakima ist offline  
Alt 25.06.2004, 12:25  
Gast
 
Beiträge: n/a
Standard

Hmm naja, eigentlich sollte es ja mit Sessions ohne diese Parameter gehen, denn so kann ich z.B. keine langen Text uebergeben ($news_text). Ich glaube da gibt es ein Limit, wieviele Zeichen man so uebergeben kann. Da bin ich allerdings nicht sicher. Hab das nur gemerkt als ich das so versucht habe mit dem Newstext.
 
Alt 25.06.2004, 12:28  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von meikel
Zitat:
Zitat von Kalle76
Ja, das hab ich versucht wuerde ich sagen. Denn eigentlich steht da ja session_start(); etc drin.
Jou. Guck Dir mal das Beispiel an:
http://test.php-help.info/session-3/
Quelltext und Belegung von $_SESSION wird mit angezeigt.

Zitat:
Aber das will nicht so wie ich will, schliesslich sollen ja die Variablen nur fuer diesen einen Eintrag in der Session gesetzt werden und danach im letzten Script (news_aendern.php) mit session_destroy(); wieder geloescht werden so das alle Variablen wieder leer sind.
Dagegen hilft:
Code:
$_SESSION = array();
Hmm, kann es sein, das ich noch eine Session-ID uebergeben muss, damit das dann eindeutig funktioniert? Ansonsten versuche ich gerade dein Beispiel zu verstehen. :wink: Allerdings steht da soviel drin , was ich im Moment nicht so ganz verstehe. Daher verwirrt mich das alles ein wenig.
 
Alt 25.06.2004, 12:39  
Gast
 
Beiträge: n/a
Standard

Hmm ich habe den Fehler jetzt zumindest schonmal eingegrenzt. Der muesste auf alle Faelle in news_aendern3.php liegen bei der IF-Schleife, wenn ich das so richtig sehe. Denn ich hab noch ein gleiches Script, das aehnlich funktioniert zum Eintragen von News. Wenn ich news_eintragen1.php ausfuehre, dann erkennt er wunderbar ob der Haken gesetzt wurde und ein Link erzeugt werden sollen, bzw ob da kein Haken ist und dementsprechend kein Link hin soll. Eigentlich ist das fast gleich aufgebaut, bis auf die If-Schleife. Bei News eintragen geht es, bei News aendern nicht.
 
Alt 25.06.2004, 12:42  
Gast
 
Beiträge: n/a
Standard Re: Uebergabe von Variablen

Ich beantworte noch mal:
Zitat:
Zitat von Kalle76
Jetzt kommt das eigentliche Problem (bzw. vermute ich das es da liegt) Variablen wie $topic, $name, $email und $news_text wurden richtig uebergeben:

news_aendern3.php
Code:
<?php
session_start();
if($link != "") 

# ...

Header("Location:http://www.feral-fires.com/admin/news_aendern.php");
?>
1. Wo wird $link gesetzt?
2. wie übergibst Du bei header() session_name und session_id, damit die Session auch dann wieder aufgenommen werden kann, wenn der Client keinen Keks haben wollte?
3. wie stellst Du sicher, daß nach header das Session File geschrieben wird, wenn der Client "weg ist"?

Zu 2.+3.:
Code:
session_write_close();
Header("Location:http://www.feral-fires.com/admin/news_aendern.php?" . SID);
exit();
 
Alt 25.06.2004, 12:47  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Kalle76
Hmm, kann es sein, das ich noch eine Session-ID uebergeben muss, damit das dann eindeutig funktioniert?
Siehe den anderen Text, den ich gerade eben geschrieben hatte.
Zitat:
Ansonsten versuche ich gerade dein Beispiel zu verstehen. :wink: Allerdings steht da soviel drin , was ich im Moment nicht so ganz verstehe. Daher verwirrt mich das alles ein wenig.
Das gibt sich. <g>
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Klasse statt globaler Variablen ecomeback PHP-Fortgeschrittene 6 15.07.2008 16:30
Templatesystem mit Funktionen und Variablen drin? BartTheDevil89 PHP Tipps 2008 6 01.07.2008 09:32
E-Mail Formular: Variablen in $message einfügen? thomas108 PHP Tipps 2008 9 02.06.2008 12:33
Übergeben von Variablen an in PHP eingebundenes Perl-Script shredder01 PHP Tipps 2008 3 04.04.2008 09:25
Datei mit Variablen so includen, dass Variablen nutzbar? BartTheDevil89 PHP Tipps 2008 6 22.01.2008 20:57
unerklärliches Leeren von Variablen KuShi PHP Tipps 2007 2 08.07.2007 15:19
Teil einer Variablen mit einer Variablen ersetzen ? simsalabim PHP Tipps 2007 11 20.03.2007 20:36
Problem mit Variablen Uebergabe PHP Tipps 2007 4 17.12.2005 15:53
Variable aus Variablen zusammensetzen juhuwoorps PHP Tipps 2007 1 28.11.2005 21:50
variablen in url automatisch hinzufügen Promaetheus PHP Tipps 2007 2 26.11.2005 12:52
Variablen übergeben bzw. auslesen? PHP Tipps 2005 4 30.01.2005 03:56
2 variablen in einem Value tag PHP Tipps 2005 17 26.01.2005 20:32
[Erledigt] register globals off bei variablen Variablen... PHP Tipps 2005 4 25.01.2005 17:50
Variablen aus den Formular sind nicht mehr verfügbar PHP Tipps 2004 6 30.10.2004 13:31
Variablen per adresse übergeben rocco PHP Tipps 2004 7 24.07.2004 12:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
session id uebergabe per input, inaktive checkbox, mysql_fetch_array ergebnis mit $_session übergeben

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.