PHP-Prob mit mehrmaligem Seitenaufruf

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php-prob_mit_mehrmaligem_seitenaufruf_140706/page_1 - zur Vollversion wechseln!


Bodominjaervi schrieb am 14.04.2005 um 14:46

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>";
    }
?>


Spikx schrieb am 14.04.2005 um 14:52

$_GET['neu'] ?


Bodominjaervi schrieb am 14.04.2005 um 14:58

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 schrieb am 14.04.2005 um 14:58

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 schrieb am 14.04.2005 um 15:03

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! :(


Maehmann schrieb am 14.04.2005 um 15:06

Schreibt statt $neu das von Spikx.
sollte man immer machen, wegen register_globals on/off
dann kann nix schief gehen (normalerweise)


Bodominjaervi schrieb am 14.04.2005 um 15:10

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 schrieb am 14.04.2005 um 15:20

du sollst einfach nur

Code: PHP
if(isset($_GET['neu'])){
schreiben und nirgends $neu... $neu initialisiert du ja nirgends


Bodominjaervi schrieb am 14.04.2005 um 15:24

ich volldepp.

hab die '' vergessen.

Ganz liebes Danke und nochmal sorry wegen meiner Dummheit!


Maehmann schrieb am 14.04.2005 um 18:35

normalerweise sollt das eigentlich auch ohne '' gehen. aber hauptsache es funkt jetzt ^^


Spikx schrieb am 14.04.2005 um 19:22

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 schrieb am 14.04.2005 um 19:33

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 schrieb am 14.04.2005 um 20:08

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 schrieb am 14.04.2005 um 20:14

i see ... besten dank :)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025