WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Probleme mit PhP (http://www.wcm.at/forum/showthread.php?t=157100)

suRe 27.01.2005 13:50

Probleme mit PhP
 
Hallo leute, ich schreibe im moment ein News script doch nun hab ich so ein scheiss Fehler im script und komme nicht mehr weiter.

Ok Hier erstmals mein code......

PHP-Code:


<html>
<head>

    <? include "dat/config.inc.php" ?>
     <title> News_script Erfassungsformular</title>
     <link rel="stylesheet" href="anzeige.css" type="text/css">
</head>
<body bgcolor="#ffffff">

<?
if ($gesendet)
{
$db mysql_connect($server$user$pass);



 
$mysqlab "INSERT INTO navi (name, link) VALUES ('$nm' , '$li' )";
 
$abfrage mysql_db_query("self_test"$mysqlab);
 
$num mysql_affected_rows();

 if (
$num>0)
 {
  echo 
"

<font color=green> Es wurden ein Datensatz hinzugefügt  </font></p>"
;
 echo 
"

&nbsp</p> 

&nbsp</p>"
;
 }
  else 
 {
 echo 
"

<font color=red> Es ist ein Fehler aufgetreten, der Datensatz konnte nicht hinzugefügt werden </font></p>"
;
 echo 
"

&nbsp</p> 

&nbsp</p>"
;
 }
 
mysql_close($db);



?>


</head>

<body>

<form action="navi_eingabe.php" method="post">

<table align="center" width="400">
 <tr>
  <td><h2>Name: </h2></td>
  <td><input type="text" name="nm"></td>
 </tr>
 <tr>
  <td><h2>Link: </h2></td>
  <td><input type="text" name="li"></td>
 </tr>
 <tr>
  <td> <input type="submit" name="gesendet"></td>
  <td> <input type="reset"></td>
 </tr>
</table>
</form>




</body>
</html>

Nun hab ich ne index datei erstellt, doch wen ich diesen code im Body der Tabelle include kommt immer die Ausgabe:


Notice: Undefined variable: gesendet in C:\Programme\Apache Group\Apache2\htdocs\self\php\scripts\news\backbon e\news_eingabe.php on line 11

Mir ist nun nicht klar wiso diser scheiss Fehler auftritt...... ich denke mir da er die Variabel noch nicht "kennt".....

Komisch ist noch, wen ich die Datei nicht include, sondern nur aufrufe funktionierts ohne Probleme.

schera 27.01.2005 14:01

Der Fehler müsste demnach in der Zeile

<? include "dat/config.inc.php" ?>

liegen bzw. in der config.inc.php die du ja includest.

Vielleicht postest du mal die config.inc.php ...

schera

suRe 27.01.2005 14:06

denke ich im diesem Fall weniger, den die funktion wird ja aufgerufen sobald man im Formular den "Submit" button klickt.....

...doch hier die config.inc.php:

PHP-Code:


<?
    
// Mysql Verbindungs Daten

$server "localhost";
$user "*****";
$pass "*****";
$database ="self_test";


?>

ich brauche die config so oder so nur um die variabeln für den mysql connect zu speichern

T.dot 27.01.2005 14:15

wie wärs wenn du einfach mal in $gesendet was reinschreibst oder die Variable vorher deklarierst?

if ($gesendet) wird halt nicht funktionieren, weil nirgendwo die Variable gesetzt wird. Wenn $gesendet ein Button sein soll, dann greif bitte mit $_POST['gesendet'] darauf zu und dort steht dann auch nicht 1 drinn sonder norm. die Value des Buttons.

Nachdem in deiner Include Datei nur Variablen deklariert werden hat dies auch nix mit dem Aufruf der mysql-connect funktion zu tun.

mfg Thomas

suRe 27.01.2005 14:19

okei test ich mal aber kannst du mir noch erklären wiso es ohne Fehler funktioniert wen ich das script selber aufrufe und Fehler ausgibr sobald ich es include?

T.dot 27.01.2005 14:24

du könntest auch noch probieren das include vor allen HTML Tags zu machen (wos eigentlich hin gehört). Dann kannst du es noch ohne Shorttags probieren also <?php ?> statt <? ?> verwenden, denke aber das sollte keinen Unterschied machen.

suRe 27.01.2005 14:44

ok danke für deinen aufwand,

doch leider funktioniert die scheisse noch immer nicht, naja egal....

käptn 28.01.2005 10:47

http://php.net/manual/en/language.va...s.external.php

Wenn's das nicht ist: Nicht auf den Submit-Button vertrauen, denn der wird bei einigen Browsern nur mitgesendet, wenn man wirklich draufklickt.

~

Dane 28.01.2005 21:04

mach:
PHP-Code:

if(isset($gesendet)).. 

oder besser ist
PHP-Code:

if(isset($_POST['gesendet']))... 


AlexanderFX 28.01.2005 22:43

PHP-Code:

include "dat/config.inc.php"
....
if (
$_POST["gesendet"]) 
....

  <
td> <input type="submit" name="gesendet"></td

so würde ich das ganze machen
nach dem include ein ;
dann $_POST[] solltest verwenden sonst kann es probleme geben

sag wenns funktioniert
i glaub es liegt am strichpunkt

schaut so aus wie das abfragescript von galileo computing

suRe 31.01.2005 13:29

jeppa hat geklappt danke alder

AlexanderFX 31.01.2005 13:43

immer wieder gerne :D

suRe 31.01.2005 15:56

Ok ich habe noch ein kleiner aber ziemliches Problem

in einem News script wird ja meistens mehr Text verwendet (für die news) als in char platz haben. Nun ist meine Frage welchen Datentyp empfiehlt Ihr? und wie kann ich machen das wen ich bei der Eingabe der News die Entertaste klicke , dies dan auch im News script so ausgegeben wird?

Gruss suRe

T.dot 31.01.2005 16:02

Ich verwende als Datentyp 'TEXT'. Ein Zeilenumbruch wird als "\n" abgespeichert, um ihn aber anzuzeigen benötigst du ein html-"
"

Also entweder nach dem Auslesen ersetzen oder im sql-statement direkt ersetzen (ca so: SELECT replace(spalte,'\n','
') as umgebrochen from ...)

mfg Thomas

suRe 31.01.2005 16:34

danke hat gefunzt


ehhm du, kann es sein das man wen man links über di url übergibt nur eine bestimmte anzahl zeichen übergeben kann? den bei mir funzen die ersten 3 GET's ohne weiteres doch das 4 und 5te nimmts nicht mehr an, obwohl kein fehler im script ist.

T.dot 31.01.2005 16:40

keine Ahnung, hatte bis jetz max. drei ;)

suRe 31.01.2005 16:43

ok hab gemerkt es liegt an der länge .... na guggst du jetzt wusste ich was was du nicht wusstest :)

AlexanderFX 31.01.2005 17:11

i verwende für text immer longtext

hmm bei mir gehn mehr als 7 gets
das höchste was i verwendet hab is 7 oder 8

FordPrefect 31.01.2005 22:40

Zitat:

Original geschrieben von T.dot
Ich verwende als Datentyp 'TEXT'. Ein Zeilenumbruch wird als "\n" abgespeichert, um ihn aber anzuzeigen benötigst du ein html-"
"

Also entweder nach dem Auslesen ersetzen oder im sql-statement direkt ersetzen (ca so: SELECT replace(spalte,'\n','
') as umgebrochen from ...)

mfg Thomas

oder besser so $text=nl2br($text);

suRe 01.02.2005 09:59

Zitat:

Original geschrieben von AlexanderFX
i verwende für text immer longtext

hmm bei mir gehn mehr als 7 gets
das höchste was i verwendet hab is 7 oder 8

ja bei mir gehen auch 7 oder acht, doch wen z.B in der Variabel text ein langer text steht usw, dan funzt es nicht mehr. Was jetzt nicht heisst dass ich den ganzen Text übergebe :D das wärä ja idiotisch aber rein als beispiel.....

AlexanderFX 02.02.2005 12:39

Zitat:

Original geschrieben von suRe
ja bei mir gehen auch 7 oder acht, doch wen z.B in der Variabel text ein langer text steht usw, dan funzt es nicht mehr. Was jetzt nicht heisst dass ich den ganzen Text übergebe :D das wärä ja idiotisch aber rein als beispiel.....
ja echt wer macht sowas :cool:


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag