php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.04.2005, 17:22  
Gast
 
Beiträge: n/a
Standard Problem mit '

Hallo,
also ich habe 3 Scripte. Im ersten (conf_insert.php) wählt man über ein Dropdownfeld, wie viele Zeilen mann Eintragen will. Im zweiten Script (conf_insert2.php) werden dann die ausgewählte Anzahl an Zeilen angezeigt in die man dann Daten eintragen kann (3 Eingabefelder und 4 Dropdownfelder pro Zeile). Und im dritten Script (conf_insert3.php) werden dann die Zeilen von Script 2 in eine Tabelle eingetragen.

Soweit funktioniert alles aber es ist halt nicht möglich z.B. das Zeichen ' einzutragen. Dann kommt nämlich eine MySQL Fehlermeldung. Ich kann mir aber nicht erklären warum.

conf_insert.php:
PHP-Code:
<?php
include ("checkuser.php");

echo
"Wieviel Datensätze möchtest du einfügen?

<form action=conf_insert2.php method=post>
 
  <select size='1' name='anzahl'>
  <option selected>1</option>
  <option>2</option>
  <option>5</option>
  <option>10</option>
  <option>20</option>
  <option>50</option>
  <option>100</option>
  </select></p>
<input type=submit value=Weiter> 
</form>"
;
?>
conf_insert2.php:
PHP-Code:
<?php
include ("checkuser.php");

//Konfigurationsdatei laden:
include '../admin/inc/config.php';

$anzahl $_POST['anzahl'];

echo
"<form action=conf_insert3.php method=post>
<table width=90%>
 <colgroup>
 <col span=1 width=9%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 </colgroup> 
  <tr>
    <td align=center></td>
    <td align=center>Spaltea</td>
    <td align=center>Spalteb</td>
    <td align=center>Spaltec</td>
    <td align=center>Spalted</td>
    <td align=center>Spaltee</td>
    <td align=center>Spaltef</td>
    <td align=center>Spalteg</td>
  </tr>
 </table>
"
;
        
for (
$i=1$i<$anzahl+1$i++) {
        echo 
"
<table width=90%>
 <colgroup>
 <col span=1 width=9%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 </colgroup> 
  <tr>
    <td align=right>"
.$i.".</td>
    <td align=center><input type=text size=8 maxlength=100 name='feld1[]'></td>
    <td align=center><input type=text size=8 maxlength=10 name='feld2[]'> MB</td>
    <td align=center><input type=text size=8 maxlength=500 name='feld3[]'></td>

    <td align=center><select size=1 name='feld4[]'>
        <option selected>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        <option>10</option>
        <option>11</option>
    </select></td>

    <td align=center><select size=1 name='feld5[]'>
        <option selected>1</option>
        <option>2</option>
        <option>3</option>
    </select></td>

    <td align=center><select size=1 name='feld6[]'>
        <option selected>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
    </select></td>

    <td align=center><select size=1 name='feld7[]'>
        <option selected>1</option>
        <option>2</option>
    </select></td>
  </tr>
 </table>"
;
    }

echo
"
<input type=submit value=Eintragen></form>"
;
?>
conf_insert3.php:
PHP-Code:
<?php
  
include ("checkuser.php"); 
  include 
'../admin/inc/config.php'


  
$db_link = @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS); 
  
mysql_select_db(MYSQL_DATABASE); 

  
//Daten eintragen: 

  
foreach ($_POST['feld1'] as $key => $feld1
  {  
   
$uid $_SESSION['user_name']; 
    
$sprache $_POST['feld2'][$key]; 
    
$genre $_POST['feld3'][$key]; 
    
$size $_POST['feld4'][$key]; 
    
$format $_POST['feld5'][$key]; 
   
$gesehen $_POST['feld6'][$key]; 
   
$info $_POST['feld7'][$key]; 
    
    
$eintrag  "INSERT INTO filme (uid, feld1, feld2, feld3, feld4, feld5, feld6, feld7) "
    
$eintrag .= "VALUES ('$uid', '$feld1', '$feld2', '$feld3', '$feld4', '$feld5', '$feld6', '$feld7')";    
    
mysql_query($eintrag) or die ("MySQL-Fehler: " mysql_error()); 
  } 

echo 
"Die Daten wurden erfolgreich eingefügt.
<a href=start.php?by=name&rei=ASC&uid=$_SESSION[user_name]>zurück</a>"

?>
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.04.2005, 17:28  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

www.php.net/addlashes
bzw
www.php.net/mysql_real_escape_string
und auch bei einem mysql_connect / mysql_select_db schadet ein mysql_error() bez eine saubere abbruchbedingung nie, weil ein @ davor bringt dir nur dass der fehler weiter hinten kommt.

mfg
robo47
robo47 ist offline  
Alt 13.04.2005, 17:38  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn Du in einem PHP-Codeblock wirklich HTML ausgeben willst .. dann kannst Du auch den PHP-Teil schließen, normal HTML-Code ausgeben und dann wieder anfangen mit PHP zu arbeiten.

Nur mal so am Rande.
imported_Ben ist offline  
Alt 13.04.2005, 18:21  
Gast
 
Beiträge: n/a
Standard

Ja aber wo soll ich das machen
 
Alt 13.04.2005, 18:30  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Problem mit '

Rein theoretisch:

conf_insert.php:
PHP-Code:
<?php
   
include ("checkuser.php");
?>

Wieviel Datensätze möchtest du einfügen?

<form action=conf_insert2.php method=post>
 
  <select size='1' name='anzahl'>
  <option selected>1</option>
  <option>2</option>
  <option>5</option>
  <option>10</option>
  <option>20</option>
  <option>50</option>
  <option>100</option>
  </select></p>
<input type=submit value=Weiter> 
</form>
conf_insert2.php:
PHP-Code:
<?php
include ("checkuser.php");

//Konfigurationsdatei laden:
include '../admin/inc/config.php';

$anzahl $_POST['anzahl'];

?>

<form action=conf_insert3.php method=post>
<table width=90%>
 <colgroup>
 <col span=1 width=9%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 <col span=1 width=11%>
 </colgroup> 
  <tr>
    <td align=center></td>
    <td align=center>Spaltea</td>
    <td align=center>Spalteb</td>
    <td align=center>Spaltec</td>
    <td align=center>Spalted</td>
    <td align=center>Spaltee</td>
    <td align=center>Spaltef</td>
    <td align=center>Spalteg</td>
  </tr>
 </table>

 [..]
Usw. usf.
Allein schon aus Gründen der Übersicht kann das hilfreich sein.

Grüße Ben.
imported_Ben ist offline  
Alt 13.04.2005, 18:42  
Gast
 
Beiträge: n/a
Standard

Ben ich glaube er meint mit
Zitat:
Ja aber wo soll ich das machen
Wo er addslashes hinsetzen soll:
PHP-Code:
    $eintrag  "INSERT INTO filme (uid, feld1, feld2, feld3, feld4, feld5, feld6, feld7) ";
    
$eintrag .= "VALUES ('.addslashes($uid).', '.addslashes($feld1).', '.addslashes($feld2).', '.addslashes($feld3).', '.addslashes($feld4).', '.addslashes($feld5).', '.addslashes($feld6).', '.addslashes($feld7).')";   
    
mysql_query($eintrag) or die ("MySQL-Fehler: " mysql_error()); 
Das Gegenstück von addslashes() ist stripslashes()
 
Alt 13.04.2005, 18:49  
Gast
 
Beiträge: n/a
Standard

@ben:
Also ich hab das jetzt so gemacht wie du es beschrieben hast. Es geht einwandfrei bei mir unter xxamp aber auf meinem Webspace funktionierts nicht.

Meldung:MySQL-Fehler: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 's')' at line 1

@Du-weisst-schon-wer:
Und dann muss ich ja bei jeder Ausgabe stripslashes() verwenden, oder? Was passiert, wenn jemand ein / in die DB schreibt, wird das dann nicht mehr ausgegeben?
 
Alt 13.04.2005, 18:54  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Peter MacFu
Meldung:MySQL-Fehler: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 's')' at line 1
Jo. Ich kenn das
http://php.net/mysql_error ist cool

Bzgl. Deiner Frage an d-w-s-w .. teste es doch einfach.
imported_Ben ist offline  
Alt 13.04.2005, 19:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
wenn jemand ein / in die DB schreibt, wird das dann nicht mehr ausgegeben?
RTFM!!!
Es werden nur die \ vor dem " bzw. ' wieder entscaped.
 
Alt 13.04.2005, 19:50  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ben
Zitat:
Zitat von Peter MacFu
Meldung:MySQL-Fehler: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 's')' at line 1
Jo. Ich kenn das
http://php.net/mysql_error ist cool

Bzgl. Deiner Frage an d-w-s-w .. teste es doch einfach.
Was willst du damit sagen?

@ Du-weisst-schon-wer:
Kann es sein, das dein Beispiel falsch ist. Bei mir trägt er das addslashes mit in die DB ein.
 
 


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
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mb_ addslashes

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:47 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.