"We are back" « oc.at

PHP-Prob mit mehrmaligem Seitenaufruf

LakeBodom 14.04.2005 - 14:46 556 13
Posts

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
Is ein eigentlich sehr einfaches News-Erstellen-Proggi, nur komm ich selber nicht mehr weiter:

Habe folgendes Problem: Egal, ob die Variable neu auf null, 1 oder sonstwas steht, immer komm ich in den else-Zweig.
Bitte ned flamen hab schon lang nicht mehr PHP programmiert.

2. Frage: Wie kann ich auf die Inhalte der Textfelder zugreifen?

Tia

Code: PHP
<?php
         
     $conn = mysql_connect("localhost", "root","");
     $sql = mysql_select_db("news",$conn);

     if(!empty($neu))   // Variable _neu_ bei OK auf 1
     {
        $maxnr = "select max(NNr) from News";  
        $erg = mysql_query($maxnr);            
        $erg = $erg + 1;                       
                         
        $ins = "insert into News values(" . $erg . "," . "'2005-04-14'" . ", 'Test')";
        $erg = mysql_query($ins);

        echo "<center><h2>News abgeschickt!</h2></center>";

        $clickstr = "self.location.href='index.php'"; 
        echo "<center><input type='submit' value='OK' onClick=" . $clickstr . "></center>";
     }
     else
     {
        echo "<form method='post' action='write.php?neu=1'>";   // News ausfüllen
        echo "<center><h3> News verfassen</h3></center>\n\n";
        echo "<center>Datum:</center>\n";
        echo "<center>(Bsp. 2005-04-14)</center>\n";
        echo "<center><input type='text' name='datum' size=28 value=></center>\n";
        echo "<center>Nachricht:</center>\n"; 
        echo "<center><textarea id='news' name='news' cols=32 rows=17 class='text'></textarea></center>";
        echo "<center><input type='submit' name='Submit' value='OK'></center>";
        echo "</form>";
    }
?>
Bearbeitet von Bodominjaervi am 14.04.2005, 15:25

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
$_GET['neu'] ?

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
ich setz _neu_ im else-zweig und es gibt keine fehlermeldung.

Irgendwie geht die Überprüfung mit if(!empty($neu)) nicht imho.

Wie genau funktioniert $_GET[]? In den Dokus gibts das nicht einmal! :(

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
nimm statt empty einfach isset ...
das ganze mit dem erhöhen um 1 kannst einfach mit auto_increment der mysql db machen.

edit:
$_GET[] ist einfach ein array in dem alle variablen drinnen stehen, die per URL an das PHP Script übergeben werden ...
also index.php?id=1
dann in $_GET[id] 1 drinnen

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
isset is das gleiche problem wie empty! was hab i da für einen schmarrn gmacht?

stimmt. danke fürs auto_increment! :)



EDIT: mit $_GET würds funktionieren, nur bekomme ich jetzt: Notice: Use of undefined constant neu - assumed 'neu'.

PHP is zu lange her! :(
Bearbeitet von Bodominjaervi am 14.04.2005, 15:06

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
Schreibt statt $neu das von Spikx.
sollte man immer machen, wegen register_globals on/off
dann kann nix schief gehen (normalerweise)

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
wenn ich das 1. Mal aufruf existiert neu noch gar nicht. Dann kommt wieder eine Meldung, dass neu noch kein definierter Index ist und die Meldung von 2 Posts weiter oben.

Beim 2. Aufruf (if-Zweig) kommt wieder die Melung. Use of undefined constant neu - assumed 'neu'

??

In welcher Datei kann man eigentlich nochmal register_globals on/off stellen?

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
du sollst einfach nur
Code: PHP
if(isset($_GET['neu'])){
schreiben und nirgends $neu... $neu initialisiert du ja nirgends

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7808
ich volldepp.

hab die '' vergessen.

Ganz liebes Danke und nochmal sorry wegen meiner Dummheit!

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
normalerweise sollt das eigentlich auch ohne '' gehen. aber hauptsache es funkt jetzt ^^

Spikx

My Little Pwny
Avatar
Registered: Jan 2002
Location: Scotland
Posts: 13504
Zitat von Maehmann
normalerweise sollt das eigentlich auch ohne '' gehen. aber hauptsache es funkt jetzt ^^
nein... außer du meinst das:
Code: PHP
$neu = 'neu';
if(isset($_GET[$neu])){ ...

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
hmmm ... also ich hab immer gedacht man kann auch mit $blaa[test] auf array elemente zugreifen ...

Ich hab das auch fast überall so verwendet ... noch nie Probleme damit gehabt. Maybe einfach Glück ^^

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4303
wenn du $blaa[test]schreibst, glaubt php zuerst, daß die konstante test existiert und versucht sie auszuwerten. existiert sie nicht, nimmt es test als index. die meldung dazu erhält man nur, wenn man notices aktiviert.

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
i see ... besten dank :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz